From a5fb95d7b91ab17c0905c5b628ba4029faa9b3e3 Mon Sep 17 00:00:00 2001 From: jack ning Date: Thu, 31 Jul 2025 20:06:45 +0800 Subject: [PATCH] update --- jmeter/readme.md | 44 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/jmeter/readme.md b/jmeter/readme.md index f8116f5448..2baecfb131 100644 --- a/jmeter/readme.md +++ b/jmeter/readme.md @@ -1,6 +1,6 @@ -# Bytedesk登录性能测试 +# 微语登录性能测试 -本目录包含用于测试Bytedesk系统登录功能的JMeter测试脚本。 +本目录包含用于测试微语系统登录功能的JMeter测试脚本。 ## 文件说明 @@ -12,12 +12,14 @@ ## 测试覆盖范围 ### 1. 获取验证码测试 + - **接口**: `GET /kaptcha/api/v1/get` - **并发用户**: 100 - **加压时间**: 10秒 - **测试目的**: 验证验证码生成服务的性能 ### 2. 用户名密码登录测试 + - **接口**: `POST /auth/v1/login` - **并发用户**: 500 - **加压时间**: 30秒 @@ -25,6 +27,7 @@ - **测试目的**: 测试传统用户名密码登录的性能 ### 3. 手机验证码登录测试 + - **发送验证码接口**: `POST /auth/v1/send/mobile` - **登录接口**: `POST /auth/v1/login/mobile` - **并发用户**: 200 @@ -33,6 +36,7 @@ - **测试目的**: 测试手机验证码登录流程的性能 ### 4. 邮箱验证码登录测试 + - **发送验证码接口**: `POST /auth/v1/send/email` - **登录接口**: `POST /auth/v1/login/email` - **并发用户**: 100 @@ -41,6 +45,7 @@ - **测试目的**: 测试邮箱验证码登录流程的性能 ### 5. AccessToken登录测试 + - **接口**: `POST /auth/v1/login/accessToken` - **并发用户**: 300 - **加压时间**: 15秒 @@ -50,11 +55,13 @@ ## 环境要求 ### 软件要求 + - Apache JMeter 5.5+ - Java 8+ - Bash shell (用于执行脚本) ### 系统要求 + - 内存: 至少4GB可用内存 - 磁盘: 至少1GB可用空间用于存储测试结果 - 网络: 稳定的网络连接到测试目标服务器 @@ -64,6 +71,7 @@ ### 1. 安装JMeter #### Linux/macOS + ```bash # 下载JMeter wget https://downloads.apache.org/jmeter/binaries/apache-jmeter-5.5.tgz @@ -76,14 +84,17 @@ sudo mv apache-jmeter-5.5 /usr/local/ ``` #### Windows -1. 下载JMeter: https://jmeter.apache.org/download_jmeter.cgi + +1. 下载JMeter: 2. 解压到合适目录 3. 将bin目录添加到PATH环境变量 ### 2. 配置测试环境 #### 修改测试目标地址 + 编辑 `01_login.jmx` 文件中的用户定义变量: + ```xml host @@ -96,7 +107,9 @@ sudo mv apache-jmeter-5.5 /usr/local/ ``` #### 准备测试数据 + 确保 `users.csv` 文件包含有效的测试用户数据: + ```csv username,password,email,mobile testuser1,password123,testuser1@example.com,13800138001 @@ -128,6 +141,7 @@ jmeter -n -t 01_login.jmx -l results/test_result.jtl -e -o reports/test_report ### 方法3: 使用JMeter GUI 1. 启动JMeter GUI + ```bash jmeter ``` @@ -138,17 +152,21 @@ jmeter ## 测试结果分析 ### 结果文件 + - `results/` - 原始测试结果文件(.jtl) - `reports/` - HTML格式的测试报告 ### 关键指标 + - **响应时间**: 平均响应时间、90/95/99百分位响应时间 - **吞吐量**: 每秒处理的请求数(TPS) - **错误率**: 请求失败的比例 - **并发用户数**: 系统能够支持的最大并发用户数 ### 性能基准 + 根据测试计划文档,建议的性能基准: + - 登录响应时间 < 2秒 - 错误率 < 1% - 支持500并发用户登录 @@ -158,63 +176,79 @@ jmeter ### 常见问题 #### 1. JMeter找不到 + ``` 错误: 找不到JMeter可执行文件 ``` + **解决方案**: 确保JMeter已正确安装,或通过参数指定正确的路径 #### 2. 测试数据文件不存在 + ``` 错误: 找不到测试数据文件: users.csv ``` + **解决方案**: 确保 `users.csv` 文件存在于当前目录 #### 3. 网络连接失败 + ``` 错误: 连接被拒绝 ``` -**解决方案**: + +**解决方案**: + - 检查目标服务器是否运行 - 验证端口配置是否正确 - 检查防火墙设置 #### 4. 验证码错误 + ``` 错误: 验证码验证失败 ``` -**解决方案**: + +**解决方案**: + - 检查验证码接口是否正常工作 - 确认验证码缓存服务配置正确 ### 调试技巧 1. **启用详细日志** + ```bash jmeter -n -t 01_login.jmx -l results/test_result.jtl -e -o reports/test_report -L DEBUG ``` 2. **查看JMeter日志** + ```bash tail -f jmeter.log ``` 3. **使用JMeter GUI调试** + - 在GUI模式下运行单个请求 - 查看请求和响应详情 ## 扩展和定制 ### 添加新的登录方式 + 1. 在测试计划中添加新的线程组 2. 配置相应的HTTP请求 3. 添加必要的断言和提取器 ### 修改测试参数 + - 调整并发用户数 - 修改加压时间 - 更改测试持续时间 ### 集成到CI/CD + ```bash # 在CI/CD流水线中执行测试 ./run_login_test.sh