51Testing软件测试论坛

标题: loadrunner压asp.net网站 遇到问题三个 求解决方法[愿意支付RMB800元][已失效] [打印本页]

作者: redsong    时间: 2006-7-3 16:43
标题: loadrunner压asp.net网站 遇到问题三个 求解决方法[愿意支付RMB800元][已失效]
服务器:双至强2.8CPU, 2G内存,Windows 2003 标准版,.Net FrameWork 2.0,IIS6.0,SQLServer 2005 标准版
LoadRunner Controller: P4 640 2G内存,Windows 2000 Server,LoadRunner 7.8+官方中文包

服务器上有asp.net网站,包括一个论坛和文章发布系统。
服务器上网站上程序直接入库1万用户供测试用:user1--usser10000

loadrunner录制用户登录,点文章链接(弹出新窗口),这些操作.

运行Controller,手动方案,“同时加载所有Vuser”,Vuser数5,开始方案,多次测试,结果每次都有1-2个用户失败,经过检查发现两个问题:

1 网站的首页default.aspx中,IE打,开查看源文件,很靠前的位置,存在如下内容:
--------------------------
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTUzMzI1MTYxN2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgoFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIxJERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbgVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkMjIyYzMwYTktNzU3Ni00MzA2LTk3ZTYtZGY0MTkzMGQ4NDViBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSRiOWE5NzBhYy0wYjUyLTQ5ZjEtOTlmMC05YTEyOTA4ZTc1MWEFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDFmNTZhMjQ3LWZkZTktNGRjMC1hMDc4LTgyMjViY2RmMjJmNAVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkMDI1MzVkYTctYjQ5NC00Mzk5LTk3NmMtMDBmMTczNTZhMWI5BUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQ1MjdjZDY4Ni04YjZmLTRjZjgtYTE2ZS1lNDc3NWJjOGY1ZmUFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDY0MTIyYTQyLTI0YTItNDMyMC1iNjNiLTE1ODk5ZjFmNzk4YwVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkNjRiYWYzZTUtNDE0Ny00ZWY0LTgyMzAtNjE5N2QxM2M2MjNhBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQyNzVlNzE2YS0xMjAzLTQ2NzktYmUwMi04M2U3ODhmZWFlOTcFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJGU5ZmNlYjNjLTJhOTgtNGQ3OS04OTJjLThhN2ExMDQ3YjM3YjDuiOnVXoWOEqr1oTiU/RZceH7O" />
--------------------------
.net程序员解释这是保存页面上控件信息的,比如输入框,下拉菜单的状态等等。  如果手工打开IE,慢速的一次一次的刷新,每次刷新后查看源文件,都是如上内容。如果按着F5不动(快速刷新页面),就会出现如下内容:
--------------------
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTUzMzI1MTYxN2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIxJERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbqEwBCUQGl7HaTuz68uaD59YwVyR" />
--------------------
可以看到ViewState变少了。

如果是手工操作,不管ViewState是多的状态还是少的状态,用户都能正常登录进入系统。
但是在Loadrunner中,5个用户中失败的1个或者2个,查看Loadrunner的日志,可以看到ViewState总是第二种情形,也就是说,Loadrunner中,只要ViewState中的内容变少,则这个用户无法登录成功,表现为直接跳到报错页面,日志如下:
---------------------
Action.c(27): 通知: 参数替换:参数“Siebel_Analytic_ViewState2”=“/wEPDwUKMTUzMzI1MTYxN2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIxJERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbqEwBCUQGl7HaTuz68uaD59YwVyR”
Action.c(27): 通知: 参数替换:参数“NewParam”=“user5”
Action.c(27): “http://192.168.0.1/Default.aspx”(RelFrameId=1)的 t=1509ms: 275 个字节响应标头
Action.c(27):     HTTP/1.1 302 Found\r\n
Action.c(27):     Date: Mon, 03 Jul 2006 08:26:36 GMT\r\n
Action.c(27):     Server: Microsoft-IIS/6.0\r\n
Action.c(27):     X-Powered-By: ASP.NET\r\n
Action.c(27):     X-AspNet-Version: 2.0.50727\r\n
Action.c(27):     Location: /Error.aspx?aspxerrorpath=/Default.aspx\r\n
---------------------

这是第一个问题,希望有高手能够解决。
a 这是.net程序本身的问题,还是loadrunner的问题。
b 如果是loadrunner的问题,应该如何解决。
c 如果是.net程序问题,应该如何解决。

34楼和41楼有对这个问题更详细的说明:       移步到第三页看34楼和41楼
47楼有不是很完美的解决方法:移步到第四页看47楼

[ 本帖最后由 redsong 于 2006-7-7 11:14 编辑 ]
作者: redsong    时间: 2006-7-3 16:48
第二个问题是:
脚本中有点开一个文章页面,是弹出一个新窗口,新窗口中会显示“欢迎:user1”
测试的时候,查看同一个vuser的日志,会出现登录的时候是“user200”,第二页却显示“欢迎 user999”(或者其他的)。
就是说 弹出新窗口后, 显示出来的 “欢迎 某某某”  和第一页登录的时候,是不同的用户了。
传递这个用户名 用的是session
这个问题也请教大家是.net程序还是loadrunner的问题,应该如何解决。


参数化的时候是文本文件,一列 ,user1--user10000,第一行是username
“选择下一行”:Unique
"更新值的时间":Each iteration

[ 本帖最后由 redsong 于 2006-7-4 16:54 编辑 ]
作者: redsong    时间: 2006-7-3 16:51
第三个问题比较简单:
弹出新窗口时候,似乎文本检查点就不生效了。这个如何在loadrunner中设置弹出新窗口,文本检查点依然可以生效。


解决方法:
这个问题也解决了。莫名其妙,这几天屡次尝试都不中,刚刚又尝试了一次就中了。
只要把文本检查点放在新窗口的link下边即可
如图:
Submit Data是登录,Link:企业会计.... 是一个弹出新窗口的链接
我选中的"Service:Find - web_find"是文本检查点。

我第一次发现他不起作用的时候  这个是放在Submint里边的,发现失效之后,看了这个树状的图,改到了link下边,依然失效,这我就不明白了。 现在回想起来,可能是在这里存盘后,Controller中并没有感知到这里的脚本变化了。

