jmeter如何设置全局变量或局部变量,使得多个线程组之间可穿传递参数
·
一、前言
在开始之前,应该先了解jmeter的底层是使用什么传递参数的
- 全局变量-> properties,对象名为props,底层使用这个来传递全局变量
- 局部变量-> vars,表示当前线程组的所有变量
在了解这个前言后,就可以开始继续往后走了
了解开始初始化脚本和运行后脚本在哪里,使用它才能写java代码
同postman,jmeter也有这个机制,初始化脚本是用来初始化数据,运行后脚本是用来进行数据校验的
- 初始化脚本:请求发送前,对数据进行初始化,在前置逻辑处理器中BeanShell
- 运行后脚本:请求发送后,对响应体进行数据校验进行操作,在后置处理器中BeanShell
二、 使用
vers语法
vers.get("key"); // 通过key拿到映射的值
vers.put(key,value); // 通过put来将key和value添加入局部变量中
vers.remove(key); // 删除局部变量
// 获取值同正常变量获取值
${key} // 通过key找到value
props语法
props.get(key); // 通过key拿到映射的值
props.put(key,value); // 通过put来将key和value添加入局部变量中
props.remove(key); // 删除全局变量
// 获取值需要使用内置函数__P 当没有值的时候 他会返回一个空字符串
${__P(key)} // 通过内置函数放入key找value
使用场景:变量是有作用域的,而多个线程组之间需要传递变量,就需要使用到全局变量,先假设我现在有一个请求,我需要拿他的json值,来当作全局变量
// 假设一个url 我需要拿到他的token 来登入,假设我已经通过json提取器拿到了token变量写入全局
// 然后先创建一个结束后处理器
String token = vers.get("token"); // 拿取当前线程组变量
props.put("token_any",token); // key:value的形式,将上面的token变量变成全局变量
这样操作后,就可以在当前线程组中引用 token变量了
更多推荐
所有评论(0)