Jmeter创建一个测试计划

先做一个最简单的例子,将整个流程走一遍,然后再深入的研究流程中的每一个步骤和细节。

 1、安装启动jmeter:

在官网下载Jmeter:http://jmeter.apache.org/download_jmeter.cgi

直接将下载的zip压缩包解压到C:\Program Files目录下,然后使用bin目录下的jmeter.bat来启动

 

2、添加线程组:

在测试计划右键弹出的菜单中选择“添加”-“Threads(Users)”-“线程组”:

线程组主要包含三个重要参数:

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

Ramp-Up Period(in seconds)(启动时长): 设置的虚拟用户数全部启动需要多长时间。如线程数为10 ,准备时长为5,那么需要5秒钟启动10个线程。也就是每秒启动2个线程。

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

 

3、添加HTTP请求

在线程组上右键菜单选择HTTP请求(“添加”-“Sampler”-“HTTP请求”):

取样器(Sampler)是向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter支持多种不同的sampler ,如 HTTP请求、FTP请求、JDBC Request、TCP取样器等,每一种类型sampler可以根据设置的参数向服务器发出不同类型的请求。

HTTP请求配置参数页面:

HTTP请求配置参数详细解释:

名称:用于标识一个取样器,建议使用一个有意义的名称。

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

协议:向目标服务器发送HTTP请求时的协议,可以是http或https。

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

端口号:目标服务器的端口号,默认为80。

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

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

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

自动重定向:如果选中该选项,当发送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)。

 

实战:

添加1个对百度的HTTP请求(GET方法),设置线程组和HTTP请求:

 

4、添加监听器:

 右键点击线程组,选择聚合报告(“添加”-监听器”-“聚合报告”):

 

5、执行测试

点击工具栏上的运行按钮或点击菜单栏“运行”-“启动”),然后定位到聚合报告标签页,在聚合报告中就可以看到测试结果了:

我们重点需要关注的指标

Throughput:吞吐量。类似于LoadRunner中的TPS(Transaction per Second),表示每秒完成的请求数。此次结果为135.1/sec,也就是每秒135.1个请求。

Average:平均响应时间。表示单个 Request 的平均响应时间。此次结果为6(单位是毫秒),也就是0.006秒。

Error%:错误率。测试中出现错误的请求的数量/请求的总数。此次结果为40.00%,也就是成功率60%。

 

聚合指标

Label:请求名称。

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

Average:平均响应时间。表示单个 Request 的平均响应时间。本例结果为49(单位是毫秒),也就是0.049秒。

Median:50% 用户的响应时间。

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

95% Line:95% 用户的响应时间。

99% Line:99% 用户的响应时间。

Min:最小响应时间。

Max:最大响应时间。

Error%:错误率。测试中出现错误的请求的数量/请求的总数。本例结果为0.00%,也就是成功率100%。

Throughput:吞吐量。表示每秒完成的请求数。本例结果为114.2/sec,也就是每秒114.2个请求。

KB/Sec:每秒从服务器端接收到的数据量。