今天重新录制了脚本,用Controller检验,是好的。

此问题解决。

[ 本帖最后由 redsong 于 2006-7-4 18:31 编辑 ]
作者: redsong    时间: 2006-7-3 16:55
因为公司比较着急,所以希望有loadrunner高手可以帮助解决这个问题。公司愿意支付800元人民币作为酬谢,绝不食言。
只要能把问题1,2,3圆满解决之后立马支付,绝不以任何理由拖延。
忘记说了,呵呵,不是一人800。是第一个圆满解决的人。

呵呵,参见第四页47楼,问题一,已经用不完美的解决方法解决了。
明天请教研发经理这个解决方法是否通过,如果通过,酬谢降低为800元。如果不通过,继续保持1000元。

第三个问题已经于7月4日18:10解决。此问题失效,酬谢金额不变。

加个时间点:此贴有效性,截止到2006年7月7日 AM11:30

此贴正式失效啦.


脚本在此下载:

[ 本帖最后由 redsong 于 2006-7-7 11:14 编辑 ]
作者: xingcyx    时间: 2006-7-3 17:19
第一个问题应该是关联没做好的缘故。
自动关联并不好用,最好是手工做关联。
楼主试试先。
作者: redsong    时间: 2006-7-3 17:23
原帖由 xingcyx 于 2006-7-3 17:19 发表
第一个问题应该是关联没做好的缘故。
自动关联并不好用,最好是手工做关联。
楼主试试先。



loadrunner新手,“关联” 不是很理解,还希望详细解答一下。
作者: xingcyx    时间: 2006-7-3 17:26
第二个问题估计是有某个地方的参数和关联没有做好,一直使用录制时的用户名,所以这样。
作者: xingcyx    时间: 2006-7-3 17:28
原帖由 redsong 于 2006-7-3 17:23 发表



loadrunner新手,“关联” 不是很理解,还希望详细解答一下。



在脚本中第一次返回viewstate的那个语句前面加上web_reg_save_param函数,函数的具体用法看下帮助,很简单的。然后把后面脚本中出现的viewstate值用这个参数名代替就可以了。
作者: shongwei    时间: 2006-7-3 17:30
对于asp.net 不是lr的自动关联不好,是但asp。net 中的页面控件和数据特别多时,viewstate中需要保存的状态值和数据就特别多,手工操作时可以,用lr操作时,lr会对viewstate进行判断,但viewstate特别长时,lr会截断viewstate,这样服务器端收到页面穿回的控件的状态和值不完整,所以后面就无法进行了。这是你可以调整 关联的参数长度的大小就可以解决问题了
作者: fish_yy    时间: 2006-7-3 17:35
我觉得你主要需要做三件工作:

1. 熟悉一下lr参数的配置
2. 掌握关联的应用
3. 学会参数化及其响应的填充数据策略

你就可以做现在这件事了
作者: redsong    时间: 2006-7-3 17:37
原帖由 xingcyx 于 2006-7-3 17:28 发表



在脚本中第一次返回viewstate的那个语句前面加上web_reg_save_param函数,函数的具体用法看下帮助,很简单的。然后把后面脚本中出现的viewstate值用这个参数名代替就可以了。



实在是愚钝,似乎看懂了你的意思,但是具体怎么操作还是一头雾水,多担待。
作者: redsong    时间: 2006-7-3 17:39
原帖由 shongwei 于 2006-7-3 17:30 发表
对于asp.net 不是lr的自动关联不好,是但asp。net 中的页面控件和数据特别多时,viewstate中需要保存的状态值和数据就特别多,手工操作时可以,用lr操作时,lr会对viewstate进行判断,但viewstate特别长时,lr会截 ...



看明白个大概,如果是跟楼上相同的意思。则我还是不;清楚如何操作。如果是说的web_set_max_html_param_len这里,
已经设置到足够大了。
web_set_max_html_param_len("1200000");
作者: xingcyx    时间: 2006-7-3 17:41
看了楼主的脚本,有好几处需要关联的地方,都没有做关联,因此导致脚本回放不成功。
做好关联即可。
作者: redsong    时间: 2006-7-3 17:41
原帖由 fish_yy 于 2006-7-3 17:35 发表
我觉得你主要需要做三件工作:

1. 熟悉一下lr参数的配置
2. 掌握关联的应用
3. 学会参数化及其响应的填充数据策略

你就可以做现在这件事了


是啊,呵呵,真是书到用时方恨少啊。
作者: xingcyx    时间: 2006-7-3 17:42
1.txt里的这几处地方很可能都是需要关联的:
"Value=c7e9791e-875b-4320-8e94-a9eea7ff0ea6", ENDITEM,
"Name=__EVENTVALIDATION", "Value=/wEWEgLaj8OODwLZ+5zQCALG+5zQCALWlLa+BALXycjtAQLqibj9BwK966KEBwLPs9ToCAKCqejlAgKn1d4xApzwt6wLArbV+c4CAvfolHgC2Zn54AEC7sOn8gMCuf/qnggCy4mlRQLD6K/0A1C8h4P+3ZTSMuQmHUvZuzyo9zFi"
作者: suchboy    时间: 2006-7-3 17:45
请楼主辛苦一下,当问题解决后,要写明白怎么解决的哦
作者: redsong    时间: 2006-7-3 17:47
原帖由 suchboy 于 2006-7-3 17:45 发表
请楼主辛苦一下,当问题解决后,要写明白怎么解决的哦


放心吧。 一定一定。
作者: redsong    时间: 2006-7-3 19:15
感谢xingcyx老兄在QQ上无私的帮助,此贴继续。
作者: xingcyx    时间: 2006-7-3 19:32
呵呵,客气了。
可惜本人还是能力有限呀,呵呵
作者: ilovejolly    时间: 2006-7-3 19:36
你看看log
这个和viewstate没有关系的
作者: Zee    时间: 2006-7-3 20:06
VIEWSTATE的值在每次出现页面时都会不同,因此在用LoadRunner针对这种类型的应用录制脚本时,就需要进行关联 (Correlation) 操作。一般来说,使用web_reg_save_param函数就可以进行关联,例如:

   web_reg_save_param("MyViewState","LB=\"__VIEWSTATE\" value=\"","RB=\"",LAST);

