当前位置: 首页 > 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.lryc.cn/news/615733.html

相关文章:

  • Ubuntu 22.04 离线环境下完整安装 Anaconda、CUDA 12.1、NVIDIA 驱动及 cuDNN 8.9.3 教程
  • AI绘画:生成唐初秦叔宝全身像提示词
  • 安全运维工具链全解析
  • ELK分布式日志采集系统
  • 【系统分析师】软件需求工程——第11章学习笔记(上)
  • 旅行者1号无线电工作频段
  • 《解锁 C++ 起源与核心:命名空间用法 + 版本演进全知道》
  • 计算机网络:求地址块128.14.35.7/20中的相关信息
  • 《从零构建大语言模型》学习笔记4,注意力机制1
  • Redis如何实现一个分布式锁?
  • Redis主从复制和哨兵模式
  • nginx+lua+redis案例
  • Error: error:0308010C:digital envelope routines::unsupported at new Hash
  • node.js 学习笔记3 HTTP
  • #C语言——刷题攻略:牛客编程入门训练(八):分支控制(二)
  • Linux 虚拟机磁盘空间占满-全面清理方案
  • 【C++详解】红黑树规则讲解与模拟实现(内附红黑树插入操作思维导图)
  • 随机向量正交投影定理(Orthogonal Projection Theorem, OPT)_学习笔记
  • 【Python】常用内置模块
  • 诺基亚就4G/5G相关专利起诉吉利对中国汽车及蜂窝模组企业的影响
  • QT的常用控件说明
  • 【人工智能99问】LLaMA的训练过程和推理过程是怎么样的?(22/99)
  • vuhub Beelzebub靶场攻略
  • 智能体革命:网络安全人的角色重塑与突围指南
  • 医学统计(随机对照研究分类变量结局数据的统计策略2)
  • 用 ES|QL 做搜索从过滤到相关性、再到语义与混合检索
  • WPFC#超市管理系统(5)商品布局、顾客登录、商品下单
  • 机器学习实战·第三章 分类(1)
  • Deep Learning MNIST手写数字识别 Mac
  • 【Elasticsearch入门到落地】16、RestClient查询文档-快速入门