学习和使用JMeter测试工具

在许多平台各种的测试工具中,我学习并使用了JMeter测试工具。

采用JMeter测试工具对网站做负载测试,使用 JMeter图形结果和聚合图帮助测试系统在资源超负荷情况下的表现,分析网站承载力。我们可以采用JMeter来测试我们项目中的网站承载能力,但由于我们项目目前只做了移动Android端,还没有做出网页web端,所以本次测试报告我随机选取了一个网站来进行JMeter测试。

一、JMeter 介绍

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源的性能,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

二、JMeter 安装

1. 去 http://jmeter.apache.org/下载最新版本的JMeter,解压文件到任意目录

2. 安装JDK,配置环境变量JAVA_HOME.

3. 系统要求:JMeter2.11 需要JDK1.6以上的版本支持运行

4. JMeter可以运行在如下操作系统上:Unix,Windows和Open VMS.

5. 避免在一个有空格的路径安装JMeter,这将导致远程测试出现问题。

JMeter下载完后,进入bin目录运行jmeter.bat启动JMeter (注:打开的时候会有两个窗口,JMeter的命令窗口和JMeter的图形操作界面,不可以关闭命令窗口。若关闭了命令行窗口则全部关闭。)

打开之后默认显示的是英文,如果你想使用中文,那么通过Options->select  language->Chinese即可,当然转为其他语言也是同样操作。

三、JMeter 测试

1、建立测试计划

启动JMeter后,JMeter会自动生成一个空的测试计划,用户可以基于该测试计划建立自己的测试计划。

 

2、创建线程组

JMeter中 每个测试计划至少需要包含一个线程组,一个性能测试请求负载是基于一个线程组完成的。我们在测试计划右键弹出下拉菜单(添加-->线程(用户)--->线程组)中选择线程组即可。

 

线程组主要包含三个参数:线程数、准备时长(Ramp-Up时间(秒))、循环次数。

线程数:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数

准备时长:设置的虚拟用户数需要多长时间全部启动。如果线程数为100 ,准备时长为1 ,那么需要1秒钟启动100个线程。

循环次数:每个线程发送请求的次数。如果线程数为100 ,循环次数为3 ,那么每个线程发送3次请求。总请求数为100*3=300 。如果勾选了“永远”,那么所有线程会一直发送请求,一到选择停止运行脚本

3、添加HTTP请求

添加完成线程组后,在线程组上右键菜单(添加--->取样器--->HTTP请求)选择HTTP请求。

(可使用Badboy来录制脚本,然后直接导出JMeter的jmx文件,在JMeter运行)

 

一个HTTP请求的配置参数主要包括:

1.名称:本属性用于标识一个取样器,建议使用一个有意义的名称

2.注释:对于测试没有任何作用,仅用户记录用户可读的注释信息

3.服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址

4.端口号:目标服务器的端口号,默认值为80

5.协议:向目标服务器发送HTTP请求时的协议,可以是http或者是https ,默认值为http

6.方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等

7.Content encoding :内容的编码方式,默认值为iso8859

8.路径:目标URL路径(不包括服务器地址和端口)

(可以设置一个循环控制器来进行对目标页面进行反复压力测试)

在线程组上右键菜单(添加--->逻辑控制器--->循环控制器)选择循环控制器。

 

4、添加监听器

 

添加察看结果树,右键点击线程组,在弹的菜单(添加--->监听器--->察看结果树)中选择察看结果树。

添加聚合报告,右键点击线程组,在弹的菜单(添加--->监听器--->聚合报告)中选择聚合报告。

添加图形结果,右键点击线程组,在弹的菜单(添加--->监听器--->图形结果)中选择图形结果。

5、运行

点击绿色三角形按钮就是运行

 

下图中的415报错为不支持的媒体类型

 

下图中的429报错为HTTP请求太多

 

 6、查看监听器

(1)聚合报告

Label

样本数

平均

中值

90%line

95%line

99%line

最小值

最大值

异常%

吞吐量

接收KB/sec

发送KB/sec

100线程

2141

849

142

2552

3908

9086

12

21226

22.65%

40.2/sec

117.35

14.72

200线程

4350

845

137

2669

3825

9905

10

22161

22.69%

94.9/sec

278.02

34.73

400线程

11032

818

137

2540

3705

9068

11

23274

22.65%

338.9/sec

986.14

124.06

图表含义说明如下:

Label说明是请求类型,如Http,FTP等请求。

样本数量:也就是图形报表中的样本数目,总共发送到服务器的样本数目。

平均:也就是图形报表中的平均值,是总运行时间除以发送到服务器的请求数。

中值:也就是图形报表中的中间值,是代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。

90%line:是指90%请求的响应时间比。

最小值:是代表时间的数字,是服务器响应的最短时间。

最大值: 是代表时间的数字,是服务器响应的最长时间。

异常%:请求的错误百分比。

吞吐量:也就是图形报表中的吞吐量,这里是服务器每单位时间处理的请求数,注意查看是秒或是分钟。

KB/sec:是每秒钟请求的字节数。

(2)图形结果

图表底部参数的含义如下:

样本数目:总共发送到服务器的请求数。

最新样本:代表时间的数字,是服务器响应最后一个请求的时间。

吞吐量:服务器每分钟处理的请求数。

平均值:总运行时间除以发送到服务器的请求数。

中间值:代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。

偏离:表示服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布

 学习心得体会:

 JMeter是一个很方便小巧的开源测试工具,经过不断的扩展功能,它现在已经可以完成数据库、FTP等多种测试。 JMeter无需安装,它只需要有Java环境即可(即安装有JDK),在bin目录下直接运行 JMete.bat文件就可以打开使用了。我选择了中文页面方便操作,在使用过程中,可以任意添加一些逻辑控制器以及监听器等,方便自己查看测试结果,同时也能帮助分析测试数据,最后还可以导出聚合报告。

 

猜你喜欢

转载自www.cnblogs.com/kiky000/p/10964679.html