对LR中Step download timeout (120 seconds) 的解决方法

上一篇 / 下一篇  2011-08-30 13:32:50 / 个人分类:LoadRunner

ction.c(34): Error -27727: Step download timeout (120 seconds) has expired when downloading resource(s). Set the "Resource Page Timeout is a Warning" Run-Time Setting to Yes/No to have this message as a warning/error, respectively   [MsgId: MERR-27727]
Action.c(34): web_link("****") highest severity level was "ERROR", 14506915 body bytes, 547 header bytes   [MsgId: MMSG-26388]Ending action Action.

解决方法:


一、取消选中run time settings-browser emulation-download non-html resources.解决 。

二、run-time settings->preferences->advanced->options下设置

Http-request connect timeout(sec) 把值120改为600,

Http-request recive timeout(sec) 把值120改为600,

测试结果分析的时候,在网页细分图中发现,搜索页面下会有一个登陆页面的aspx,初步分析是搜索超时造成返回登陆页面(页面有超时设置,多久没有登陆系统会返回登陆界面),按照上述方法解决。

另附上一篇看到的日志

来自:http://kaixin322.blog.sohu.com/114120249.html

作者:风~自由自在

这两天测试并发修改采购收货时,录制回放正确,运行脚本,集合点3个并发时,却老是出错

如下:

Action.c(30): Error -26612: HTTP Status-Code=500 (Internal Server Error) forhttp://192.168.100.88:88/Purchase/stockin_action.asp?Oper=Edt

解决过程:按Help提示在浏览器输入原地址,发现提示“请重新登陆系统”。

被此误导,偶以为是Session ID、或Cookie失效,于是尝试找关联,花了N多时间。可是脚本里确实不存在需要关联的地方呀,系统默认关联了。

与程序员沟通,证实此过程不会涉及到Session ID 或Cookie。那为什么?

因为集合点下一站就是修改的提交操作,于是查找web_submit_data-->定位查找Log文档

注意点:怎么找log文件

-->Controller-->Results-->Results Settings 查找本次log文件保存目录-->到该目录下查找log文件夹-->打开

惊喜的发现其中竟然有所有Vuser 的运行log。-->打开Error 查找报错的Vuser-->打开相应的log文件

查找error,然后偶发现了一段让偶热泪盈眶的话:

Action.c(30):     <p>Microsoft OLE DB Provider for ODBC Drivers</font> <font face="宋体" size=2>错误 '800040
Action.c(30):     05'</font>\n
Action.c(30):     <p>\n
Action.c(30):     <font face="宋体" size=2>[Microsoft][ODBC SQL Server Driver][SQL Server]事务(进程 ID  53)
Action.c(30):    与另一个进程已被死锁在  lock 资源上,且该事务已被选作死锁牺牲品。请重新运行该事务。</font>
Action.c(30):     \n
Action.c(30):     <p>\n
Action.c(30):     <font face="宋体" size=2>/Purchase/stockin_action.asp</font><font face="宋体" size=2>,行
Action.c(30):     205</font>
Action.c(30): Error -26612: HTTP Status-Code=500 (Internal Server Error) for "http://192.168.100.88:88/Purchase/stockin_action.asp?Oper=Edt"   [MsgId: MERR-26612]
Action.c(30): t=37758ms: Closing connection to 192.168.100.88 after receiving status code 500   [MsgId: MMSG-26000]
Action.c(30): t=37758ms: Closed connection to 192.168.100.88:88 after completing 43 requests   [MsgId: MMSG-26000]
Action.c(30): t=37760ms: Request done "http://192.168.100.88:88/Purchase/stockin_action.asp?Oper=Edt"   [MsgId: MMSG-26000]
Action.c(30): web_submit_data("stockin_action.asp") highest severity level was "ERROR", 1050 body bytes, 196 header bytes   [MsgId: MMSG-26388]
Ending action Action. [MsgId: MMSG-15918]
Ending iteration 1. [MsgId: MMSG-15965]
Ending Vuser... [MsgId: MMSG-15966]
Starting action vuser_end. [MsgId: MMSG-15919]

解决了。。。。。。。

