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