Jmeter自动化测试平台搭建之错误四(HTML测试报告)

1、测试报告问题1:左上角测试报告生成时间未显示
这里写图片描述
解决方法:在生成报告代码添加以下红框中的代码
这里写图片描述
这里写图片描述

2、测试报告问题2:测试报告对应的每条记录未显示+/-图片
这里写图片描述
解决办法:在生成报告代码添加以下红框中的代码
这里写图片描述
这里写图片描述
这里写图片描述

<think>我们正在讨论如何使用JMeter对Portal系统进行性能测试。根据引用[2]的内容,JMeter性能测试完成后,可以查看性能报告,但实时性能监控需要搭建性能监控平台。同时,引用[1]提到JMeter+Grafana+Influxdb的方法可以搭建可视化监控平台。因此,我们可以将Portal系统的性能测试分为两个部分:测试脚本编写和性能监控平台搭建。 ### 步骤1: 准备测试计划 首先,我们需要在JMeter中创建测试计划,模拟用户对Portal系统的操作。这包括: - 添加线程组(设置并发用户数、循环次数等) - 添加HTTP请求(模拟用户访问Portal的各个页面或接口) - 添加断言(验证响应是否正确) - 添加监听器(收集测试结果) ### 步骤2: 配置后端监听器(用于实时监控) 为了将测试结果实时发送到InfluxDB,我们需要添加一个后端监听器(Backend Listener)。在JMeter中,选择监听器 -> 后端监听器,并配置如下: - 选择`org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient` - 配置InfluxDB的URL(如:http://localhost:8086)和数据库名(如:jmeter) ### 步骤3: 部署InfluxDB 根据引用[2],我们需要部署InfluxDB来存储测试结果。具体步骤包括: 1. 下载并安装InfluxDB(参考官网:https://portal.influxdata.com/downloads/) 2. 启动InfluxDB服务 3. 创建数据库(在InfluxDB的命令行中执行:`CREATE DATABASE jmeter`) ### 步骤4: 部署Grafana Grafana用于展示性能测试的实时数据。部署步骤包括: 1. 下载并安装Grafana(参考官网:https://grafana.com/grafana/download) 2. 启动Grafana服务 3. 添加InfluxDB数据源:在Grafana的Web界面(默认http://localhost:3000)中,配置数据源,选择InfluxDB,并填写InfluxDB的URL和数据库名(jmeter) ### 步骤5: 导入Grafana仪表板 为了快速展示JMeter的测试结果,我们可以导入现有的Grafana仪表板模板。例如,使用JMeter官方提供的模板(ID:5496): 1. 在Grafana中,点击“Create” -> “Import” 2. 输入模板ID:5496,然后加载 3. 选择之前添加的InfluxDB数据源 ### 步骤6: 执行测试并查看监控 运行JMeter测试计划,同时打开Grafana仪表板,即可实时查看性能指标(如响应时间、吞吐量、错误率等)。 ### 注意事项 1. Portal系统可能涉及登录,需要在HTTP请求中添加Cookie管理器或使用HTTP授权管理器。 2. 对于动态参数(如CSRF token),需要使用正则表达式提取器或JSON提取器处理。 3. 根据测试需求,调整线程组的并发用户数和持续时间,以模拟真实场景。 ### 性能测试关键指标 在测试过程中,我们需要关注以下指标: - **响应时间**:用户请求的平均响应时间。 - **吞吐量**(Throughput):系统每秒处理的请求数。 - **错误率**:失败请求的百分比。 - **资源利用率**:如CPU、内存使用率(需要额外监控,如使用服务器监控工具)。 ### 引用说明 以上步骤参考了JMeter性能测试的常规方法,特别是引用[1]和[2]中提到的JMeter+Grafana+Influxdb监控平台搭建方法[^1][^2]。 §§相关问题§§ 1. 如何对JMeter测试脚本进行参数化以模拟真实用户? 2. 在性能测试中,如何模拟Portal系统的用户登录状态? 3. 除了响应时间和吞吐量,还有哪些关键性能指标需要关注?</think>### 如何使用JMeter进行Portal系统的性能测试 以下是针对Portal系统进行性能测试的完整步骤,结合JMeter的核心功能和最佳实践: --- #### **1. 测试准备阶段** - **明确测试目标** 确定关键性能指标: - 并发用户数(如:500/1000用户) - 响应时间要求(如:API接口 ≤ 500ms) - 吞吐量(如:≥ 1000请求/秒) - 错误率(如:< 0.1%) - **环境搭建** - 测试环境:复制生产环境的服务器配置、数据库、网络带宽[^2] - JMeter安装: ```bash # 下载JMeter(需Java环境) wget https://dlcdn.apache.org/jmeter/binaries/apache-jmeter-5.6.3.zip unzip apache-jmeter-5.6.3.zip ``` --- #### **2. 脚本开发** - **录制HTTP请求** 使用JMeter的 **HTTP(S) Test Script Recorder**: 1. 设置浏览器代理(如Chrome:`localhost:8888`) 2. 在JMeter中添加`Recording Controller` 3. 启动代理后操作Portal页面,自动生成请求 - **关键组件配置** - **线程组**:设置并发用户数(线程数)、循环次数 - **HTTP请求**:配置Portal的API/页面路径(如:`/login`, `/dashboard`) - **参数化**: ```csv # user_credentials.csv username,password user1@test.com,pass123 user2@test.com,pass456 ``` 使用`CSV Data Set Config`加载参数 - **关联动态数据** 使用正则提取器处理动态Token(如Session ID): ```regex // 提取响应中的token "token":"(.+?)" ``` --- #### **3. 性能监控配置** - **后端监听器** 添加`Backend Listener`将实时数据写入InfluxDB: ```ini influxdbUrl: http://localhost:8086 application: jmeter measurement: portal_metrics ``` 参考引用[1][^1]的监控方案 - **服务器资源监控** 通过`PerfMon Metrics Collector`监控: - CPU使用率 - 内存占用 - 磁盘I/O (需在目标服务器部署`ServerAgent`) --- #### **4. 执行压测与分析** - **阶梯式加压策略** 使用`Concurrency Thread Group`: ```mermaid graph LR A[0-50用户/30s] --> B[保持100用户/2min] B --> C[200用户峰值/1min] ``` - **结果分析工具** - **聚合报告**:查看平均响应时间、吞吐量 - **Grafana仪表盘**:实时可视化监控(需配置InfluxDB数据源)[^1] - **响应时间图**:定位慢请求瓶颈 - **关键性能阈值** | 指标 | 警告阈值 | 失败阈值 | |------|----------|----------| | 响应时间 | >800ms | >1500ms | | 错误率 | >1% | >5% | | CPU使用 | >80% | >95% | --- #### **5. 优化建议** - **常见瓶颈处理** - 数据库慢查询:添加`JDBC Request`测试SQL性能 - 高并发失败:检查线程池配置(如Tomcat的maxThreads) - 内存泄漏:使用`jp@gc - Memory Usage`监听器 - **分布式测试** 当单机无法模拟高并发时: ```bash # 控制机执行 jmeter -n -t portal_test.jmx -R slave1_ip,slave2_ip ``` --- #### **6. 测试报告** - 使用`Dashboard Report`生成HTML报告: ```bash jmeter -g result.csv -o report_folder ``` - 报告包含: - 吞吐量变化曲线 - 响应时间百分位图(90%, 95%, 99%) - 服务器资源使用热力图 > **注**:Portal系统若涉及SSO登录,需使用`HTTP Cookie管理器`保持会话状态;静态资源建议使用`HTTP Cache管理器`模拟浏览器缓存[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值