特别要注意的有两点:
1、LoadRunner在某些情况下会对部分VIEWSTATE进行关联,但LR的自动关联在大部分情况下都不那么可靠,因此,建议自行检查一遍自动关联后的脚本,或者直接用手工关联方式处理脚本;
2、如果 ASP.NET 页面上的控件太多,VIEWSTAT的值 (字符串) 会变得很长,而缺省情况下,一个web参数的大小是256 bytes,因此,在 web_reg_save_param 函数之前需要用 web_set_max_html_param_len 函数将参数长度放大。
作者: kernzhang    时间: 2006-7-3 20:07
第一次看到人来悬赏阿!哈哈!
第一个问题:你描述的很差!我希望你能把日志全部进行输出(server端的所有返回信息)然后把Controller报出来的错误日志也给我看一下
第二个问题:很大程度上是你参数设置可能有问题
第三个问题:这个比较简单,弹出窗口式javascripts的行为,我们做检查点时不考虑客户端行为,但是客户端行为也是根据server反馈值进行判断输出阿!这样想不就非常简单了吗?你可以将这个值作为检查点的值不就行了!
当然你可以到我的论坛上发帖!呵呵!(www.kernzhang.com)
作者: ilovejolly    时间: 2006-7-3 20:13
我觉得viewstate不管是从理论还是从实际上来说,都是不用关联的
我以前也听说过有人用这个做关联,问他是没下文了,不知道zee斑竹有什么根据
作者: kernzhang    时间: 2006-7-3 20:18
我不知道楼上从哪里得到这种理论!呵呵!viewstate本身就是.net生成出来的动态垃圾值,你如果不关联,那只能死翘撬,但这跟出题人不断的判断长短没有什么意义!这些值都是动态产生出来的!何必关他的长短!只要正确捕获下来就行,所以第一个问题出题人解决思路有些问题!嘿嘿!
作者: ilovejolly    时间: 2006-7-3 20:30
viewstate保存客户端控件状态,服务器本身是不会验证这个的,为什么要关联呢

我用lr8.0的做过asp.net网站的所有脚本都没有需要关联这个的地方,我以前看过有人说这个需要关联,好象是关河吧,问他他也没说清楚.
作者: ilovejolly    时间: 2006-7-3 20:32
能不能先解释一下为什么我不关联却从来没有出过错呢,洗耳恭听
作者: Zee    时间: 2006-7-3 21:44
ilovejolly兄说不关联,那把你的脚本和LOG帖出来看看。有没有公网的应用,我也来操作一下。

[ 本帖最后由 Zee 于 2006-7-4 09:11 编辑 ]
作者: kernzhang    时间: 2006-7-3 22:00
害!如果关河连这个问题都回答不了你!他就没资格出书了!viewstate到底做什么用我给你两个网页看看!我想你看懂了就应该知道为什么做关联了!当然也有可能不做!你的网页啥也不变的话!呵呵
http://www.chinaaspx.com/archive/asp/21255.htm
http://www.chinaaspx.com/archive/dotnet/10207.htm
作者: redsong    时间: 2006-7-4 08:58
从20楼开始逐一看大家的帖子:

回20楼版主老兄:
现在是判断不出来压的时候报错,是否和ViewState有关。如果没关当然最好,接着在loadrunner里边找原因。

回21楼版主老兄:
1 可能 你提供的方法正确,但是究竟应该如何做的。这里大家始终提到了一个词是“关联”,谁能给我解释一下到底什么是关联。“关联”是“参数化”吗? 录制完脚本之后,我只对登录时候的用户名进行了参数化, 文本文件user.dat中是从user1-user10000共10000个用户。除此之外的其他数据都没有进行参数化,我现在也搞不清楚你们说的“关联” 是否就是参数化的意思。
2 可以看12楼 已经设置成 “web_set_max_html_param_len("1200000"); ”

回22楼版主老兄(哇,今天版主好多哦)
1 随后就贴上
2 是可能有问题,现在想知道的是解决方法,
3 不是很明白,是网页中的[a href="1.htm" target="_blank"]test[/a] 这种方式的链接,不知道和javascript有什么联系。

回24楼版主老兄
“这些值都是动态产生出来的!何必关他的长短!”
我也尝试不管viewstate的长短,现在看起来的结果是,如果viewstate短,则登录的时候直接转到报错页面去。如果viewstate长,则正常通过。所以,管和不管,不是我说了算的啊。是压的结果(log)给了我这样的状况。


感谢所有关注此贴的兄弟,此贴继续有效。
作者: Zee    时间: 2006-7-4 09:13
redsong,去看看关联的资料。以及在什么时候需要关联。那你就知道你的这种情况需要不需要。
作者: xingcyx    时间: 2006-7-4 09:14
“关联”和“参数化”是两个不同的概念。简单说,关联就是服务器端对于某一个字段每次返回的一个变化的值,由于录制的时候和回放的时候这个值不一样,因此需要在脚本中做关联,而参数化只是把你需要输入的值通过参数变化。不知道我这样说清楚没有,我这个是通俗化的说法,你要看更严谨的解释,就去看看手册和帮助,这个又不复杂,而且 是必须掌握的。
作者: xiao_jie98    时间: 2006-7-4 09:16
是关联的问题,viewstate是动态生成的,上回测一个系统也是viewstate太长,无法自动关联,必须手工关联,且要设置保存的最大字符,你先看看精华版里关于怎样做手工关联的文章,理解一下什么是关联,相信这个问题可以解决。我第一次做关联也是不懂,花了两天时间在网上问别人:)
作者: suchboy    时间: 2006-7-4 09:32
结论呢,结论在哪里???

谁赢得了千元大奖啊 ,哈哈哈
作者: redsong    时间: 2006-7-4 09:37
在回22楼版主兄弟的第一个问题:
日志我已经贴到1楼了,可以供你参考一下。既然你说我帖子说的不清楚。那我在重复说一遍,希望这次能说清楚。

