问题描述
同事遇到的一个问题,LR执行性能测试脚本时,总报出错误,无法访问一个图片的地址,但脚本中明明没有对该资源的请求。
Action4.c(12): Warning -27796: Failed to connect to server "10.11.204.35:80": [10060] Connection timed out [MsgId: MWAR-27796]Action4.c(12): Warning -26000: Empty or no response for URL=http://10.11.204.35/iwebfiles/yqlj/26/107/10/4/361.gif [MsgId: MWAR-26000] |
我查了一下,确实脚本中看不出问题,所有不相干的请求都删掉了,页面的请求中EXTRARES属性中的资源列表也都删掉了,只保留了主页面的请求。但只要一执行,就会去访问那个无法连接的资源。
分析与实验
查看了该页面的源文件,确实可以看到那个有问题的图片链接,是写在一个表格里的。于是很自然的猜测,是不是表格中的资源,录制不到脚本中、但是又访问了呢?
这种问题,其实确信只要把录制方式转换为URL-Based Mode就肯定能解决,因为可以显式的录下所有请求。但还是想把HTML-Based Mode下的问题解决,于是做了一些测试。
模拟那个问题页面,创建测试用页面。特意写了两个图片资源做对比,一个普通的图片,一个是放置在表格中的图片超链接,测试访问这个页面录制的脚本。
<html> <head> <meta http-equiv="content-type" content="text/html;charset=gb2312"> <title>测试页面</title> </head> <body> <p> 普通的图片 <img src=http://172.16.1.3/bbs/attachments/month_1110/20111008_3f1828e9b28294cb7f23Wu3TykOUV9RM.jpg width="126" height="45" border="0"/> </p> <p> <table border=2> <tr> <td> 表格中的图片跳转链接 </td> </tr> <tr> <td> <a href=http://172.16.1.3/bbs/viewthread.php?tid=44597&extra=page%3D1###zoom target="_blank"><img src=http://172.16.1.3/bbs/attachments/month_1110/20111008_67cebe2ca85b66fe580cGUGESOM05AWo.jpg width="126" height="45" border="0"/></a> </td> </tr> </table> </p> </body> </html> |
创建如上的HTML,放到TOMCAT的ROOT目录中,则可以通过tomcat访问该页面。
测试:
1、默认的HTML-Based Mode方式进行录制,只录到一个请求。
web_url("test_mode.html", "URL=http://172.16.6.17:8080/test_mode.html", "Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t12.inf", "Mode=HTML", LAST); |
脚本中看不到对资源的请求,但实际运行时,还是会去获取两个图片资源。通过Replay Log可以看到请求的证据:
Action_HTML.c(7):Found resourcehttp://172.16.1.3/bbs/attachments/month_1110/20111008_3f1828e9b28294cb7f23Wu3TykOUV9RM.jpg in HTML http://172.16.6.17:8080/test_mode.html [MsgId: MMSG-26659] Action_HTML.c(7): Found resource http://172.16.1.3/bbs/attachments/month_1110/20111008_67cebe2ca85b66fe580cGUGESOM05AWo.jpg in HTML http://172.16.6.17:8080/test_mode.html [MsgId: MMSG-26659] |