shuji1818 发表于 2009-6-20 10:42:49

两次录制的viewstate是相同的,请问还需要做关联吗?

录制一个系统登陆模块的脚本:
Action()
{
web_url("default.aspx",
"URL=http://59.41.255.178:886/Server/default.aspx",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
EXTRARES,
"Url=resources/images/background.jpg", "Referer=http://59.41.255.178:886/Server/Login.aspx?ReturnUrl=%2fServer%2fdefault.aspx", ENDITEM,
LAST);
web_submit_data("Login.aspx",
"Action=http://59.41.255.178:886/Server/Login.aspx?ReturnUrl=%2fServer%2fdefault.aspx",
"Method=POST",
"RecContentType=text/html",
"Referer=http://59.41.255.178:886/Server/Login.aspx?ReturnUrl=%2fServer%2fdefault.aspx",
"Snapshot=t2.inf",
"Mode=HTML",
ITEMDATA,
"Name=__LastVIEWSTATE_SessionKey", "Value=6f63c456-8610-4b11-957a-8e0117648b00", ENDITEM,
"Name=__VIEWSTATE", "Value=/wEPDwUJOTM3MjEyNzQzZGT1dIcBmqRpztb9bAPEfBG3os8Jhg==", ENDITEM,
"Name=txtAcount", "Value=*****", ENDITEM,
"Name=txtPassword", "Value=******", ENDITEM,
"Name=txtValidCode", "Value=", ENDITEM,
"Name=btnLogin", "Value=鐧诲綍", ENDITEM,
"Name=__EVENTVALIDATION", "Value=/wEWBgL3sq//CgK4hNP/DAK1qbSRCwKn34LlBAKC3IeGDAKiwImNC60/Yp8GDxkdv7lgnw+GIR6uDCpj", ENDITEM,
EXTRARES,
"Url=WebResource.axd?d=mZARIy6IU6X1QFYBDjkAPQ2&t=633758422133151386", "Referer=http://59.41.255.178:886/Server/CallCenter/Message.aspx", ENDITEM,
"Url=resources/images/bu_save_big.gif", "Referer=http://59.41.255.178:886/Server/CallCenter/Message.aspx", ENDITEM,
"Url=ScriptResource.axd?d=gDcqQZOIajeKLbSN1mmoJKbWgiMs7w3W0rBEVX2qCZhsEp4_3tE7P5cpYIFBcZsbiPljplTAoG8j7-9_Zvvry7JskUFi-lX8sA59mGVETUM1&t=633758424341265143", "Referer=http://59.41.255.178:886/Server/CallCenter/Message.aspx", ENDITEM,
"Url=Resources/images/menubg.gif", "Referer=http://59.41.255.178:886/Server/Navigation.aspx", ENDITEM,
"Url=Resources/images/menu/point_0.jpg", "Referer=http://59.41.255.178:886/Server/Navigation.aspx", ENDITEM,
"Url=Resources/images/menu/point_1.jpg", "Referer=http://59.41.255.178:886/Server/Navigation.aspx", ENDITEM,
"Url=ScriptResource.axd?d=gDcqQZOIajeKLbSN1mmoJKbWgiMs7w3W0rBEVX2qCZhsEp4_3tE7P5cpYIFBcZsbrl20-U_xO2eLBsm5vw6Knray5ZB7DhKNBA6IYqpaF60_jkVyX5ta6QxIkHgGGgac0&t=633758424341265143", "Referer=http://59.41.255.178:886/Server/CallCenter/Message.aspx", ENDITEM,
LAST);
web_submit_data("Message.aspx",
"Action=http://59.41.255.178:886/Server/CallCenter/Message.aspx",
"Method=POST",
"RecContentType=text/html",
"Referer=http://59.41.255.178:886/Server/CallCenter/Message.aspx",
"Snapshot=t3.inf",
"Mode=HTML",
ITEMDATA,
"Name=__EVENTTARGET", "Value=", ENDITEM,
"Name=__EVENTARGUMENT", "Value=", ENDITEM,
"Name=__LastVIEWSTATE_SessionKey", "Value=5899971e-2b02-48ad-ab0a-ec1b85dc8cc2", ENDITEM,
"Name=__VIEWSTATE", "Value=/wEPDwUJMjUzNTk5OTE4DxYIHg1DYW5EaXN0cmlidXRlZx4GZm9yQWxsZx4EVGljawKw6gEeB1RpbWVPdXQCAxYCZg9kFgICAQ9kFgICBQ8WAh4EaHJlZgUhL1NlcnZlci9yZXNvdXJjZXMvc3R5bGUvc3R5bGUuY3NzZGSdpHL9+VrSUEAeHI6nBEXD5isanQ==", ENDITEM,
"Name=__CALLBACKID", "Value=__Page", ENDITEM,
"Name=__CALLBACKPARAM", "Value=GetTimeOut", ENDITEM,
LAST);
return 0;
}