先说viewtate的两种状态,一种看起来很多,我称之为长的,一种看起来很少,我称之为短的
---------------------

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTUzMzI1MTYxN2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgoFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIxJERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbgVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkMjIyYzMwYTktNzU3Ni00MzA2LTk3ZTYtZGY0MTkzMGQ4NDViBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSRiOWE5NzBhYy0wYjUyLTQ5ZjEtOTlmMC05YTEyOTA4ZTc1MWEFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDFmNTZhMjQ3LWZkZTktNGRjMC1hMDc4LTgyMjViY2RmMjJmNAVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkMDI1MzVkYTctYjQ5NC00Mzk5LTk3NmMtMDBmMTczNTZhMWI5BUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQ1MjdjZDY4Ni04YjZmLTRjZjgtYTE2ZS1lNDc3NWJjOGY1ZmUFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDY0MTIyYTQyLTI0YTItNDMyMC1iNjNiLTE1ODk5ZjFmNzk4YwVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkNjRiYWYzZTUtNDE0Ny00ZWY0LTgyMzAtNjE5N2QxM2M2MjNhBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQyNzVlNzE2YS0xMjAzLTQ2NzktYmUwMi04M2U3ODhmZWFlOTcFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJGU5ZmNlYjNjLTJhOTgtNGQ3OS04OTJjLThhN2ExMDQ3YjM3YjDuiOnVXoWOEqr1oTiU/RZceH7O" />
---------------------

---------------------

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTUzMzI1MTYxN2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIxJERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbqEwBCUQGl7HaTuz68uaD59YwVyR" />
---------------------

手工操作:
1  IE打开首页,是长的,刷新一次是长的,再刷新一次还是长的,这时候用户登录,是正常的。
2  IE打开首页,按住F5刷新(多次快速刷新),停止,这时候看是短的,用户登录,正常

LoadRunner Controller操作:
5个用户 经常会有1-2个错的,看日志,都是短的。

希望这次能说明白。
感谢你的关注和解答。

[ 本帖最后由 redsong 于 2006-7-4 09:41 编辑 ]
作者: xingcyx    时间: 2006-7-4 11:54
经过昨晚和今早和楼主的交流,包括看过楼主的脚本以及运行日志,我自己也录制了脚本,得出以下几个结论:
1、该问题应与关联无关,因为楼主的脚本里已经对viewstate做了正确的关联,而且在vugen中回放成功,并且在controller中的2个用户,3个用户也都成功,只有到了5个用户的时候才会有个别用户出错,另外两个可疑字段sheetId和
__EVENTVALIDATION,经与开发人员确认,并且自已也多次录制,证实这两个字段只是在前台产生,并不发送到后台校验,因此无需做关联。
2、关于为什么5个用户的时候会导致个别用户出错,我也百思不得其解。由于无法在现场看到现象,因此我也只能做到这个程度了。

总之一句话,我搞不定,各位高人请继续。。。
作者: redsong    时间: 2006-7-4 12:31
感谢xingcyx兄弟两天时间在QQ上热心的指导。 可惜xingcyx和我没在一个城市,不能当面指导我操作。
xingcyx兄弟和我已经互留了电话号码,做人要厚道,xingcyx兄来来北京的时候知会一声,请吃大餐,当面答谢。

此贴继续有效。
作者: xiao_jie98    时间: 2006-7-4 12:48
关河好像这段时间刚好要到北京,直接请他帮忙好了,现场指导,呵呵
作者: AlanStone    时间: 2006-7-4 13:26
ReadSong:
看不到你的脚本,无法知道具体的原因。根据你的描述可以给你一些建议。
第一个问题:有两种错误1.Server出错,这个我也不知道如何解决。2.脚本错误:LR在录NET时会出现录制的结果与IE中的结果不一致,这种情况在回放时无法发现,你需要使用网络监视器察看IE的请求是否与LR录制的相同。特别注意头信息。

第二个问题:参数使用的方式是“迭代”,这样当你在多次回放时会不停的更换用户名,需要改成一次。同时注意Session对于Server端的影响。

第三个问题:弹出的页面也是一个请求,在录制选择录制方式为单独方式,这样就可以察到是哪一个请求在弹出页面,然后使用判断就可以了。

如果你能把脚本和Crotonl的设置与贴上来会让大家更清楚的知道你在那里出了问题。
作者: redsong    时间: 2006-7-4 13:32
回38楼 脚本贴上去了(在四楼),controller压完之后,正确,错误的日志也贴上去了(在1楼)。

关于2:我想说的是,实际应用中,不会出现同一个用户,反复登录,退出系统的。肯定是多个用户在相对集中的时间登录进入系统。之所以这样设置,就是想更贴近实际的模拟真实情况。所以我并不认为这是错误。

非常感谢你的关注和解答。
作者: redsong    时间: 2006-7-4 13:32
原帖由 xiao_jie98 于 2006-7-4 12:48 发表
关河好像这段时间刚好要到北京,直接请他帮忙好了,现场指导,呵呵


怎么联系这位高人呢?
作者: redsong    时间: 2006-7-4 16:11
关于第一个问题在详细叙述一下。

我分别看了压的时候 通过和失败的日志  发现

通过的日志中,包括:
【A】
---------------------------
Action.c(20):     <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTUzMzI1MTYxN2QYAQ
Action.c(20):     UeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgoFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIx
Action.c(20):     JERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbgVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeT
Action.c(20):     EkMjIyYzMwYTktNzU3Ni00MzA2LTk3ZTYtZGY0MTkzMGQ4NDViBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRp
Action.c(20):     bnF1aXJ5MSRiOWE5NzBhYy0wYjUyLTQ5ZjEtOTlmMC05YTEyOTA4ZTc1MWEFSGN0bDAwJE1haW5Db250ZW50JERlZm
Action.c(20):     F1bHQxJGlucXVpcnkxJDFmNTZhMjQ3LWZkZTktNGRjMC1hMDc4LTgyMjViY2RmMjJmNAVIY3RsMDAkTWFpbkNvbnRl
Action.c(20):     bnQkRGVmYXVsdDEkaW5xdWlyeTEkMDI1MzVkYTctYjQ5NC00Mzk5LTk3NmMtMDBmMTczNTZhMWI5BUhjdGwwMCRNYW
Action.c(20):     luQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQ1MjdjZDY4Ni04YjZmLTRjZjgtYTE2ZS1lNDc3NWJjOGY1ZmUFSGN0
Action.c(20):     bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDY0MTIyYTQyLTI0YTItNDMyMC1iNjNiLTE1ODk5ZjFmNz
Action.c(20):     k4YwVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkNjRiYWYzZTUtNDE0Ny00ZWY0LTgyMzAtNjE5
Action.c(20):     N2QxM2M2MjNhBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQyNzVlNzE2YS0xMjAzLTQ2NzktYm
Action.c(20):     UwMi04M2U3ODhmZWFlOTcFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJGU5ZmNlYjNjLTJhOTgt
Action.c(20):     NGQ3OS04OTJjLThhN2ExMDQ3YjM3YjDuiOnVXoWOEqr1oTiU/RZceH7O" />\r\n
---------------------------

