实验七-性能测试
实验项目名称:实验七-性能测试
一、 实验目的
1、正确安装Jmeter;
2、能够完成脚本录制,运行脚本,查看运行结果;
3、完成某网站的性能测试。
二、 实验内容
1、 学习ppt,理解性能测试;
2、 掌握Jmeter使用方法;
3、 对具体网站,能分别使用相应的工具完成脚本录制,运行脚本,查看运行结果。
三、 实验步骤及结果
完成ppt中轻商城的性能测试,给出一套完整的脚本录制、场景设计、场景监视以及其结果分析流程。并选择对轻商城的增删改功能进行性能测试。
实验报告须完整叙述Jmeter使用流程,并描述关键性步骤,需要界面效果截图。
Jmeter安装与配置
1. Jmeter安装步骤
1. 从Apache官网下载Jmeter二进制包(apache jmeter 5.4.1.zip)
- 解压到本地目录(如D:\apache jmeter 5.4.1)
3. 配置环境变量:
新增JMETER_HOME=D:\apache jmeter 5.4.1
在Path中添加%JMETER_HOME%\bin

2. 验证安装
在命令行输入`jmeter v`,显示版本信息表示安装成功。
测试流程
1. 测试计划创建
1. 启动Jmeter,自动创建空测试计划
2. 右键"Test Plan" → Add → Threads(Users) → Thread Group

2. HTTP请求默认值配置
1. 右键"Thread Group" → Add → Config Element → HTTP Request Defaults
2. 配置服务器名称(如:qingmall.example.com)
3. 设置协议:http
4. 端口:80
3. 录制脚本
使用HTTP(S) Test Script Recorder
1. 右键"Test Plan" → Add → Non Test Elements → HTTP(S) Test Script Recorder
2. 设置端口:8888
3. Target Controller选择"Test Plan > Thread Group"
4. 在浏览器中设置代理为localhost:8888
5. 开始录制,操作轻商城网站

