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

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.dtcms.com/a/323819.html

相关文章:

  • BGP HCIP
  • 繁花深处:花店建设的时代意义与多元应用—仙盟创梦IDE
  • 农经权二轮延包—已有软件与后续研究
  • 线性代数1000题学习笔记
  • 从街亭失守看管理
  • Datawhale AI 夏令营——全球AI攻防挑战赛(AIGC技术-图像方向)
  • LLaMA-Adapter V2 Parameter-Efficient Visual Instruction Model
  • 快速了解DBSCAN算法
  • 分布微服务电商订单系统Rust编码开发[下]
  • 数据结构:树
  • 分布微服务电商订单系统Rust编码开发[上]
  • 代码随想录算法训练营第六十天|图论part10
  • sqllabs——Less1
  • 【每天一个知识点】深度领域对抗神经网络
  • 医防融合中心-智慧化慢病全程管理医疗AI系统开发(下)
  • 零基础学Java第二讲---数据类型与变量
  • 什么是ABA问题?
  • Day 10: Transformer完整架构详解 - 从位置编码到编解码器的全面剖析
  • 【QT】常⽤控件详解(七)容器类控件 GroupBox TabWidget 布局管理器 Spacer
  • 大型动作模型LAM:让企业重复任务实现80%效率提升的AI技术架构与实现方案
  • 复杂项目即时通讯从android 5升级android x后遗症之解决 ANR: Input dispatching timed out 问题 -优雅草卓伊凡
  • 【东枫科技】 FR2 Massive MIMO 原型验证与开发平台,8*8通道
  • Linux 系统中,如何处理信号以避免竞态条件并确保程序稳定性?
  • 【实证分析】上市公司技术创新持续性数据分析-含代码(2008-2023年)
  • 【嵌入式】嵌入式硬件相关基础知识
  • 计算机网络:广播地址就是默认子网中最大的IP地址吗?
  • 计算机视觉全景指南:从OpenCV预处理到YOLOv8实战,解锁多模态AI时代(第五章)
  • 【在线五子棋对战】十二、http请求处理
  • ROS2学习笔记18
  • FreeRTOS学习:资源管理:互斥操作的本质