Zee 发表于 2006-8-6 17:40:37

Error -27728: Step download timeout (120 seconds)的解决方法

一个网友问了我一个问题如下:
loadruner报错:Error -27728: Step download timeout (120 seconds) 如何解决
语法检查通过,但是在并发执行一个查询时候报错Action.c(16): Error -27728: Step download timeout (120 seconds) has expired when downloading non-resource(s),请问有啥子解决方法,我使用web_set_timeout ,好象不起作用,直接在option中设置timeout时间为600,(单位应该是秒吧)还是没有起作用,结果都还是提示(120seconds),说明还是以120秒来判断的;使用lrs_set_recv_timeout,语法检查不过,说明库函数里面没有这个函数。

尝试步骤:
设置超时时间到600秒,回放还是出错。

后来我设置了runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,选项后再回放就成功了。

kernzhang解释如下(这里谢谢kernzhang,欢迎访问他的论坛:http://www.kernzhang.com):

这个问题很有意思!呵呵!首先LR是通过Microsoft WinInet DLL去录制web协议的!但是在Control运行的时候它默认通过socket去模拟请求,因为这些可以真实的模拟带宽,而采用Microsoft WinInet DLL通过这个DLL去访问网卡方式去模拟带宽,使得模拟不是很精确!而且也不支持unix的应用,但是使用这个确实有时无法处理winnet Dll的一些请求,我认为是它的一些BUG,比如说:回放时它会检查Content-Length,但是网页支持receive more data时,这时socket模拟会一直等待直到timeout!

先说了一些优缺点,最后回到这个问题!这个问题分两个方面分析:
第一:你要明白web_set_timeout()这个函数的适用范围!比如说一个web_submit_data()中实际涵盖了10个对Server 端的请求,这个函数是针对10个请求的总和时间的!(别犯低级错误,timeout分了connect,receive以及download三个部分:) )
第二:就是我解释的上面的一些BUG问题!
WinInet dll在新版本中处理请求时可以异步的,就是不再是那种连接等待然后超时模式!但是LR用的socket是同步请求!只有等到timeout才会退出!microsoft已经明确表示INTERNET_OPTION_RECEIVE_TIMEOUT 不再适用于 Microsoft Internet Explorer 5.0,显而易见,他们处理请求采取了异步处理的方式!呵呵!这下大概可以圆满解释你的问题了!呵呵

这里,我补充如下:
VuGen专用的基于套接字的重播是一种可伸缩以便进行负载测试的轻型引擎。使用线程时是准确的。基于套接字的引擎不支持socks代理服务器。如果在这样的环境中录制,应该使用winInet重播引擎。

欢迎大家继续讨论。

xingcyx 发表于 2006-8-7 08:58:42

先问清楚他是在哪里设置那个600秒的?

aishary 发表于 2006-8-7 09:42:17

在run-time settings 中internet protocol-preferences-advaced-options-Step download timeout (sec)中设置的

dcyan 发表于 2006-8-16 15:03:58

那样搞会不会导致测试不准确啊

xiaojing23 发表于 2006-8-18 11:24:54

我用loadrunner8.0测试内网、外网系统,出现问题最多的是“connetc timeout”.

看了你的帖子明白了一些原理,但是对实际的操作并不理解。
事务定义--执行简单的点击,持续10分钟。我在内网测试到150vuesr时,就会出现“connetc timeout”.外网也是如此。输出信息中有事务停止、事务失败的提示。这说明我们的内外网络都超出了最大负载了吗?虚拟用户并不多呀?如何解决这个问题?怎么能保证外网压力测试的准确性?
在loadrunner中,能显示现在的网络环境适合多大的vuser,才会是压力测试的结果,最符合真实情况?
楼主在这方面是如何思考操作的?
谢谢!

njsjh1983 发表于 2006-11-4 14:22:02

?????ding

aghuang 发表于 2006-11-9 09:03:42

我这边按照楼主的方法试了,还是不行,请支援!!!

shanxi 发表于 2007-5-15 13:26:27

实际上用了WinInet.DLL这个说法是错误的

比较认同是通过proxy机制录制这个说法,参考这个贴
http://www.17testing.com/bbs/viewthread.php?tid=5&extra=page%3D1&page=1

wan_xie2007 发表于 2008-2-29 11:29:00

我也遇到这问题

你们用哪个版本的我的是7.8跟你们描述的有点不一样
我的Error:-27727
但问题一样,再就是从Run-time and Setting进去找不到那些
设置,郁闷ing

liangjz 发表于 2008-2-29 22:30:54

我也遇上一个


http://bbs.17testing.com/viewthread.php?tid=9152&extra=page%3D1


有点类似的解决方案。

很底层的技术细节,需要网络嗅探器如ethreal 来核对了

dcyan 发表于 2008-3-18 15:24:36

我一直搞不明白这个问题,为什么网上到处都是这个问题的解决方案?
出现这个问题是Loadrunner本身的问题吗? 服务器没问题?
我很费解啊

dcyan 发表于 2008-3-18 15:51:39

我设置了runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets后,情况更坏了
好几个vuser遇到这样的错误 Action.c(7): Error -27492: "HttpSendRequest" failed, Windows error code=12002 and retry limit (0) exceeded for URL="http://*”
我没选winlnet replay instead of sockets项之前只有一个用户产生Error -27728。

我要崩盘了

dcyan 发表于 2008-3-18 15:56:34

在失败的vuser的运行日志里,我看到这条信息 Warning -27069: "Step download timeout" (in "Run-time settings/Preferences/Options") is not supported by the WinInet Replay and is ignored 。
有高手能看明白么?到底选WinInet 行不行啊

cy3499 发表于 2008-3-21 16:46:37

我按照您说的这个设置了:后来我设置了runt time setting中的internet protocol-preferences中的advaced区域有一个winlnet replay instead of sockets选项,选项后再回放就成功了
但是还是没有用呀

laipi 发表于 2008-4-10 17:46:35

好复杂的问题 好像很深的样子飘过 期待解答

jaunty 发表于 2011-6-1 16:28:31

换成winlnet replay instead of sockets后,出现大量的 Windows error code=12002

haiqin 发表于 2011-6-29 16:10:01

如果是8.1,一般我就设置runtime setting里面的advanced option的,http-request connect timeout为1000,http-request receive timeout 为1000,还有一个step download timeout为10000,呵呵

bluejay 发表于 2011-6-29 16:27:27

这个问题得留个记号,确实是会遇到的。

zhangchunwei88 发表于 2011-9-26 14:41:55

谢谢 谢谢啊,各位高手,按照你们的说法,我的问题终于解决了

piaolingxue423 发表于 2011-11-18 15:31:35

多谢zee 分享
页: [1] 2
查看完整版本: Error -27728: Step download timeout (120 seconds)的解决方法