Jmeter使用

Jmeter 使用

设置用户变量

添加 -> 前置处理器 -> 用户参数

使用用户变量 ${customParam}

随机切换用户变量

  1. 定义两个用户变量,名称为 cn 和 us
  2. 使用函数 ${__RandomFromMultipleVars(cn|us)} 进行随机切换

使用更多函数,工具 -> 函数助手对话框

顺序执行多请求

  1. 添加 -> 定时器 -> 同步定时器
  2. 将定时器中“模拟用户组的数量”设置与线程数一致即可

文件写入数据

接口返回数据如下

1
2
3
4
5
6
7
8
9
10
11
12
{
"code":200,
"message":"OK",
"data":{
"token":"eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIxNjg5MTkxNDc1MTYyMDQ2NDY3IiwibmJmIjoxNjkxNTY5NjA2LCJ0b2tlbkRhdGEiOiJleit1bmlZTVhHZU1SMTVvbGd4TlVwc01namdrMndWQll4enBFZVk0Y0RjN1ZoQUFUbGJXK1wvVXZhcmZieTM3S2VxaWJQbnFnMXcra1NsVEVRQ1JpRkRVbStEU1lKTVpaaW1Nb3E0am02TVorM3c0akJYV1BBTERnb0doSnUyWXgiLCJpc3MiOiJDcmVlayBXZWFyYWJsZSIsImV4cCI6MTY5MTU3NjgwNiwiaWF0IjoxNjkxNTY5NjA2LCJqdGkiOiIxNjg5MTkxNDc1MTYyMDQ2NDY3In0.HMQpFh0bNQyglC2yOELbk9bPVzLzfOLbtxS1okoH_jNN-_AxR3zZ9ODX9iO2DWuVVqg39hCI3QTKWz3haD9rwRhzHgDQfTRbLyRN4ANyYnFAhgTIikzVCM3tbkuVRpQnAfNv6hwDHxvu7kkmhTQzfegezBHJateR1tR90Zwve2UG0VLoeO0r4YV4Ym1jVpoh6NCyCYqsF12c1E19VqeHJZd6HYeQ0WTk6HKm1PcizlNq8kL_ldeLeU7OQ1RzkVLZ_dvWKWrXAAMiPtsNu7NYvyUwq-9Trp1f9jRI3lP8yFvL0Xp6p0guMEbYMBCuziDerWF-p167AWdjX9oxuBPTPA",
"refreshToken":"eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIxNjg5MTkxNDc1MTYyMDQ2NDY3IiwibmJmIjoxNjkxNTY5NjA2LCJ0b2tlbkRhdGEiOiJleit1bmlZTVhHZU1SMTVvbGd4TlVwc01namdrMndWQll4enBFZVk0Y0RjN1ZoQUFUbGJXK1wvVXZhcmZieTM3S2VxaWJQbnFnMXcra1NsVEVRQ1JpRkRVbStEU1lKTVpaaW1Nb3E0am02TVorM3c0akJYV1BBTERnb0doSnUyWXgiLCJpc3MiOiJDcmVlayBXZWFyYWJsZSIsImV4cCI6MTY5Mjg2NTYwNiwiaWF0IjoxNjkxNTY5NjA2LCJqdGkiOiIxNjg5MTkxNDc1MTYyMDQ2NDY3In0.L1YME9gpBstLlUeKIaOjYoFHMzReep7Zeuu79Y5XURP1X8PT_8lFiC-d78ArwAAGtJfa7NWjtvEkER2k7FmjiSv43Kc59bpbLNqySHVJaNwcryX2fbH8m-VgQnXRz7elb0cguS3YCMvryMUoHlloWoSzqTCZIvyV6wJcYoZDBKRUdnnJqFDYBU0n6eGe104oMcETjoeQN1gT62qA-8q29sGjy-IhfuzkYjoYphJQlAsH25ST4TRQF_2hGmTG3cOg2RRME3SyueDCQkWtuowzuI0hR_4tzhYfFTPHOcUkeqiLO3IiIfhU7p9ekIG8ZuL_jxYrNf8xEEn9ZYPPwJDjOA",
"status":null,
"countryCode":"CN",
"domain":"http://192.168.40.113:9501",
"openId":null
}
}
  1. 在指定请求中添加 -> 后置处理器 -> JSON提取器,配置如下

image.png

  1. 选择添加 -> 后置处理器 -> JSR223 后置处理程序,脚本如下
1
2
3
4
5
6
7
8
9
10
11
File file = new File("文件地址");
File parentDir = file.getParentFile();
if (!parentDir.exists()) {
parentDir.mkdirs();
}
try (FileWriter fileWriter = new FileWriter(file, true);
BufferedWriter out = new BufferedWriter(fileWriter);) {
out.write(vars.get("token_1") + "," + vars.get("refreshToken_1") + "\n");
} catch (Exception e) {
e.printStackTrace();
}

读取文件数据

文件中内容如下,以,分隔

1
2
abc,123
cde,235

使用函数 ${__CSVRead(“文件地址”,0)} 读取第一列数据

每秒事务数-插件使用

  1. 下载 插件管理器,将 jar 包放到 lib/ext 目录中并重启
  2. 在选项 -> 插件管理器中找到 jpgc - Standard Set 应用并重启
  3. 添加 -> 监听器 -> jp@gc - Transactions per Second

控制台乱码

打开 jmeter.properties 修改 language=zh_CN