性能测试
性能测试
一、 实验目的
1、正确安装Jmeter;
2、能够完成脚本录制,运行脚本,查看运行结果;
3、完成某网站的性能测试。
二、 实验内容
完成ppt中轻商城的性能测试,给出一套完整的脚本录制、场景设计、场景监视以及其结果分析流程。并选择对轻商城的增删改功能进行性能测试。
实验报告须完整叙述Jmeter使用流程,并描述关键性步骤,需要界面效果截图。
三、 实验步骤及结果
源代码不用写在报告中,源代码上传学习通,在报告中可写:源程序见学习通平台。
JDK的安装:(验证安装结果)

安装JMeter:

安装完成后解压:

找到jmeter.bat文件:
我的电脑路径是:D:\jmeter\apache-jmeter-5.6.3\apache-jmeter-5.6.3\bin
双击后启动:


JMeter解压后的目录:

bin目录用来存储可执行文件和配置文件:

上图中分别是windows系统启动文件、JMeter日志文件、JMeter配置文件、Linux/macos启动文件、Linux/macOS分布式测试启动文件、Windows系统分布式测试启动文件。
JMeter背景更改:
可以在菜单栏单击“Options”“Look and Feel” “Windows”,如右图所示。

更改后程序会重启应用背景更改。
界面汉化:
在菜单栏单击“Options”“ChooseLanguage”“Chinese(Simplified)”,设置汉化界面,这样设置只是临时性的,JMeter重启之后,界面汉化就失效了。
如果想永久汉化界面,需要在jmeter.properties文件中进行配置:
打开jmeter.properties文件,修改language选项(约40行)的值为zh_CN,设置完成之后,取消前面的注释,修改之后的配置如下所示。

修改后:

保存文件后,重启即可看到汉化后的界面:

第一个JMeter测试:
下面将通过JMeter向百度网站发送一个请求,实现JMeter的第一个测试,以演示JMeter的使用。
添加测试计划:

添加线程组:
选中JMeter主界面的“测试计划-第一个测试计划”并右键单击,在弹出的快捷菜单中依次选择“添加”→“线程(用户)”→“线程组”

添加HTTP请求:
选中“线程组”并右键单击,在弹出的快捷菜单中依次选择“添加”→“取样器”→“HTTP请求”
本次只是向百度发送一次请求,只需配置协议、服务器名称或IP即可,配置信息如下图所示。

添加察看结果树:
选中“线程组”并右键单击,在弹出的快捷菜单中依次选择“添加”→“监听器”→“察看结果树”

执行测试:
单击工具栏中的启动按钮,JMeter就会发送请求,并接收百度服务器返回的结果。请求与返回结果的信息可以在察看结果树中查看

启动轻商城虚拟机:
打开VMware Workstation,加载轻商城镜像文件
点击“开启此虚拟机”
登录时点击 “未列出?”,输入:
用户名:root
密码:123456
登录成功后,等待1-2分钟
界面如下:

获得虚拟机ip地址:

测试网络连通性:

配置hosts文件:
找到文件:C:\Windows\System32\drivers\etc\hosts
右键 → 属性 → 去掉 “只读” 的勾选 → 确定
用记事本打开hosts文件
在末尾添加一行:
192.168.88.133 litemall.itheima.net,添加完成后保存

验证轻商城可以访问:

搭建测试环境:
下载ServerAgent:
由于需要监控性能测试过程中的服务器资源使用率,所以需要下载ServerAgent服务器,它既可以监控Windows系统的服务器资源使用率,也可以监控Linux系统的服务器资源使用率。在GitHub官方网站中可以直接下载ServerAgent

下载插件:

当下载成功后得到一个jmeter-plugins-manager-1.7.jar文件,需要将该文件复制到JMeter解压后的lib目录的ext文件夹中。当重新启动JMeter时,单击菜单栏中的“选项”,会发现列表选项增加了一个Plugins Manager,单击该选项会打开JMeter Plugins Manager对话框



构造测试数据:

安装DBeaver,安装完成后的界面:

配置数据库:
在该窗口中填写数据库连接信息,包括服务器地址、数据库和密码,其中端口号和用户名是默认设置。

