【LoadRunner 调试问题 4】如何让LoadRunner通过服务端的拦截器

【LoadRunner 调试问题 4】如何让LoadRunner通过服务端的拦截器_第1张图片
LoadRunner 11


一直以来,在测试环境调试或者执行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");

你可能感兴趣的:(【LoadRunner 调试问题 4】如何让LoadRunner通过服务端的拦截器)