背景交代:
由于这是一个正在使用的系统,所以用户名和密码以*代替,不是错误

问题描述:
按照同样步骤两次录制后对比:LastVIEWSTATE_SessionKey是不相同的,但是VIEWSTATE却是相同的(两个web_submit_data里面都一样的情况)。LastVIEWSTATE_SessionKey应该是VIEWSTATE经过加密函数转化来的,本来就应该不相同,那么这个LastVIEWSTATE_SessionKey还需要关联吗?
还有两次录制的VIEWSTATE是相同的,我看查找出的大部分贴都是说明VIEWSTATE肯定是要关联的,那么VIEWSTATE应该是不相同的啊?

shanxi 发表于 2009-6-20 12:22:10

ASP,NET的VIEWSTATE创建机制决定了它一定是不同的

你自己装一个类似httpwatch这样能查看ViewState的MSIE插件自己去琢磨一下,你这肯定是同一个页面。

做Asp.net测试一定要懂Asp.net领域的技术

__LastVIEWSTATE_SessionKey是为了防止页面刷新数据重复提交这个问题生成的一种解决方案。

云层 发表于 2009-6-20 12:22:11

根据asp.net的规定viewstate应该是没有用的

shuji1818 发表于 2009-6-20 12:56:37

谢谢两位的回答
to shanxi:
你说的“你这肯定是同一个页面”是什么意思?
viewstate的作用知道一点,理解的不深。__LastVIEWSTATE_SessionKey保存的是上一个viewstate的值,只不过做了加密转换。在这个页面中,__LastVIEWSTATE_SessionKey和viewstate的值实际上应该是一样的,只不过一个做了转换一个没有。这样理解对吗?
to 云层:
那你的意思是什么?不用管吗?

shanxi 发表于 2009-6-20 14:36:18

自己看 这篇文章吧
http://hi.baidu.com/%D0%A1%BB%D4%C0%D6%D4%B0/blog/item/136611dea270de51cdbf1a0f.html

我先前也说过你对Asp.net的知识懂的少,已经给你指明了一个方向。
赶紧去学习一下Asp.net中ViewState的相关知识,你这样问纯粹浪费时间。
你可以看这篇:http://www.cnblogs.com/JemBai/archive/2008/12/01/1344784.html

郁闷你们这帮人,使劲冲着LR这个工具来,而全然不知背后跟网页相关的技术的重要性。

[ 本帖最后由 shanxi 于 2009-6-20 14:46 编辑 ]

shuji1818 发表于 2009-6-21 18:02:08

非常感谢shanxi的教诲。
你给的这篇文章先前看过的,不过我学习.NET技术也只有一年多的时间,今年快毕业的,现在提前到公司实习,被安排做测试。我想既然是交给我的任务就要去做好,并不是我好高骛远,我也同时一直在深入.NET的学习,感觉没有实战经验,有些东西看了或者做了以后又没有多大印象,所以.NET水平确实很低,还请多指教。
页: [1]
查看完整版本: 两次录制的viewstate是相同的,请问还需要做关联吗?