【B】
---------------------------
Action.c(20): 通知: 保存参数“Siebel_Analytic_ViewState2 = /wEPDwUKMTUzMzI1MTYxN2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgoFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIxJERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbgVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkMjIyYzMwYTktNzU3Ni00MzA2LTk3ZTYtZGY0MTkzMGQ4NDViBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSRiOWE5NzBhYy0wYjUyLTQ5ZjEtOTlmMC05YTEyOTA4ZTc1MWEFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDFmNTZhMjQ3LWZkZTktNGRjMC1hMDc4LTgyMjViY2RmMjJmNAVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkMDI1MzVkYTctYjQ5NC00Mzk5LTk3NmMtMDBmMTczNTZhMWI5BUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQ1MjdjZDY4Ni04YjZmLTRjZjgtYTE2ZS1lNDc3NWJjOGY1ZmUFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDY0MTIyYTQyLTI0YTItNDMyMC1iNjNiLTE1ODk5ZjFmNzk4YwVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkNjRiYWYzZTUtNDE0Ny00ZWY0LTgyMzAtNjE5N2QxM2M2MjNhBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQyNzVlNzE2YS0xMjAzLTQ2NzktYmUwMi04M2U3ODhmZWFlOTcFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJGU5ZmNlYjNjLTJhOTgtNGQ3OS04OTJjLThhN2ExMDQ3YjM3YjDuiOnVXoWOEqr1oTiU/RZceH7O”
----------------------------

【C】
----------------------------
Action.c(29): 通知: 参数替换:参数“Siebel_Analytic_ViewState2”=“/wEPDwUKMTUzMzI1MTYxN2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgoFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIxJERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbgVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkMjIyYzMwYTktNzU3Ni00MzA2LTk3ZTYtZGY0MTkzMGQ4NDViBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSRiOWE5NzBhYy0wYjUyLTQ5ZjEtOTlmMC05YTEyOTA4ZTc1MWEFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDFmNTZhMjQ3LWZkZTktNGRjMC1hMDc4LTgyMjViY2RmMjJmNAVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkMDI1MzVkYTctYjQ5NC00Mzk5LTk3NmMtMDBmMTczNTZhMWI5BUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQ1MjdjZDY4Ni04YjZmLTRjZjgtYTE2ZS1lNDc3NWJjOGY1ZmUFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDY0MTIyYTQyLTI0YTItNDMyMC1iNjNiLTE1ODk5ZjFmNzk4YwVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkNjRiYWYzZTUtNDE0Ny00ZWY0LTgyMzAtNjE5N2QxM2M2MjNhBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQyNzVlNzE2YS0xMjAzLTQ2NzktYmUwMi04M2U3ODhmZWFlOTcFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJGU5ZmNlYjNjLTJhOTgtNGQ3OS04OTJjLThhN2ExMDQ3YjM3YjDuiOnVXoWOEqr1oTiU/RZceH7O”
Action.c(29): 通知: 参数替换:参数“NewParam”=“useruser4”
----------------------------

失败的日志中 包括:
【A】
----------------------------
Action.c(20):     UeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIx
Action.c(20):     JERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbqEwBCUQGl7HaTuz68uaD59YwVyR" />\r\n
----------------------------

【B】
----------------------------
Action.c(20): 通知: 保存参数“Siebel_Analytic_ViewState2 = /wEPDwUKMTUzMzI1MTYxN2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIxJERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbqEwBCUQGl7HaTuz68uaD59YwVyR”
----------------------------

【C】
----------------------------
Action.c(29): 通知: 参数替换:参数“Siebel_Analytic_ViewState2”=“/wEPDwUKMTUzMzI1MTYxN2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgEFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIxJERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbqEwBCUQGl7HaTuz68uaD59YwVyR”
Action.c(29): 通知: 参数替换:参数“NewParam”=“useruser5”
----------------------------


可以看到 loadrunner在压的时候 准确无误的把服务器给浏览器的viewstate这个变量
记录下来-【A】块
保存下来-【B】块
替换到登录后的页面去-【C】块

所以我觉得,并不需要关联。不知道我的理解对不对。

那这个问题就精简成:
IE手工操作的时候 如果刷新出来viewstate的内容少,则能够正常登录
loadrunner压的时候 如果vuser(模仿IE)刷新出来的viewstate内容少,则不能够正常登录
作者: redsong    时间: 2006-7-4 16:19
此贴继续有效
作者: lbzhong    时间: 2006-7-4 16:30
标题: 楼主你的三个问题均做了回复
楼主你的三个问题均做了回复,由于是写在word的中因此以附件的方式上传.
作者: redsong    时间: 2006-7-4 16:52
原帖由 lbzhong 于 2006-7-4 16:30 发表
楼主你的三个问题均做了回复,由于是写在word的中因此以附件的方式上传.


感谢答复。
1
三楼粘贴的脚本中可以看到:
        web_reg_save_param("Siebel_Analytic_ViewState2",
                "LB/IC=ViewState\" value=\"",
                "RB/IC=\"",
                "Ord=1",
                "RelFrameId=1",
                "Search=Body",
                LAST);
还有         "Name=__VIEWSTATE", "Value={Siebel_Analytic_ViewState2}", ENDITEM,