设置完成后单机测试连接:

然后DBeaver会建立轻商城的数据库连接:

编写测试脚本:
添加HTTP请求默认值:

添加用户定义的变量:

添加HTTP信息头管理器:

添加线程组:

添加登录模块的HTTP请求:

保证线程组每次启动时使用不同的用户名进行登录,可以添加一个计数器。在JMeter主界面选中“线程组-业务流程”并右键单击,在弹出的快捷菜单中依次选择“添加”“配置元件”“计数器”,会添加一个计数器界面,在该界面设置计数器信息。

添加响应断言:
选中登录HTTP请求并右键单击,在弹出的快捷菜单中依次选择“添加”“断言”“响应断言”,会添加一个响应断言界面,在该界面设置响应断言信息。

添加JSON断言:
选中登录HTTP请求并右键单击,在弹出的快捷菜单中依次选择“添加”“断言”“JSON断言”,会添加一个JSON断言界面,在该界面设置JSON断言信息。

JSON提取器:
选中登录HTTP请求并右键单击,在弹出的快捷菜单中依次选择“添加”“后置处理器” “JSON提取器”,会添加一个JSON提取器界面,在该界面设置JSON提取器的信息。

添加首页模块的HTTP请求:
在JMeter主界面选中“线程组-业务流程”并右键单击,在弹出的快捷菜单中依次选择“添加”“取样器”“HTTP请求”,会添加一个HTTP请求界面,在该界面设置首页模块的HTTP请求信息。

在首页模块的HTTP请求中添加响应断言、JSON断言,其具体配置与登录模块中的响应断言、JSON断言一致。
添加搜索商品模块的HTTP请求:

添加查看商品详情模块的HTTP请求:
在JMeter主界面选中“线程组-业务流程”并右键单击,在弹出的快捷菜单中依次选择“添加”“取样器”“HTTP请求”,会添加一个HTTP请求界面,在该界面设置添加查看商品详情模块的HTTP请求信息。

添加购物车模块的HTTP请求:
在JMeter主界面选中“线程组-业务流程”并右键单击,在弹出的快捷菜单中依次选择“添加”“取样器”“HTTP请求”,会添加一个HTTP请求界面,在该界面设置购物车模块的HTTP请求信息。

添加结算模块的HTTP请求:
在JMeter主界面选中“线程组-业务流程”并右键单击,在弹出的快捷菜单中依次选择“添加”“取样器”“HTTP请求”,会添加一个HTTP请求界面,在该界面设置结算模块的HTTP请求信息。

在结算模块的HTTP请求中添加响应断言、JSON断言和HTTP信息头管理器。其中,响应断言、JSON断言的具体配置与登录模块中的响应断言、JSON断言一致,HTTP信息头管理器的具体配置与加入购物车模块中的HTTP信息头管理器一致。

添加下订单模块的HTTP请求:
在JMeter主界面选中“线程组-业务流程”并右键单击,在弹出的快捷菜单中依次选择“添加”“取样器”“HTTP请求”,会添加一个HTTP请求界面,在该界面设置下订单模块的HTTP请求信息。

添加查看订单的HTTP请求:

添加查看结果树:

添加聚合报告:
选中JMeter主界面的测试计划并右键单击,在弹出的快捷菜单中依次选择“添加”“监听器”“聚合报告”,会添加一个聚合报告界面。

启动虚拟机:

启动FinalShell:
在监控服务器的资源使用情况,需要通过FinalShell连接虚拟机,并启动ServerAgent服务器。首先打开FinalShell并单击SSH连接(Linux)建立连接。

当填写完成后,单击“确定”按钮会关闭新建连接窗口,并返回到连接管理器的窗口,双击litemall即可连接虚拟机。
启动ServerAgent服务器:
首先将成功下载的ServerAgent-2.2.3.zip从Windows系统中拖进FinalShell下方的文件中,或者单击右下角的“上传”按钮,也可以将ServerAgent-2.2.3.zip从Windows系统中上传到虚拟机,然后在FinalShell终端依次输入以下命令。
unzip ServerAgent-2.2.3.zip
cd ServerAgent-2.2.3
chmod –R 777 *
./startAgent.sh


