对于测试脚本,可能换多个环境进行测试,如果每次换环境都要给每一个请求配置ip和端口有些多余,于是可以通过配置全局变量,解决该问题,实现一次修改即可。
创建Bean Shell Sampler:
配置全局变量:${__setProperty(url,192.168.4.98,)}
完成全局变量的配置后,使用${__property(url)}
进行引用
接下来是token的动态获取配置,在此之前有一个坑:在请求token时要为其加一个HTTP Header,配置媒体格式,不然请求会报media error。
访问登录校验的接口,获得token:
在结果树中可以看到返回的token信息:
{"token":"eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsInVzZXJJZCI6IjAiLCJuYW1lIjoi566h55CG5ZGYIiwicm9sZXMiOiJbMSwgMiwgM10iLCJleHAiOjE1Njg4OTExODl9.i95Z3T4Z8yfqWAvllmfi1-kypQOJkCd-BVvKzDvhsrAupy1F_tiQNqu53NB_1O2AXfPIgxxEtLNoovN6MYZV1ILGUy2lCAWH3nL3Iz8AApY8jgGxdII8Ap9RlE0O5lViXITSGZctcEosn0_kHGd6Ls-xIVHMB1b06_V0PMmKwfc"}
添加一个Regular Expression Extractor 使用正则表达式获取token:
再为之后要执行的请求加一个同级的HTTP Header即可,通过${token}
获得token
jmeter设置全局变量与正则表达式提取器
接口测试中,很多接口都要带上登录后的token才能正常发送请求,这里记录一下登录获取token设置为全局变量供其他接口使用
登录后返回信息信息中会有一个token值,添加后置处理器中的正则表达式提取token,然后用后置处理器中的BeanShell PostProcessor设置token为全局变量
1、获取token值:
1.1、用fiddler抓包
1.2、F12查看接口信息
1.3、用jmeter登录查看
2、正则表达式提取token:
3、BeanShell PostProcessor设置token为全局变量:
4、其他接口使用该全局变量:
添加http信息头管理器
正则表达式提取器提取多个值
下一个接口的参数中需要用到前面某一接口返回数据中的值,因此通过正则表达式提取器来取得该值
$1$,$2$,$3$ 表示同时匹配第一个,第二个和第三个模板的数据
匹配数字:这里填写1,表示每个模板值获取第一个匹配的数据
${id_g1}获取第一个模板匹配到的数据
${id_g2}获取第二个模板匹配到的数据
${id_g3}获取第三个模板匹配到的数据