jmeter中跨线程调用变量
Jmeter中跨线程调用变量
一.Jmeter中线程运行规则
1.各个线程组是完全独立的,每个线程组是不同的业务,互不影响
2.线程组中的每个线程也是完全独立
3.线程组中的每个线程,都是从上往下执行,完成一轮循环后,继续下一轮循环
4.存在业务流或者接口之前存在依赖关系的放同一个线程组
5.setup线程组在其他线程组之前执行,teardown线程组在其他线程组之后执行
二.Jmeter中变量传递规则
1.测试计划中的变量是全局变量,所有线程组都可以使用,单个线程可以临时修改,不会改变初始值,其他线程调用时,仍然是初始值
2.线程组的变量是线程私有,其他线程组不能引用
三.Jmeter中使用属性实现跨线程调用变量
以登录线程和查询余额线程接口中的token跨线程调用为例
1.jmeter中提取登录接口返回的token
2.在登录线程中,使用beanshell后置处理器,把token设置成属性
通过函数助手setproperty,生成mytoken的beanshell变量
把${token}赋值给mytoken:${__setProperty(mytoken,${token},)};
3.在查询余额线程中,使用beanshell前置处理器,定义一个新的变量保存token属性
通过property获取mytoken属性
定义gettoken接收mytoken属性值
String gettoken = "${__property(mytoken,,)}";
4.通过var函数,把gettoken复制给jmeter变量token88,供jmeter中调用
vars.put("token88",gettoken);
5.在查询余额接口,添加http 信息头管理器
Token的值为token88
6.调试脚本