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 编辑 ] 第二个问题是:
脚本中有点开一个文章页面,是弹出一个新窗口,新窗口中会显示“欢迎:user1”
测试的时候,查看同一个vuser的日志,会出现登录的时候是“user200”,第二页却显示“欢迎 user999”(或者其他的)。
就是说 弹出新窗口后, 显示出来的 “欢迎 某某某”和第一页登录的时候,是不同的用户了。
传递这个用户名 用的是session
这个问题也请教大家是.net程序还是loadrunner的问题,应该如何解决。
参数化的时候是文本文件,一列 ,user1--user10000,第一行是username
“选择下一行”:Unique
"更新值的时间":Each iteration
[ 本帖最后由 redsong 于 2006-7-4 16:54 编辑 ] 第三个问题比较简单:
弹出新窗口时候,似乎文本检查点就不生效了。这个如何在loadrunner中设置弹出新窗口,文本检查点依然可以生效。
解决方法:
这个问题也解决了。莫名其妙,这几天屡次尝试都不中,刚刚又尝试了一次就中了。
只要把文本检查点放在新窗口的link下边即可
如图:
Submit Data是登录,Link:企业会计.... 是一个弹出新窗口的链接
我选中的"Service:Find - web_find"是文本检查点。
我第一次发现他不起作用的时候这个是放在Submint里边的,发现失效之后,看了这个树状的图,改到了link下边,依然失效,这我就不明白了。 现在回想起来,可能是在这里存盘后,Controller中并没有感知到这里的脚本变化了。
今天重新录制了脚本,用Controller检验,是好的。
此问题解决。
[ 本帖最后由 redsong 于 2006-7-4 18:31 编辑 ] 因为公司比较着急,所以希望有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 发表
第一个问题应该是关联没做好的缘故。
自动关联并不好用,最好是手工做关联。
楼主试试先。
loadrunner新手,“关联” 不是很理解,还希望详细解答一下。 第二个问题估计是有某个地方的参数和关联没有做好,一直使用录制时的用户名,所以这样。 原帖由 redsong 于 2006-7-3 17:23 发表
loadrunner新手,“关联” 不是很理解,还希望详细解答一下。
在脚本中第一次返回viewstate的那个语句前面加上web_reg_save_param函数,函数的具体用法看下帮助,很简单的。然后把后面脚本中出现的viewstate值用这个参数名代替就可以了。 对于asp.net 不是lr的自动关联不好,是但asp。net 中的页面控件和数据特别多时,viewstate中需要保存的状态值和数据就特别多,手工操作时可以,用lr操作时,lr会对viewstate进行判断,但viewstate特别长时,lr会截断viewstate,这样服务器端收到页面穿回的控件的状态和值不完整,所以后面就无法进行了。这是你可以调整 关联的参数长度的大小就可以解决问题了 我觉得你主要需要做三件工作:
1. 熟悉一下lr参数的配置
2. 掌握关联的应用
3. 学会参数化及其响应的填充数据策略
你就可以做现在这件事了 原帖由 xingcyx 于 2006-7-3 17:28 发表
在脚本中第一次返回viewstate的那个语句前面加上web_reg_save_param函数,函数的具体用法看下帮助,很简单的。然后把后面脚本中出现的viewstate值用这个参数名代替就可以了。
实在是愚钝,似乎看懂了你的意思,但是具体怎么操作还是一头雾水,多担待。 原帖由 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"); 看了楼主的脚本,有好几处需要关联的地方,都没有做关联,因此导致脚本回放不成功。
做好关联即可。 原帖由 fish_yy 于 2006-7-3 17:35 发表
我觉得你主要需要做三件工作:
1. 熟悉一下lr参数的配置
2. 掌握关联的应用
3. 学会参数化及其响应的填充数据策略
你就可以做现在这件事了
是啊,呵呵,真是书到用时方恨少啊。 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 发表
请楼主辛苦一下,当问题解决后,要写明白怎么解决的哦
放心吧。 一定一定。 感谢xingcyx老兄在QQ上无私的帮助,此贴继续。 呵呵,客气了。
可惜本人还是能力有限呀,呵呵 你看看log
这个和viewstate没有关系的