用Jmeter压力测试使用ruoyi框架开发的后端并发情况

概要

用ruoyi框架开发系统,由于时间紧,框架没有做任何调整,直接增加相关业务。使用Jmeter进行并发量测试。这里做一下记录,方便以后回来查看。

准备环节

测试前要进行以下准备:

  • 下载Jmeter,在官网下载即可。我测试时下载的是v5.6.3
  • 需要测试的账号。批量创建了1000个账号作为作为压力测试
    批量导入测试用户
  • 准备csv文件供测试调用,这里csv文件可以包含所有需要的参数。具体我这次包括了登录用户账号(username),密码(password),记录ID(recordId),试卷ID(paperId)
    csv文件,用notepad++打开是以,分隔,用wps打开自动省略,
  • 提前关闭框架验证码功能

Jmeter脚本编写流程

  1. 步骤1:创建测试计划与线程组

    • 打开JMeter。

    • 右键“测试计划” -> “添加” -> “线程(用户)” -> “线程组”。

        线程数(并发用户数):例如 100
        Ramp-Up时间(秒):例如 10(表示在10秒内启动100个用户)
        循环次数:例如 永远(配合调度器)或固定次数。
      

在这里插入图片描述

  1. 步骤2:添加测试数据
    右键“线程组” -> “添加” -> “配置元件” -> “CSV数据文件设置”。

      文件名:浏览选择你的test_data.csv文件。
      文件编码:UTF-8
      变量名称(逗号分隔):username,password,recordId,paperId
      其他默认
    
  2. 模拟登录操作

    • 右键“线程组” -> “添加” -> “逻辑控制器” -> “事务控制器”(命名为01-登录)。

    • 右键该“事务控制器” -> “添加” -> “取样器” -> “HTTP请求”(命名为POST-登录)。

    • 协议:http 或 https

        服务器名称或IP:你的服务器IP或域名
        端口号:端口号(默认80或443可省略)
        HTTP请求:POST
        路径:/login
        参数:
        username: ${username} (引用CSV中的变量)
        password: ${password}
      

在这里插入图片描述

  1. 右键“线程组” -> “添加” -> “逻辑控制器” -> “事务控制器”(命名为01-登录)。

    • 右键“HTTP请求” -> “添加” -> “后置处理器” -> “正则表达式提取器”。
    • 名称:提取Token
    • 应用于:主体
    • 要检查的响应字段:主体
    • 正则表达式:假设返回的JSON中有"token":“([^”]+)"。
    • 模板: 1 1 1
    • 匹配数字:1
    • 缺省值:NOT_FOUND

在这里插入图片描述

  1. POST登录下面增加一个Http信息头管理器

    • 名称:Content-Type
    • 值:application/json; charset=utf-8

在这里插入图片描述

  1. 模拟考试流程(另一个事务控制器)

    • 右键“线程组” -> “添加” -> “逻辑控制器” -> “事务控制器”(命名为02-考试与交卷)。

    • 添加HTTP信息头管理器(用于携带Token):

        右键“02-考试与交卷”事务控制器 -> “添加” -> “配置元件” -> “HTTP信息头管理器”。
        添加一个头:
        	名称: Authorization
        	值: Bearer ${token} 
      

在这里插入图片描述

  1. 开始考试

    • 在“02-开始”下添加一个“HTTP请求”(命名为GET-开始考试)。
    • 方法:GET
    • 路径:/exam/exam/${recordId} (引用CSV中的变量)

在这里插入图片描述

  1. 添加监听器并执行
    添加监听器(用于查看结果):

    • 右键“线程组” -> “添加” -> “监听器” -> “察看结果树”(调试用,正式压测时禁用)。

    • 右键“线程组” -> “添加” -> “监听器” -> “聚合报告”(看主要指标)。

    • 右键“线程组” -> “添加” -> “监听器” -> “用表格查看结果”(看每个样本的详情)。

  2. List item

    执行与监控:
    先点击“保存”按钮。
    使用“绿色三角形”开始执行测试。
    正式压测时,务必禁用“察看结果树”,因为它非常消耗内存。

流程参考如下

考试流程事务
登录事务
提供参数
传递Token
传递Token
传递Token
循环控制器
模拟作答多道题
HTTP请求: 加载试卷
固定定时器
思考时间
HTTP请求: POST 保存答案
吞吐量定时器
控制答题节奏
HTTP请求: POST 最终交卷
正则表达式提取器
从响应中提取Token/Session
HTTP请求: POST /login
JMeter测试计划
线程组: 模拟并发用户
CSV数据文件设置
配置登录账号等参数
察看结果树
聚合报告
用表格查看结果

小结

我本地的结果集
在这里插入图片描述

500的并发的情况下,瓶颈在登陆,后续业务完全没问题。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值