实验七-性能测试

实验项目名称:实验-性能测试         

一、 实验目的

1、正确安装Jmeter;

2、能够完成脚本录制,运行脚本,查看运行结果;

3、完成某网站的性能测试。

 

二、 实验内容

1、 学习ppt,理解性能测试;

2、 掌握Jmeter使用方法;

3、 对具体网站,能分别使用相应的工具完成脚本录制,运行脚本,查看运行结果。

三、 实验步骤及结果

完成ppt中轻商城的性能测试,给出一套完整的脚本录制、场景设计、场景监视以及其结果分析流程。并选择对轻商城的增删改功能进行性能测试。

实验报告须完整叙述Jmeter使用流程,并描述关键性步骤,需要界面效果截图。

  Jmeter安装与配置

   1. Jmeter安装步骤

1. Apache官网下载Jmeter二进制包(apache jmeter 5.4.1.zip

 

  1. 解压到本地目录(如D:\apache jmeter 5.4.1

 

3. 配置环境变量:

     新增JMETER_HOME=D:\apache jmeter 5.4.1

     Path中添加%JMETER_HOME%\bin

![Jmeter安装目录](截图路径/jmeter_install.png)

   2. 验证安装

在命令行输入`jmeter  v`,显示版本信息表示安装成功。

测试流程

   1. 测试计划创建

1. 启动Jmeter,自动创建空测试计划

2. 右键"Test Plan" Add Threads(Users) Thread Group

 

![线程组配置](截图路径/thread_group.png)

   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. 开始录制,操作轻商城网站

 

![录制控制器](截图路径/recorder.png)

 

   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请求头信息,例如请求体的MIMEMultipurpose 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. 测试结果的收集与分析

在轻商城的性能测试中,发现商品管理功能在高并发场景下存在性能瓶颈,特别是商品添加操作响应时间较长。通过分析测试结果,提出了针对性的优化建议,为系统性能提升提供了依据。

 

posted @ 2025-06-10 21:42  痛苦代码源  阅读(25)  评论(0)    收藏  举报