文章目录
概要
用ruoyi框架开发系统,由于时间紧,框架没有做任何调整,直接增加相关业务。使用Jmeter进行并发量测试。这里做一下记录,方便以后回来查看。
准备环节
测试前要进行以下准备:
- 下载Jmeter,在官网下载即可。我测试时下载的是v5.6.3
- 需要测试的账号。批量创建了1000个账号作为作为压力测试

- 准备csv文件供测试调用,这里csv文件可以包含所有需要的参数。具体我这次包括了登录用户账号(username),密码(password),记录ID(recordId),试卷ID(paperId)

- 提前关闭框架验证码功能
Jmeter脚本编写流程
-
步骤1:创建测试计划与线程组
-
打开JMeter。
-
右键“测试计划” -> “添加” -> “线程(用户)” -> “线程组”。
线程数(并发用户数):例如 100 Ramp-Up时间(秒):例如 10(表示在10秒内启动100个用户) 循环次数:例如 永远(配合调度器)或固定次数。
-

-
步骤2:添加测试数据
右键“线程组” -> “添加” -> “配置元件” -> “CSV数据文件设置”。文件名:浏览选择你的test_data.csv文件。 文件编码:UTF-8 变量名称(逗号分隔):username,password,recordId,paperId 其他默认 -
模拟登录操作
-
右键“线程组” -> “添加” -> “逻辑控制器” -> “事务控制器”(命名为01-登录)。
-
右键该“事务控制器” -> “添加” -> “取样器” -> “HTTP请求”(命名为POST-登录)。
-
协议:http 或 https
服务器名称或IP:你的服务器IP或域名 端口号:端口号(默认80或443可省略) HTTP请求:POST 路径:/login 参数: username: ${username} (引用CSV中的变量) password: ${password}
-

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

-
POST登录下面增加一个Http信息头管理器
- 名称:Content-Type
- 值:application/json; charset=utf-8

-
模拟考试流程(另一个事务控制器)
-
右键“线程组” -> “添加” -> “逻辑控制器” -> “事务控制器”(命名为02-考试与交卷)。
-
添加HTTP信息头管理器(用于携带Token):
右键“02-考试与交卷”事务控制器 -> “添加” -> “配置元件” -> “HTTP信息头管理器”。 添加一个头: 名称: Authorization 值: Bearer ${token}
-

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

-
添加监听器并执行
添加监听器(用于查看结果):-
右键“线程组” -> “添加” -> “监听器” -> “察看结果树”(调试用,正式压测时禁用)。
-
右键“线程组” -> “添加” -> “监听器” -> “聚合报告”(看主要指标)。
-
右键“线程组” -> “添加” -> “监听器” -> “用表格查看结果”(看每个样本的详情)。
-
-
List item
执行与监控:
先点击“保存”按钮。
使用“绿色三角形”开始执行测试。
正式压测时,务必禁用“察看结果树”,因为它非常消耗内存。
流程参考如下
小结
我本地的结果集

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

被折叠的 条评论
为什么被折叠?