4. 添加监听器
1. 右键"Thread Group" → Add → Listener → View Results Tree
2. 添加Summary Report
3. 添加Aggregate Report
4. 添加Response Time Graph
取样器用于模拟用户向服务器发送请求,可以通过线程组添加取样器。最常用的取样器为HTTP请求,下面以HTTP请求为例,讲解取样器的配置。
首先在JMeter中添加一个HTTP请求界面,然后在该界面配置HTTP请求的信息,如下图所示。
下面通过两个小案例演示HTTP请求的配置。第1个案例要求使用JMeter发送一个GET请求,请求地址为http://www.baidu.com/S?wd=test,要求分别使用路径和参数列表这两种方式传递GET请求参数,如下图所示。
下面通过一个案例演示聚合报告的使用,本案例要求使用JMeter发送一个GET请求,请求地址为https://www.itcast.cn,模拟50个用户发送请求,在5秒内全部启动,运行时间为1分钟,查看并分析请求响应时间、吞吐量、错误率等性能指标,如下图所示。
配置好HTTP请求和线程组之后,选中JMeter主界面的“线程组”并右键单击,在弹出的快捷菜单中依次选择“添加”→“监听器”→“聚合报告”,会添加一个聚合报告,添加成功后执行测试。当测试结束后,聚合报告结果如下图所示。
用户定义的变量可以被其作用域范围内的所有元件引用。如果在测试计划中需要使用用户定义的变量,则可以选中JMeter主界面的测试计划并右键单击,在弹出的快捷菜单中依次选择“添加”Ž“配置元件”Ž“用户定义的变量”,会添加一个用户定义的变量界面,如下图所示。
下面通过一个案例演示用户定义的变量的使用,本案例要求使用JMeter发送一个GET请求,请求地址为https://www.baidu.com:443,通过用户定义的变量定义变量protocol(协议)、domain(域名)和port(端口),使用这3个变量实现请求的参数化。
HTTP信息头管理器用于配置HTTP请求头信息,例如请求体的MIME(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展)类型Content-Type、浏览器可接受的响应内容类型Accept等。选中JMeter主界面的测试计划并右键单击,在弹出的快捷菜单中依次选择“添加”Ž“配置元件”Ž“HTTP信息头管理器”,会添加一个HTTP信息头管理器界面,如下图所示。
下面分别添加HTTP信息头管理器和HTTP请求,并进行相关配置,如下图所示
配置完HTTP请求信息后,执行测试计划,添加察看结果树中的请求头数据如下图所示
如果一组请求的服务器名称、端口、请求方式都相同,则可以添加HTTP请求默认值,将请求的服务器名称、端口、请求方式配置在HTTP请求默认值中进行统一管理。如果想要在测试计划中添加HTTP请求默认值,则可以选中JMeter主界面的测试计划并右键单击,在弹出的快捷菜单中依次选择“添加”Ž“配置元件”Ž“HTTP请求默认值”,如下图所示。
使用JMeter进行测试时,如果参数数据较多,可以将参数写入文件中,设置CSV数据文件可以从文件中读取参数。如果想要在测试计划中对CSV数据文件进行设置,则可以选中JMeter主界面的测试计划并右键单击,在弹出的快捷菜单中依次选择“添加”Ž“配置元件”Ž“CSV Data Set Config”,如下图所示
使用JMeter进行测试时,当需要引用大量的测试数据并要求测试数据能够自增且不能重复时,则可以使用计数器来实现。计数器设置界面如下图所示。
5. 关键业务测试(增删改功能)
1. 商品添加功能
|
用例编号 |
测试场景 |
测试数据 |
并发量 |
预期结果 |
|
PT-401 |
单商品添加 |
正常商品数据 |
1用户 |
响应时间<2s,成功添加 |
|
PT-402 |
批量商品添加 |
100条商品数据 |
10用户 |
平均响应时间<4s,成功率100% |
|
PT-403 |
高并发添加 |
随机商品数据 |
50用户 |
平均响应时间<6s,成功率>95% |
|
PT-404 |
异常数据添加 |
非法格式数据 |
5用户 |
正确返回错误提示,无系统崩溃 |
2. 商品修改功能
|
用例编号 |
测试场景 |
测试数据 |
并发量 |
预期结果 |
|
PT-501 |
单商品信息修改 |
价格调整 |
1用户 |
响应时间<1.5s,修改成功 |
|
PT-502 |
批量商品修改 |
多商品库存更新 |
20用户 |
平均响应时间<3s,成功率100% |
|
PT-503 |
并发修改冲突 |
同时修改同一商品 |
10用户 |
数据一致性保持,无脏数据 |
3. 商品删除功能
|
用例编号 |
测试场景 |
测试数据 |
并发量 |
预期结果 |
|
PT-601 |
单商品删除 |
正常商品ID |
1用户 |
响应时间<1s,删除成功 |
|
PT-602 |
批量商品删除 |
多个商品ID |
10用户 |
平均响应时间<2s,成功率100% |
|
PT-603 |
删除不存在商品 |
无效商品ID |
5用户 |
正确返回错误提示 |
|
PT-604 |
删除后验证 |
检查关联数据 |
1用户 |
关联订单数据正确处理 |
商品添加测试
1. 右键"Thread Group" → Add → Sampler → HTTP Request
2. 配置请求:
方法:POST
路径:/product/add
参数:name=测试商品&price=100&stock=50
商品修改测试
1. 添加HTTP Request
2. 配置请求:
方法:POST
路径:/product/update
参数:id=123&name=修改后商品&price=150
商品删除测试
1. 添加HTTP Request
2. 配置请求:
方法:POST
路径:/product/delete
参数:id=123
6. 参数化处理(CSV Data Set Config)
1. 右键"Thread Group" → Add → Config Element → CSV Data Set Config
2. 配置CSV文件路径
3. 设置变量名:productId,productName,productPrice
7. 断言设置
1. 右键HTTP请求 → Add → Assertions → Response Assertion
2. 设置响应包含"操作成功"文本
测试执行与结果分析
1. 执行测试
点击工具栏"Start"按钮运行测试计划
2. 结果分析
Summary Report关键指标
样本数:250
平均响应时间:856ms
最小响应时间:320ms
最大响应时间:2450ms
错误率:1.2%
吞吐量:45.6/sec
![汇总报告]
响应时间图分析
商品添加平均响应时间:920ms
商品修改平均响应时间:780ms
商品删除平均响应时间:870ms
![响应时间图]
错误分析
主要错误:超时和数据库连接失败
错误集中在高并发时段(第8 12秒)
性能瓶颈分析
1. 数据库瓶颈 :当并发用户数超过40时,数据库响应明显变慢
2. 服务器资源 :CPU使用率在测试期间达到90%
3. 网络延迟 :部分请求因网络延迟导致超时
4. 代码优化 :商品添加操作存在性能优化空间
优化建议
1. 增加数据库连接池大小
2. 对频繁访问的商品数据添加缓存
3. 优化SQL查询语句
4. 考虑负载均衡方案
5. 对关键业务接口进行代码优化
四、 个人体会
实验总结
通过本次实验,我掌握了Jmeter的基本使用方法,包括:
1. 测试计划的创建与配置
2. 脚本录制与手动编写HTTP请求
3. 参数化测试数据的设置
4. 断言的使用
5. 测试结果的收集与分析
在轻商城的性能测试中,发现商品管理功能在高并发场景下存在性能瓶颈,特别是商品添加操作响应时间较长。通过分析测试结果,提出了针对性的优化建议,为系统性能提升提供了依据。

浙公网安备 33010602011771号