在Loadrunner 11中模拟异步请求

发表于:2016-10-08 10:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:BlogJava-专家区    来源:51Testing软件测试网采编

  在近期的某性能测试项目中,使用LR 11做测试,遇到了一个问题:在录制的脚本中,许多请求都带有EXTRARES,如:
  web_submit_data("clientlog.jspx_23",
  "Action=https://gaa-ad.pp2.shanghaionstar.com:8101/Advisor/faces/xAdvisorWeb/bundles/gaacommon/jsf/clientlog.jspx?message=Alerts%20refresh%20completed&clientTime=1466056941075",
  "Method=POST",
  "RecContentType=text/html",
  "Referer=https://gaa-ad.pp2.shanghaionstar.com:8101/Advisor/xAdvisorWeb/desktop/desktop.jsp",
  "Snapshot=t57.inf",
  "Mode=HTML",
  ITEMDATA,
  EXTRARES,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=854&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=854&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=854&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=854&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=855&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=855&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=855&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=855&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=856&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=856&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=856&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=856&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=857&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=857&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=857&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=857&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=858&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=858&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=858&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=858&z=11", "Referer=", ENDITEM,
  LAST);
  这些 EXTRARES 资源请求实际上是在上一个页面请求时发起,并通过异步的方式返回的一些地图数据。由于在录制脚本的过程中,上一步操作未能等到这些数据全部返回便开始了下一步的操作,因此在随后的脚本中,LR将这些请求作为 EXTRARES
  资源附在了这些请求之后。如此一来就造成了一个问题:这些请求的响应时间变长,但对于真实的用户而言,这些请求的响应时间却并没有那么长(因为这些地图数据在后台加载,用户感受不到)。表面上看来,似乎LR测试得到的结果与实际“不一致”了。而另一方面,这些资源请求又是真实存在的,对于服务器产生了压力,所以也不能简单粗暴地直接在脚本中去掉。
  最后,我们采取的办法是:将这些地图数据的加载单独写成一个web_url,使它对服务器产生真实的负载,并把它放在定义的事务之外。脚本如下:
  web_url("map",
  "URL=http://10.16.93.182:22002/maptile/maptile?x=1711&y=854&z=11",
  EXTRARES,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1711&y=854&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=854&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=854&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=854&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=854&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1711&y=855&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=855&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=855&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=855&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=855&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1711&y=856&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=856&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=856&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=856&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=856&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1711&y=857&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=857&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=857&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=857&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=857&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1711&y=858&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1712&y=858&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1713&y=858&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1714&y=858&z=11", "Referer=", ENDITEM,
  "Url=http://10.16.93.182:22002/maptile/maptile?x=1715&y=858&z=11", "Referer=", ENDITEM,
  同时,将后续脚本中的 EXTRARES 资源请求删除。
  这样一来,就既模拟了服务器端真实的负载场景,又避免了客户端实际响应时间不一致的问题。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号