jmeter跨线程调用参数
一, 动态关联
1,做接口测试的时候,很多接口之间的数据是有关联的
下一个接口需要用到上面的接口返回的数据
2,一定要理清楚接口的业务逻辑,搞清楚接口需要哪些数据,你要用到的数据是在响应的body还是header中
3,动态关联的两种情况
A,两个需要关联的接口在同一个线程组中
B,两个接口不再同一个线程组中
需要将提取出来的值设置成功全局变量,这里要用到一个函数助手__setProperty(),
最后生成一个函数:${__setProperty(SmsCode,${SMScode},)},接着添加一个bean shell取样器,目的是用来执行这个代码的
如图:1,打开函数助手
2,设置全局变量
3,设置bean shell取样器
4,接着还要在函数助手中添加一个引用函数,直接引用,如图
或者另外一个线程组添加BeanShell Sampler,接收参数
String loginkey=props.get("SmsCode");
vars.put("vars_loginkey",loginkey);
5,引用到下一个线程组中:
遇到的问题,因为线程组是随机运行的,如果下面的线程组(注册功能)先运行,那么就会出错,怎么解决呢?两种办法
1, 在测试计划中勾选独立运行每个线程组
运行成功:
1, 把验证码的接口放到setUp线程组中(推荐使用)
也是成功的,这种方式要快很多,推荐使用第二种方法