这是不是说明loadrunner已经作了自动关联  并且自动关联是正确的。


3 你说的也都想到了 的确是在 “查看树”的状态下 在新弹出来的窗口的这步下边增加的文本检查点。不过的确是没有起到作用。
  loadrunner总是尝试在原来的页去找。肯定是找不到了。

2 点的是一个正常的弹出新窗口的链接 例如
   http://192.168.0.1/FilePost/Show ... 6-988b-ad3c280b59a6  传递的参数分别的栏目id和文章id   类似 “e67c768c-8dba-47dc-9cca-4971c15afb78”这样的东西 就是文章id和栏目id 用的是“GUID” 号称是全球范围内不会重复(日 有啥鸟用) 。传递过去的用户名用的是session,当然登录的是user2  现是出来的是欢迎"user3" 明显是session错了,但是导致session错误的原因是loadrunner还是程序本身,这是我想解决的问题。


感谢lbzhong兄弟! 不管是否解决,偶都真诚感谢你!
作者: ldneliza    时间: 2006-7-4 17:38
高手就在身边!第一个问题解决了!
作者: xingcyx    时间: 2006-7-4 17:39
呵呵,redsong我觉得第一个问题你已经可以不用理会了,因为你的脚本在controller里面已经有2个用户可以并发执行成功,通常这样我们都可以认为你的脚本是没有问题的,我想对于这一点,论坛里的各位高手应该都不会有什么异议吧?我们调试LR脚本都是做到这一步就结束了。
作者: redsong    时间: 2006-7-4 17:45
第一个问题暂时解决鸟   过程如下。

脚本中:

        web_reg_save_param("Siebel_Analytic_ViewState2",
                "LB/IC=ViewState\" value=\"",
                "RB/IC=\"",
                "Ord=1",
                "RelFrameId=1",
                "Search=Body",
                LAST);

全部注释掉

同时
"Name=__VIEWSTATE", "Value={Siebel_Analytic_ViewState2}", ENDITEM,
替换为
"Name=__VIEWSTATE", "Value=/wEPDwUKMTUzMzI1MTYxN2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgoFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIxJERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbgVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkMjIyYzMwYTktNzU3Ni00MzA2LTk3ZTYtZGY0MTkzMGQ4NDViBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSRiOWE5NzBhYy0wYjUyLTQ5ZjEtOTlmMC05YTEyOTA4ZTc1MWEFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDFmNTZhMjQ3LWZkZTktNGRjMC1hMDc4LTgyMjViY2RmMjJmNAVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkMDI1MzVkYTctYjQ5NC00Mzk5LTk3NmMtMDBmMTczNTZhMWI5BUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQ1MjdjZDY4Ni04YjZmLTRjZjgtYTE2ZS1lNDc3NWJjOGY1ZmUFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDY0MTIyYTQyLTI0YTItNDMyMC1iNjNiLTE1ODk5ZjFmNzk4YwVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkNjRiYWYzZTUtNDE0Ny00ZWY0LTgyMzAtNjE5N2QxM2M2MjNhBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQyNzVlNzE2YS0xMjAzLTQ2NzktYmUwMi04M2U3ODhmZWFlOTcFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJGU5ZmNlYjNjLTJhOTgtNGQ3OS04OTJjLThhN2ExMDQ3YjM3YjDuiOnVXoWOEqr1oTiU/RZceH7O", ENDITEM,


兄弟们看明白了吧,相当于我的IE在欺骗服务器, 就是说不管在刷新完成页面后,服务器给了浏览器什么值,都不管,就直接提交回去这串多的,正确的值。
作者: redsong    时间: 2006-7-4 17:48
47楼不是完美的解决方法,相当于我用IE欺骗服务器。 毕竟有的时候,服务器在给IE传过来首页的时候,viewState有多的时候,有少的时候,而我返回去的,是一个固定的值。

此贴继续有效,同时1000元降低为800元
作者: yuezhiyin    时间: 2006-7-4 18:11
第一个问题 :请查看一下 是否有非同步的 静态集合~存储 用户信息~你快速刷新时把前一个用户的变量 清空了
第2个问题:脚本单独回放时也是如此吗?可以采取 内置IE 看看~
第3个问题:没看明白
作者: yuezhiyin    时间: 2006-7-4 18:19
标题: 那个替换是不对的~你都强制换完了~那还测啥啊~
那个替换是不对的~你都强制换完了~那还测啥啊~
作者: yuezhiyin    时间: 2006-7-4 18:22
标题: 我在JSP中遇到过这样问题
有一个静态集合存储 用户信息~等信息不要了~集合就被清空~当你并发的时候~几个用户争抢集合~后一个把前一个的信息清空了~我怀疑是这样的
作者: redsong    时间: 2006-7-4 18:23
感谢49楼
第一个 问题暂时搁置 等明天问过研发经理之后再继续
第二个 试过多次,单独回放的时候因为只是user1这个用户 所以不会出这样的问题,log里边看不到,所以内置IE里边肯定也看不到。
第三个 估计我也搞定了。很莫名其妙,一直都不成,突然就成了。 (参见三楼的解决方法)
作者: redsong    时间: 2006-7-4 18:24
原帖由 yuezhiyin 于 2006-7-4 18:19 发表
那个替换是不对的~你都强制换完了~那还测啥啊~


所以说这是一个不完美的解决方法,继续求更完美的方法。
作者: yuezhiyin    时间: 2006-7-4 18:24
标题: 第一个问题不干关联什么事
第一个问题不干关联什么事
作者: yuezhiyin    时间: 2006-7-4 18:46
标题: 第2个问题不是参数化的问题
第2个问题不是参数化的问题,应该是session的问题~

参数化只在你最开始的事取那个列里的值~取完以后就拉倒了~
剩下的都交给session处理~除非你在最后弹出页面的时候又参数化了一遍~

怀疑 session中 有荣誉数据~或者堆栈没清空什么的~我不懂 .net 凭经验心思着说~
请多包涵
作者: redsong    时间: 2006-7-5 08:57
原帖由 yuezhiyin 于 2006-7-4 18:46 发表
第2个问题不是参数化的问题,应该是session的问题~

