51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2697|回复: 5
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-6-20 10:42:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
录制一个系统登陆模块的脚本:
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应该是不相同的啊?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-6-20 12:22:10 | 只看该作者

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

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

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

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

使用道具 举报

该用户从未签到

3#
发表于 2009-6-20 12:22:11 | 只看该作者
根据asp.net的规定viewstate应该是没有用的
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2009-6-20 12:56:37 | 只看该作者
谢谢两位的回答
to shanxi:
你说的“你这肯定是同一个页面”是什么意思?
viewstate的作用知道一点,理解的不深。__LastVIEWSTATE_SessionKey保存的是上一个viewstate的值,只不过做了加密转换。在这个页面中,__LastVIEWSTATE_SessionKey和viewstate的值实际上应该是一样的,只不过一个做了转换一个没有。这样理解对吗?
to 云层:
那你的意思是什么?不用管吗?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-6-20 14:36:18 | 只看该作者
自己看 这篇文章吧
http://hi.baidu.com/%D0%A1%BB%D4 ... 70de51cdbf1a0f.html

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

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

[ 本帖最后由 shanxi 于 2009-6-20 14:46 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2009-6-21 18:02:08 | 只看该作者
非常感谢shanxi的教诲。
你给的这篇文章先前看过的,不过我学习.NET技术也只有一年多的时间,今年快毕业的,现在提前到公司实习,被安排做测试。我想既然是交给我的任务就要去做好,并不是我好高骛远,我也同时一直在深入.NET的学习,感觉没有实战经验,有些东西看了或者做了以后又没有多大印象,所以.NET水平确实很低,还请多指教。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-8 03:32 , Processed in 0.074136 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表