添加jp@gc - PerfMon Metrics Collector监听器:
选中JMeter主界面的 “线程组-业务流程”并右键单击,在弹出的快捷菜单中依次选择“添加”“监听器”“ jp@gc - PerfMon Metrics Collector”,当添加成功后,单击“Add Row”按钮配置需要监控的服务器Host/IP和服务器资源,如CPU、Memory和Network I/O。

启动线程组:
在JMeter主界面,单击“启动”按钮,进行性能测试监控,由于在编写脚本时,将线程数的初始值设置为5,持续时间为60秒,所以JMeter将在60秒时自动停止监控。完成性能测试监控后,单击察看结果树可以查看“线程组-业务流程”的响应结果。

聚合报告:

单击“线程组-业务流程”下方添加的jp@gc - PerfMon Metrics Collector即可查看服务器资源使用的曲线变化.

虽然可以从jp@gc - PerfMon Metrics Collector界面观察CPU、Memory和Network I/O在60秒内的曲线变化情况,但是并不能得出准确的数据,所以下面需要导出数据,计算CPU、Memory、Network I/O的平均值,作为性能分析和调优的依据。
在曲线界面的任意位置右键单击,会出现一个列表选项,单击该列表选项中的“Export to CSV…”,会弹出一个Save对话框,在该对话框中设置文件的名称,当选择导出文件的位置后,单击“Save”按钮就可以保存导出的文件并关闭Save对话框。双击导出的CSV文件,即可查看服务器资源使用率。

使用JMeter提供的命令即可自动生成测试报告:
首先进入JMeter解压后的bin目录,打开cmd命令行窗口,然后输入jmeter -n -t "D:\jmeter\apache-jmeter-5.6.3\apache-jmeter-5.6.3\bin\轻商城测试计划.jmx" -l result.jtl -e -o ./report命令,并按下Enter键就可以执行该命令。

当执行完命令后,在bin目录中会自动生成一个report文件夹,该文件夹中的index.html文件即为测试报告,双击index.html文件即可查看性能测试报告。




单击性能测试报告左侧的“Charts”还可以查看更详细的超时统计图表、吞吐量统计图表和响应时间统计图表,例如,在左侧依次单击“Charts”→“Response Times”,可以查看每个模块的响应时间统计图表。

四、个人体会
通过本次实验,我深入学习了JMeter性能测试工具的使用,从安装配置、脚本录制、场景设计,到结果分析和报告生成,完整地体验了性能测试的全流程。以下是我在实验过程中的一些体会和收获:
首先,JMeter的安装与环境配置虽然步骤较多,但按照教程操作并不复杂。JDK的安装与JMeter的汉化、插件管理(如Plugins Manager)让我意识到测试工具的灵活性和可扩展性。尤其是通过配置jmeter.properties实现界面永久汉化,提升了后续操作的便捷性。
其次,在测试脚本的编写过程中,我掌握了如何添加线程组、HTTP请求、断言、监听器等核心组件。特别是响应断言和JSON断言的使用,帮助我有效验证了服务器返回结果的正确性。JSON提取器的应用也让我学会了如何从响应中提取数据供后续请求使用,这对实现业务流程的串联非常关键。
在测试执行与监控方面,我学会了使用ServerAgent和PerfMon插件监控服务器的CPU、内存和网络I/O等资源使用情况。通过导出CSV数据并计算平均值,我能够更准确地评估系统在负载下的表现。此外,使用JMeter命令行生成HTML测试报告的方式非常高效,报告内容直观、图表丰富,便于后续分析和调优。
本次实验也让我认识到性能测试不仅仅是“跑脚本”,更需要理解业务逻辑、设计合理的测试场景,并结合监控数据进行综合分析。虽然实验中遇到了一些问题,如虚拟机网络配置、Hosts文件修改、ServerAgent启动等,但通过查阅资料和反复尝试,最终都得到了解决,这锻炼了我的动手能力和排错能力。
总之,本次实验让我对性能测试有了更系统的理解,掌握了JMeter这一主流工具的实际操作,为今后从事软件测试工作打下了良好的基础。同时,也让我体会到自动化测试和性能分析在软件质量保障中的重要性。

浙公网安备 33010602011771号