参数化只在你最开始的事取那个列里的值~取完以后就拉倒了~
剩下的都交给session处理~除非你在最后弹出页面的时候又参数化了一遍~

怀疑 session中 有荣誉 ...



同样是怀疑程序的问题。目前的状况是手工测试的时候,此问题无法出现,导致不能说服研发人员。
作者: Koffer    时间: 2006-7-5 10:27
从LoadRunner的角度来看是不需要了解.Net的Session机制如何运作的。
LoadRunner只是从最终产生的HTML文件中收集、查找数据,从客户端发送给服务器端。

1. 你所说的长短ViewState 只是你在页面上操作多少导致的长短,.Net 会产生很多ViewState数据保存用户的操作信息,在你刷新页面的时候数据仍然保留,操作的过程越长,数据量越大,ViewState就越大,例如,你页面上有一个很大的DataGrid,那么你可以看看ViewState相当长。
    解决:不管ViewState多长或者多短,都需要关联。一般LR会自动关联,但是如果没有自动,就要手工操作了。就用web_reg_save_param()保存下来ViewState的数据。


2. 页面中某个地方没有完全参数化,仔细检查,或者跟Developer讨论是否这个东西加密了。然后在某个地方有解密出来了。

3. No comments.
作者: xingcyx    时间: 2006-7-5 11:22
呵呵,楼上对第一个问题说得很清楚,佩服佩服!
不过楼主的问题正好跟我们平常的理解相反,如果对viewstate做了关联,会发生他说的时而变长时而变短的情况,而且当他在手工操作的时候,不管viewstate是长还是短,都可以登录成功,而如果在脚本里就不行了,对这个现象我就觉得很奇怪。所以他最后才采取了不得已的办法,取消了关联。
作者: yuezhiyin    时间: 2006-7-5 18:01
标题: 检查程序吧!!
检查程序吧~看看usename字段是怎么传递的~除了手动 检查 还没想出什么太好的方法
作者: swordsman    时间: 2006-7-6 17:41
标题: 关注!!!!
楼主问题解决之后一定要说明怎么解决的啊.我也遇到和你一样的情况,最终由于无法解决而放弃了.
这个问题困惑我N久了啊.
我会一直关注的!!!
作者: lotus    时间: 2006-7-7 10:35
问题一:同意Koffer 的观点使用web_reg_save_param()进行关联,对于楼主关心的这个值长或短,可以在这个函数前加一个web_set_max_html_param_len (const char *length )函数来设置大小,以摆脱默认viewstate值大小限制

问题二:如楼主所说,手工测试,显示没有问题,这说明程序没有出错,是脚本的总题.楼主给的出错信息,不清淅,请详细说明,描述如下,最初录制脚本,查看r的日志,会出现登录的时候是“user???”,第二页显示“欢迎 user?”;脚本参数化后,第二个Vuser日志显示是user????,第三个Vuser日志显示是user????.   建议把脚本相关部分贴上来
怀疑此问题,可能脚本某处有隐含值需要进行关联,显示才会正确
作者: redsong    时间: 2006-7-7 10:47
最后一贴.还有一个小时就失效了。让我把这个帖子完成吧。

首先感谢所有关注和回帖的兄弟们,感谢你们对问题的认真回答,感谢你们独到的分析,感谢你们在QQ上耽误自己下班的时间陪着我解决问题,其中的兄弟们包括  xingcyx  shongwei fish_yy suchboy ilovejolly Zee kernzhang xiao_jie98 AlanStone lbzhong ldneliza yuezhiyin Koffer swordsman lotus

接着来说问题:

第一个问题:
根据1楼 34楼 41楼的叙述,问题的情形大家都清楚了,不在重复,多数兄弟都判断是关联的问题,就是我没有对viewstate设置好手动关联。在发贴之前我还不知道什么是关联,不过现在已经知道了。关联就是服务器给浏览器端传过来的数据,如果有不同的话,loadrunner的虚拟用户,可以用把这些不同的值返回给服务器。
但是我在41楼贴出来的内容 和 4楼贴出的脚本中已经包含的内容:
----------------------------
        web_reg_save_param("Siebel_Analytic_ViewState2",
                "LB/IC=ViewState\" value=\"",
                "RB/IC=\"",
                "Ord=1",
                "RelFrameId=1",
                "Search=Body",
                LAST);

"Name=__VIEWSTATE", "Value={Siebel_Analytic_ViewState2}", ENDITEM,
----------------------------
足够说明:第一个问题和“关联”没有关系
所以在41楼的最后两句,问题被精简成:
-----------------------
IE手工操作的时候 如果刷新出来viewstate的内容少,则能够正常登录
loadrunner压的时候 如果vuser(模仿IE)刷新出来的viewstate内容少,则不能够正常登录

-----------------------
之后公司的一个作技术的同事(互联网上非常出名哦)一句话给了我一个思路
[attach]9804[/attach]
按照他的思路,才有了47楼的不完美解决方法,内容如下:
-----------------------------------
第一个问题暂时解决鸟   过程如下。

脚本中:

        web_reg_save_param("Siebel_Analytic_ViewState2",
                "LB/IC=ViewState\" value=\"",
                "RB/IC=\"",
                "Ord=1",
                "RelFrameId=1",
                "Search=Body",
                LAST);

全部注释掉

