在web项目中,需要对网站并发以及页面响应时间等性能进行测试,人为观察肯定不行,这时就需要使用压力测试工具,Jmeter是一款基于Java的压力测试工具,简单强大。下面主要记录自己项目中使用Jmeter进行测试的过程。

1. 安装Jmeter

安装Jmeter之前需要先配置好Java环境,Jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi
我这里选用的是4.0版本,直接下载zip包解压就好,然后运行其bin目录下的jmeter.bat文件:

运行后界面如下:

可以通过【Options】->【Choose Language】变更为简体中文

2. 创建测试

(1) 测试计划文件

jmeter以测试计划为单位,相当于我们的一个工程,可以向其中添加一些测试组件。我们可以对其进行重命名并保存在指定目录,可以看到是一个后缀名为.jmx的文件,这也是后序执行测试需要运行的文件。这里将其保存到myTest目录.

(2) 创建线程组

jmeter以线程组为单位进行测试,如果测试计划为一个项目的话,那么线程组相当于模块,我们可以通过右键测试计划向其中添加多个线程组。

这里设置线程组的线程数为50,即模拟50个用户并发访问,循环2次。

(3) Http请求设置

接下来我们需要向要测试的线程组中添加Http请求的相关信息。
1. HTTP请求默认信息
首先在右键线程组在配置元件中为其添加HTTP请求默认信息:


填入我们的服务器名称或项目部署的主机IP地址,端口号Tomcat为8080,后面构造的http请求都会采用此默认值。

2.构造HTTP请求
同样右键线程组在Sampler中添加我们要测试的http请求:

这里我访问的是项目中的一个servlet接口,前端对应的是一个ajax请求,在Body Data中传入请求参数。

3.添加HTTP请求
同样在线程组上右键【配置元件】–>【HTTP信息头管理器】

由于需要传输json参数,所以添加Content-Type:application/json请求头。
4.添加断言
根据响应返回的代码判定请求是否正常,右键线程组【断言】–>【响应断言】

5.添加监听器
右键线程组添加【监听器】–>【察看结果树】

点击运行可以看到其请求结果。
同样也可为其添加Summary Report和聚合报告等监听器来查看结果信息。

3. 执行测试计划

创建好测试计划后并保存,然后就可以执行测试计划,执行测试计划最好在命令行窗口下执行,因为GUI窗口可能会占有一定资源,相应执行的命令为:
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]

jmx file为我们创建的测试文件,results file为测试结果文件路径,Path to web report folder为web报告保存路径。
将上述几个文件替换我们的文件路径,执行命令如下:
jmeter -n -t myTest/myTest.jmx -l myTest/result/result.txt -e -o myTest/webreport
在jmeter的bin目录中运行上述命令:

最终可以看到相应目录下生成的结果和web报告

4. 查看web报告

打开webreport下的index.html文件,即可查看web包括,其蕴含了详细的执行结果信息,如平均响应时间,最大最小时间等。

响应时间的变化曲线:

我们可以根据结果判断页面性能是否满足要求,不满足则进行相应的优化(Tomcat调优)

参考:

  1. https://www.cnblogs.com/stulzq/p/8971531.html
  2. https://blog.csdn.net/lykio_881210/article/details/81078388
  3. https://blog.csdn.net/huiyunfei/article/details/79165120