Jmeter自动化测试

来源:互联网 发布:淘宝网 情侣装 编辑:程序博客网 时间:2024/05/18 14:25

1 jmeter工具介绍

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


2 jmeter工具安装,使用

进入Apache官方网站下载Jmeter。链接地址:http://jmeter.apache.org/

下载apache-jmeter-2.11.zip,并解压缩文件到本地。

运行文件apache-jmeter-2.11\bin\jmeter.bat 打开Jmeter测试工具。

主界面如下:


(1)定义变量

选中测试计划,右击添加-配置元件-用户定义的变量(下面有添加或者删除变量的按钮)

这里可以添加测试服务器的ip地址${__P(host, 192.168.1.183)和端口号${__P(port,8080)


(2)添加HTTP信息头

选中测试计划-添加-配置原件-HTTP信息头管理器

添加请求类型Content-Type 值为application/json


(3)添加线程组

选中测试计划-添加-Threads(Users)-线程组

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

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

准备时长: 设置的虚拟用户数需要多长时间全部启动。如果线程数为20 ,准备时长为10 ,那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。

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


(4)添加HTTP请求

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

对于jmeter来说,取样器(Sampler)是与服务器进行交互的单元。

一个取样器通常进行三部分的工作:

向服务器发送请求;记录服务器的响应数据;记录相应时间信息


一个HTTP请求有着许多的配置参数,下面将详细介绍:
名称:本属性用于标识一个取样器,建议使用一个有意义的名称。
注释:对于测试没有任何作用,仅用户记录用户可读的注释信息。
服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址。这里取用户定义的变量${host}
端口号:目标服务器的端口号,默认值为80 。这里取用户定义的变量${port}
协议:向目标服务器发送HTTP请求时的协议,可以是http或者是https ,默认值为http 。
方法:发送HTTP请求的方法,可用方法包括GET、POST、HEAD、PUT、OPTIONS、TRACE、DELETE等。
Content encoding :内容的编码方式,默认值为iso8859
路径:目标URL路径(不包括服务器地址和端口)

(5)添加断言

选中某一个HTTP请求-添加-断言-相应断言

如果API接口的返回结果,不符合断言的规定,则执行结果红色高亮显示,提示有错误!


(5)添加执行结果监听器
选中线程组-添加-监听器-查看结果树
选中线程组-添加-监听器-聚合报告


(6)执行测试计划
Ctrl+R 执行测试计划
Ctrl+E 清空执行结果


(7)查看执行结果
查看执行结果树:

"相应数据"窗口可以看到api接口的执行返回数据

可以选择返回结果的排版,这里选择Json格式。



查看聚合报告:

Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值

#Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100

Average:平均响应时间——默认情况下是单个 Request 的平均响应时间,当使用了 Transaction Controller 时,也可以以Transaction 为单位显示平均响应时间

Median:中位数,也就是 50% 用户的响应时间

90% Line:90% 用户的响应时间

Note:关于 50% 和 90% 并发用户数的含义,请参考下文

http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html

Min:最小响应时间

Max:最大响应时间

Error%:本次测试中出现错误的请求的数量/请求的总数

Throughput:吞吐量——默认情况下表示每秒完成的请求数(Request per Second),当使用了 Transaction Controller 时,也可以表示类似 LoadRunner 的 Transaction per Second 数

KB/Sec:每秒从服务器端接收到的数据量,相当于LoadRunner中的Throughput/Sec



0 0