很寒。由此可以看出,查看日志文件是件多么重要的事情啊!!!!!
其实并发死锁本来就是本次的重点,之前是写事务,但没有做整个页面的锁定,只是写在SQL里。程序员说这样容易出现页面错误,

又改成页面锁定,具体怎么锁偶没看懂asp外行。之前事务冲突,偶让他写个标志,定义个数值字段增一,偶就可以直观看出来了。

这次改成页面就删掉这些标志了,于是出错就无处可寻。

这次最大的收获就是知道怎么查找Controller的log文件。以后看到Error就不会被牵着鼻子走了~~~~

 

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

血的教训~~

再次碰到26612错误,此次偶没认真查看log,又重蹈覆辙。

找了N久,还是没发现问题所在。后来索性又打印出所有log。真理就显示出来了。。

so偷懒不得~~

ction.c(208):     <p>Microsoft OLE DB Provider for SQL Server</font> <font face="????" size=2>???? '80040e31
Action.c(208):     '</font>\n
Action.c(208):     <p>\n
Action.c(208):     <font face="????" size=2>?????????</font>\n
Action.c(208):     <p>\n
Action.c(208):     <font face="????" size=2>/net_qq/call_Scan.asp</font><font face="????" size=2>???? 24</fon
Action.c(208):     t>
Action.c(208): Error -26612: HTTP Status-Code=500 (Internal Server Error) for "http://192.168.30.20/net_qq/call_Scan.asp"   [MsgId: MERR-26612]
End auto log messages stack. [MsgId: MMSG-10544]

三、winlnet replay instead of sockets选项,选项后再回放就成功了。
aI[UP |:J29056351Testing软件测试网 wy5_[ o
解释如下
wlR*~es9|/[290563
1J f;h.j'S290563首先LR是通过Microsoft WinInet DLL去录制
web协议的!但是在Control运行的时候它默认通过socket去模拟请求,因为这些可以真实的模拟带宽,而采用Microsoft WinInet DLL通过这个DLL去访问网卡方式去模拟带宽,使得模拟不是很精确!而且也不支持unix的应用,但是使用这个确实有时无法处理winnet Dll的一些请求,我认为是它的一些BUG,比如说:回放时它会检查Content-Length,但是网页支持receive more data时,这时socket模拟会一直等待直到timeout!51Testing软件测试网I,k~"m i;xE
51Testing软件测试网]\P Mr]L;f"Q
先说了一些优缺点,最后回到这个问题!这个问题分两个方面分析:
8snm r:_\9r4i290563第一:要明白web_set_timeout()这个函数的适用范围!比如说一个web_submit_data()中实际涵盖了10个对Server 端的请求,这个函数是针对10个请求的总和时间的!(别犯低级错误,timeout分了connect,receive以及download三个部分:) )
l![L I[$@rpo290563第二:就是我解释的上面的一些BUG问题!
/J;].c'fY&{Am290563WinInet dll在新版本中处理请求时可以异步的,就是不再是那种连接等待然后超时模式!但是LR用的socket是同步请求!只有等到timeout才会退出!microsoft已经明确表示INTERNET_OPTION_RECEIVE_TIMEOUT 不再适用于 Microsoft Internet Explorer 5.0,显而易见,他们处理请求采取了异步处理的方式!呵呵!这下大概可以圆满解释你的问题了!呵呵
3?A,i)W"\}6?L29056351Testing软件测试网zF+Q]$nU~
这里,我补充如下:
+x0IDf#e290563VuGen专用的基于套接字的重播是一种可伸缩以便进行负载
测试的轻型引擎。使用线程时是准确的。基于套接字的引擎不支持socks代理服务器。如果在这样的环境中录制,应该使用winInet重播引擎。
------------------此方法要慎用,设置此项后,将会得不到网页细分图


TAG: Download download step timeout Step

月光蝴蝶的个人空间 引用 删除 月光蝴蝶   /   2011-09-16 15:03:11
原帖由许丫头于2011-08-31 11:28:01发表
太感谢了,帮了我大忙

谢谢,共同学习吧
许丫头的个人空间 引用 删除 许丫头   /   2011-08-31 11:28:01
太感谢了,帮了我大忙
许丫头的个人空间 引用 删除 许丫头   /   2011-08-31 11:27:34
5
 

评分:0

我来说两句

Open Toolbar