同时
"Name=__VIEWSTATE", "Value={Siebel_Analytic_ViewState2}", ENDITEM,
替换为
"Name=__VIEWSTATE", "Value=/wEPDwUKMTUzMzI1MTYxN2QYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgoFP2N0bDAwJEhlYWRDb250ZW50JERlZmF1bHRIZWFkZXIxJERlZmF1bHRMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbgVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkMjIyYzMwYTktNzU3Ni00MzA2LTk3ZTYtZGY0MTkzMGQ4NDViBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSRiOWE5NzBhYy0wYjUyLTQ5ZjEtOTlmMC05YTEyOTA4ZTc1MWEFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDFmNTZhMjQ3LWZkZTktNGRjMC1hMDc4LTgyMjViY2RmMjJmNAVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkMDI1MzVkYTctYjQ5NC00Mzk5LTk3NmMtMDBmMTczNTZhMWI5BUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQ1MjdjZDY4Ni04YjZmLTRjZjgtYTE2ZS1lNDc3NWJjOGY1ZmUFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJDY0MTIyYTQyLTI0YTItNDMyMC1iNjNiLTE1ODk5ZjFmNzk4YwVIY3RsMDAkTWFpbkNvbnRlbnQkRGVmYXVsdDEkaW5xdWlyeTEkNjRiYWYzZTUtNDE0Ny00ZWY0LTgyMzAtNjE5N2QxM2M2MjNhBUhjdGwwMCRNYWluQ29udGVudCREZWZhdWx0MSRpbnF1aXJ5MSQyNzVlNzE2YS0xMjAzLTQ2NzktYmUwMi04M2U3ODhmZWFlOTcFSGN0bDAwJE1haW5Db250ZW50JERlZmF1bHQxJGlucXVpcnkxJGU5ZmNlYjNjLTJhOTgtNGQ3OS04OTJjLThhN2ExMDQ3YjM3YjDuiOnVXoWOEqr1oTiU/RZceH7O", ENDITEM,

兄弟们看明白了吧,相当于我的IE在欺骗服务器, 就是说不管在刷新完成页面后,服务器给了浏览器什么值,都不管,就直接提交回去这串多的,正确的值。
-----------------------------------
用了这个办法,其实不是解决了问题,而是避开了问题。在没有找到更好的解决方法之前,也只能如此。


在这插几句别的,我不知道其他的公司如何,在我所在的公司,我自己崇尚的是“各司其职,各负其责”。但是往往某些时候,测试和研发是一个对立的方面,总会出现互相推卸责任的状况。就这个问题来说,最早的时候,似乎责任全部在我,因为手工操作,没有任何错误的程序在Loadrnner中报错。不过现在看起来,两方面都有责任。
研发:搞清楚为什么快速刷新IE之后查看源文件ViewState会变短。
测试:搞清楚为什么ViewState变短之后,手工操作正常,Loadrunner中不正常。

[ 本帖最后由 redsong 于 2006-7-7 17:15 编辑 ]
作者: redsong    时间: 2006-7-7 11:05
第二个问题:

2楼提问第二个问题的时候,有这么两句话:
-------------------
传递这个用户名 用的是session
这个问题也请教大家是.net程序还是loadrunner的问题,应该如何解决。
-------------------

我想,web页面之间记录和传递数据(不是页面[客户端]和服务器之间传递数据),目前只有两种方法cookie和session
cookie因为安全性和可以被客户端禁止的问题而越来越少的被使用,所以我们这个网站用的session
发现问题之后,我的思路同样是先判断是谁的问题,研发?测试?只有先搞清楚谁应该解决这个问题之后才能往下走,
所以我问了"是.net程序还是loadrunner的问题",不过看起来搞测试的兄弟们还是太老实,太敬业了,上来都想先尝试解决这个问题。

这几天中,我屡次尝试手工操作,结果真的还让我重现了问题:

开两个IE,分别用user1 user2登录, 各自点开一个弹出新窗口的链接,分别显示欢迎user1 欢迎user2
按住一个IE(欢迎user2)的F5键疯狂刷新,停止,发现变成了另外一个(欢迎user1),再次按住另外一个IE(欢迎user1)的F5刷新,停止,发现变成了(欢迎user2)。到这里为止,问题就可以让研发解决了。

不过手工操作很难测试来这种情况,通常是反复操作多次,才能出现,也没有什么规律,并且一下一下的刷新不行,必须是很快速的刷新(和第一个问题有些相近)。

第三个问题:
三楼已有解决方案
作者: redsong    时间: 2006-7-7 11:13
再次强烈感谢所有回帖,关注的兄弟们
感谢51testing网站给了大家一个畅所欲言的平台!
感谢xingcyx兄弟,奖金没有送出去不是我的错,来北京的话不电联一下一起吃顿饭就是你的不对了。


愿所有的公司都像重视客户,重视利润,重视股票价格,重视企业信誉一样重视测试,也希望我们的薪水节节攀升!


此贴结贴,奖金失效。sdlkfj3
作者: xingcyx    时间: 2006-7-7 11:32
呵呵,奖金失效没关系,能够交到你这么一个朋友是更大的收获。
看了你分析问题解决问题的态度和方法,让我很是佩服,以后多交流,有机会去北京一定宰你一顿,呵呵。
同时你要是有机会来厦门,也欢迎来找我。
作者: swordsman    时间: 2006-7-7 15:39
标题: 思考
看了大家的贴子,发现自己思考问题的能力不够,多向大家学习.
以后有什么问题还需要向大家多请教.
作者: yuezhiyin    时间: 2006-7-7 17:52
标题: 对于第2个问题 楼主有代码的话 把出错代码贴出来
对于第2个问题 楼主有代码的话 把出错代码贴出来~
看来我怀疑的没错~但是这种错误代码是不太好找的~
多见一些错误模式~对大家的工作都有好处
作者: mlvex123    时间: 2016-6-15 23:23
不知道楼主问题解决了没有。我看也是06年的帖子了。。
现在我也遇到类似的问题,2016年了,10年了。。

问题是这样的。
伪代码,操作步骤如下:
1、打开页面:
    web_reg_save_param("viewstate1");
    web_url 方法,get页面
    此时,可以得到get消息返回的viewstate值
2、查询:
    web_reg_save_param("viewstate2");
    web_custom_request(post方法,viewstate = {viewstate1},name=某某人) //伪代码,查询这步的post,要用到第一步的viewstate值,这里可以获取,没有问题。
    此时,在查询框下方会查出几十条数据
3、勾选记录点击确定【问题就在这里】:
    web_custom_request(post方法,viewstate = /Wwjfwejfwoefwejof) //此处viewstate省略几千字符
问题如第三步所描述的。在第二步中,查出了记录。第三步,勾选某条记录【第二步name参数查出的人名,任选一个】,并不会产生HTTP消息,只有点击确认按钮,才会发送post消息,此时,post消息体中的viewstat不能从第二步获取,因为第二步获取的viewstat2这个参数,是没有勾选任何记录的,一旦使用了这个viewstat2,第三步的post就会报错(报为勾选任何记录)

请问还有好的解决方法?





欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2