如何让LoadRunner通过服务端的拦截器

发表于:2016-8-02 11:38

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

 作者:秋之川    来源:51Testing软件测试网采编

  一直以来,在测试环境调试或者执行LoadRunner脚本前,都需要让开发帮忙把服务端的拦截器关掉。否则在执行脚本时,就会提示下面的错误:“Invalid request IP:60.173.220.146 path:接口路径和接口名称”,为了不依赖于开发的操作,我通过Fiddler捕获了一下接口请求的Request Headers参数,让开发看了下拦截器的代码,得到了必传参数列表。
  接下来要做的事就是找到LoadRunner里是否有方法可以把那些必传的头文件参数加到每个接口的请求里。
  最初,是以为可以把这些参数加到web_custom_request的方法体里,但查了一下Help文件,并没有一个属性值是用来塞Header参数的;
web_custom_request("getVerificationCode",
"url=http://api.xxxxx.cn/userInfo/getVerificationCode?phone={phone}&clientId={clientid}",
"Method=POST",
"TargetFrame=",
"Resource=0",
"RecContentType=application/json",
"Mode=HTTP",
"Snapshot=t7.inf",
LAST);
  后来又找到web_add_header方法,它可以将指定的header参数加到接口的请求里,从而让这个接口的请求通过服务端的拦截器。不过这个方法有一个不足的地方,就是需要在每个请求之前都要加一下,这样会导致整个脚本显得比较臃肿,维护起来也会麻烦很多。所以,为了提高整个脚本的可维护性,又继续深挖了一下LoadRunner的Help文档,还是很强大的一个参考资料,只是需要有一定的英文阅读能力。
  最终还是给我找到了web_add_header的加强版:web_add_auto_header,只需要将它加在整个Action文件的最前面,它就会自动把header参数加到整个Action里的所有接口请求里。
  区别:
  web_add_header:Adds the specified header to the next HTTP requests.
  web_add_auto_header:Adds the specified header to all subsequent HTTP requests.
  基本格式如下:
web_add_auto_header("VERSION", "2.5.2.160701");
web_add_auto_header("CLIENT_TYPE", "1");
web_add_auto_header("APIVERSION", "1.0");
web_add_auto_header("TIME", "1468224184577");
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号