jmeter跨线程组调用

功能说明:当脚本内存在多线程内的接口均需要登录接口的Token时,可使用跨线程组调用方式使得每个线程组内的接口调用到登录接口内的token,方式如下
在这里插入图片描述
在这里插入图片描述

KaTeX parse error: Expected group after '_' at position 2: {_̲_setProperty(to…{token},)}
${__P(token,)}

存在的问题:
使用该功能后,若进行多线程并发,则全部线程使用的token均为setup线程组内最后一次执行所获取的token

解决方案:
1.在setup线程组内增加beanshell处理器,将获取到的Token写入到csv文件内
在这里插入图片描述

String p1 = System.getProperty(“user.dir”);
String p2 = System.getProperty(“file.separator”);
String p3 = “user_token.csv”;
String path = p1 + p2 + p3;

FileWriter fileWriter = new FileWriter(new File(path), true);
BufferedWriter writer = new BufferedWriter(fileWriter);
writer.append(vars.get(“token”)+“\n”);
writer.close();
fileWriter.close();

System.out.println(“写入完成:” + path);
代码说明: user.dir=当前工作空间,若在jmeter内运行则会生成到jmeter的bin目录下
生成一个名为user_token的csv文件
2.并在其他线程组内增加csv数据设置,用以读取csv文件内的Token
在这里插入图片描述

3.增加setdown线程组,该线程组内增加beanshell处理器,写入删除csv文件的代码(如果不删CSV文件,则下次运行该脚本会无法获取到正确Token)
在这里插入图片描述

String p11 = System.getProperty(“user.dir”);
String p22 = System.getProperty(“file.separator”);
String p33 = “user_token.csv”;
String path1 = p11 + p22 + p33;

System.out.println(“准备删除文件:” + path1);

File file = new File(path1);

if (!file.exists()) {
System.out.println(“删除文件失败:” + path1 + “不存在!”);
} else {
file.delete();
System.out.println(“删除成功” + path1);
}
System.out.println(“执行完成”);
代码说明:检测当前工作目录下是否存在user_token文件,若存在则进行删除
system.out.println为调试代码,意为在控制台输出调试日志,方便查看代码是否已经完成运行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值