当前位置: 首页 > java >正文

jmeter常规压测【读取csv文件】

例如:常规压测100个不同的用户,读取100个用户token【没有要求的一个token就直接在请求头中添加就可以了】

1. 创建线程组

  1. 设置线程组参数:
  • 右键点击"测试计划" > 添加 > 线程(用户) > 线程组
  • 线程数:100
  • Ramp-up时间:10秒(让100个用户在10秒内逐步启动)
  • 循环次数:1(每个用户执行一次)

2. 添加CSV数据集配置

  1. 配置CSV读取:
  • 右键点击线程组 > 添加 > 配置元件 > CSV数据集配置
  • 文件名:/Users/construct/Documents/NIMI/压力测试_克拉肯/account_tokens.csv
  • 文件编码:UTF-8
  • 变量名称:phone_number,user_id,token
  • 分隔符:,(逗号)
  • 勾选"忽略首行"(跳过CSV标题行)
  • 循环读取方式:True(循环使用CSV中的数据)
  • 每个线程独立打开文件:False(让每个线程获取不同的账号)
  • 遇到文件结束时停止线程:False

3. 添加HTTP请求

  1. 创建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信息头管理器

  1. 设置认证头:
  • 右键点击HTTP请求 > 添加 > 配置元件 > HTTP信息头管理器
  • 添加以下信息头:
  • Authorization: Bearer ${token}(使用CSV中的token变量)
  • Content-Type: application/json
  • X-DFPID: xxxxxxxxxxxxxxxxxxxx==
  • X-SIUA: xxxxxxxxxxxxxxxxx

5. 添加结果监听器

  1. 添加监听器:
  • 右键点击线程组 > 添加 > 监听器 > 聚合报告
  • 右键点击线程组 > 添加 > 监听器 > 查看结果树
  • 右键点击线程组 > 添加 > 监听器 > 图形结果

6. 关键配置要点

  1. 确保每个线程使用不同token:
  • CSV数据集配置中不要勾选"每个线程独立打开文件"
  • 这样第一个线程使用第一行数据,第二个线程使用第二行数据,以此类推
  1. 处理token数量不足的情况:
  • 如果CSV文件只有100个token,而您设置了更多线程,JMeter会循环使用token
  • 确保CSV文件中至少有100个有效的token
  1. 优化性能:
  • 取消勾选HTTP请求中的"跟随重定向"(如果不需要)
  • 在监听器中勾选"仅保存失败的样本"以提高性能

7. 运行测试

  1. 保存测试计划:
  • 文件 > 保存测试计划为 > 100用户压力测试.jmx
  1. 执行测试:
  • 点击绿色启动按钮
  • 观察聚合报告中的性能指标

8. 验证token使用

在"查看结果树"中检查不同请求的Authorization头部,确保每个请求使用了不同的token。您应该看到类似这样的变化:

  • 请求1:Authorization: Bearer eyJhbGciOixxxxxx...(第一个token)
  • 请求2:Authorization: Bearer eyJhxxxxx...(第二个token)
  • 以此类推...

这样配置后,JMeter将使用CSV文件中的100个不同token进行100个用户的并发压力测试,每个用户使用独立的认证凭证。

http://www.xdnf.cn/news/17542.html

相关文章:

  • 北京JAVA基础面试30天打卡06
  • Vulhub靶场组件漏洞(XStream,fastjson,Jackson)
  • 北京天津廊坊唐山打捞失物日记
  • 双非二本如何找工作?
  • jxWebUI--按钮
  • 黑马SpringBoot+Elasticsearch作业2实战:商品搜索与竞价排名功能实现
  • 【RocketMQ 生产者和消费者】- ConsumeMessageConcurrentlyService 并发消费消息
  • socket编程中系统调用send()详细讲解
  • MySQL自增ID与UUID的区别及其在索引分裂中的表现与优化
  • 七、CV_模型微调
  • 通过sealos工具在ubuntu 24.02上安装k8s集群
  • DevOps:从GitLab .gitlab-ci.yml 配置文件到CI/CD
  • 第十五讲:set和map
  • WebAssembly技术详解:从浏览器到云原生的高性能革命
  • 本地WSL部署接入 whisper + ollama qwen3:14b 总结字幕增加利用 Whisper 分段信息,全新 Prompt功能
  • 国内外主流大模型深度体验与横向评测:技术、场景与未来展望
  • 生产工具革命:定制开发开源AI智能名片S2B2C商城小程序重构商业生态的范式研究
  • 密码学的数学基础2-Paillier为什么产生密钥对比RSA慢
  • 基于django的宠物用品购物商城的设计与实现
  • Windows安装MySql8.0
  • docker等基础工具使用
  • Linux810 shell 条件判断 文件工具 ifelse
  • 基于多链路智能SD-WAN的船舶智能监控系统安全等级保护实施方案
  • 【工具变量】地市人力资本水平数据集(2003-2023年)
  • 【密码学】7. 数字签名
  • 四、RuoYi-Cloud-Plus 部署时nacos配置服务启动
  • Python 中的 Mixin
  • 区块链密码学简介
  • 第05章 排序与分页
  • 详解Windows(十四)——PowerShell与命令提示符