jmeter常规压测【读取csv文件】
例如:常规压测100个不同的用户,读取100个用户token【没有要求的一个token就直接在请求头中添加就可以了】
1. 创建线程组
- 设置线程组参数:
- 右键点击"测试计划" > 添加 > 线程(用户) > 线程组
- 线程数:100
- Ramp-up时间:10秒(让100个用户在10秒内逐步启动)
- 循环次数:1(每个用户执行一次)
2. 添加CSV数据集配置
- 配置CSV读取:
- 右键点击线程组 > 添加 > 配置元件 > CSV数据集配置
- 文件名:/Users/construct/Documents/NIMI/压力测试_克拉肯/account_tokens.csv
- 文件编码:UTF-8
- 变量名称:phone_number,user_id,token
- 分隔符:,(逗号)
- 勾选"忽略首行"(跳过CSV标题行)
- 循环读取方式:True(循环使用CSV中的数据)
- 每个线程独立打开文件:False(让每个线程获取不同的账号)
- 遇到文件结束时停止线程:False
3. 添加HTTP请求
- 创建HTTP请求:
- 右键点击线程组 > 添加 > 取样器 > HTTP请求
- 服务器名称:test.xxxxx.com
- 端口号:80
- 方法:POST
- 路径:/xxx/xx/xxx/xxxx/xxxx/activity/(或其他接口路径)
- 消息体数据:
json
Apply to 获取账号token.py
{
"attack_number": 1,
"is_trea": false,
}
4. 添加HTTP信息头管理器
- 设置认证头:
- 右键点击HTTP请求 > 添加 > 配置元件 > HTTP信息头管理器
- 添加以下信息头:
- Authorization: Bearer ${token}(使用CSV中的token变量)
- Content-Type: application/json
- X-DFPID: xxxxxxxxxxxxxxxxxxxx==
- X-SIUA: xxxxxxxxxxxxxxxxx
5. 添加结果监听器
- 添加监听器:
- 右键点击线程组 > 添加 > 监听器 > 聚合报告
- 右键点击线程组 > 添加 > 监听器 > 查看结果树
- 右键点击线程组 > 添加 > 监听器 > 图形结果
6. 关键配置要点
- 确保每个线程使用不同token:
- CSV数据集配置中不要勾选"每个线程独立打开文件"
- 这样第一个线程使用第一行数据,第二个线程使用第二行数据,以此类推
- 处理token数量不足的情况:
- 如果CSV文件只有100个token,而您设置了更多线程,JMeter会循环使用token
- 确保CSV文件中至少有100个有效的token
- 优化性能:
- 取消勾选HTTP请求中的"跟随重定向"(如果不需要)
- 在监听器中勾选"仅保存失败的样本"以提高性能
7. 运行测试
- 保存测试计划:
- 文件 > 保存测试计划为 > 100用户压力测试.jmx
- 执行测试:
- 点击绿色启动按钮
- 观察聚合报告中的性能指标
8. 验证token使用
在"查看结果树"中检查不同请求的Authorization头部,确保每个请求使用了不同的token。您应该看到类似这样的变化:
- 请求1:Authorization: Bearer eyJhbGciOixxxxxx...(第一个token)
- 请求2:Authorization: Bearer eyJhxxxxx...(第二个token)
- 以此类推...
这样配置后,JMeter将使用CSV文件中的100个不同token进行100个用户的并发压力测试,每个用户使用独立的认证凭证。