关于Jmeter性能测试工具不再过多介绍。如果你要学习软件性能测试,那么多少应该会对它有所耳闻。
强烈建议阅读官方文档学习:
http://jmeter.apache.org/index.html
还有比这个更权威更全面的介绍Jmeter工具使用的么?
不过,此处要介绍是用它来做接口测试。
一、
安装
Jmeter
Jmeter
官方首页:
http://jmeter.apache.org/
关于
Jmeter
可以做什么,官方上也有非常详细的介绍。另外它的文档也写很详细。如果想学习
Jmeter
,那么它的文档将会是最好的教材。
我相信你可以在官网上找到下载地址并把它下载下来。
Jmeter
由
Java
语言开发,最新的
Jmeter3.0
版本的运行需要有
Java 7
或之后版本的环境。我同样相信你能搞定
Java
环境。
接下来,将下载的
apache-jmeter-3.0.zip
解压,进入解压目录
.../apache-jmeter-3.0/bin
。双击
ApacheJMeter.jar
启动
:
二
、添加
HTTP
接口测试
我们的所以工具都会在
Jmeter
工具中完成,接来就按照一般步骤来创建一个
HTTP
接口测试。
如上图
,右键点击“测试计划”
-->
“添加”
-->
“
Threads(Users)
”
-->
“线程组”。
如上图,
设置线程组,
线程组主要包含三个参数:线程数、准备时长(
Ramp-Up Period(in seconds)
)、循环次数。
线程数
:虚拟用户数。一个虚拟用户占用一个进程或线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
准备时长
:
设置的虚拟用户数全部启动
的时长
。如果线程数为
20
,准备时长为
10
(秒)
,那么需要
10
秒钟启动
20
个线程。也就是
平均
每秒启动
2
个线程。
循环次数
:每个线程发送请求的
个
数。如果线程数为
20
,循环次数为
100
,那么每个线程发送
100
次请求。总请求数为
20*100=2000
。如果勾选了
“
永远
”
,那么所有线程会一直发送请求,
直
到
手动点击工具栏上的停止按钮,或者设置的线程时间结束。
因为这里要做接口测试,所以各个参数为均
1
。
如上图
,右键点击“线程组”
-->
“添加”
-->
“
Sampler
”
-->
“
HTTP
请求”。
名称
:本属性用于标识一个取样器,建议使用一个有意义的名称。
注释
:对于测试没有任何作用,仅用户记录用户可读的注释信息。
服务器名称或
IP
:
HTTP
请求发送的目标服务器名称或
IP
地址。
端口号
:目标服务器的端口号,默认值为
80
。
协议
:向目标服务器发送
HTTP
请求时的协议,可以是
HTTP
或者是
HTTPS
,默认值为
http
。
方法
:发送
HTTP
请求的方法,可用方法包括
GET
、
POST
、
HEAD
、
PUT
、
OPTIONS
、
TRACE
、
DELETE
等。
Content encoding
:内容的编码方式,默认值为
iso8859
路径
:目标
URL
路径(不包括服务器地址和端口)
自动重定向
:如果选中该选项,当发送
HTTP
请求后得到的响应是
302/301
时,
JMeter
自动重定向到新的页面。
Use keep Alive
:
当该选项被选中时,
jmeter
和目标服务器之间使用
Keep-Alive
方式进行
HTTP
通信,默认选中。
Use multipart/from-data for HTTP POST
:当发送
HTTP POST
请求时,使用
Use multipart/from-data
方法发送,默认不选中。
同请求一起发送参数
:
在请求中发送
URL
参数,对于带参数的
URL
,
jmeter
提供了一个简单的对参数化的方法。用户可以将
URL
中所有参数设置在本表中,表中的每一行是一个参数值对(对应
RUL
中的
名称
1=
值
1
)。
如上图
,右键点击“线程组”
-->
“添加”
-->
“监听器”
-->
“察看结果树”。
三、添加新的
POST
请求
POST
请求的添加方式与前面
GET
请求一样。不过
POST
请求需要设置参数。
服务器名称或
IP
:
127.0.0.1
端口号:
8000
方法:
POST
路径:
/polls/question_vote/
同请求一起发送参数:
点击
“添加”按钮
,添加
POST
请求的参数。
四、添加断言
对于自动化测试来说,断言必须要有的,如果没有断言我们只能人眼对比对接口返回的数据,有了断言功能,就会简化这个过程。Jmeter
提供了丰富的断言方法来帮助我们完成这个工作。
如上图
,右键点击
HTTP
请求“添加”
-->
“断言”
-->
“响应断言”。
要测试的响应字段:响应文本、
Document(text)
、
URL
样本、响应信息、
Response Headers
、
Lgnore Staus
等选项。虽然接口返回的是
Json
格式的数据,但对于
Jmeter
来说返回数据为文本,所以,这里可以勾选“响应文本”
模式匹配规则:包括、匹配、
Equals
、
Substring
。这里只需要验证返回数据中是否包含主要的关键字,所以,这里勾选“包括”。
要测试的模式:其实就是断言的数据。点击
“添加”按钮,输入要断言的数据。
运行测试:
再次清除测试数据,点击启动测试,查看结果树,如下图
。
=====================
接口测试就是这么简单!