Jmeter初识

Jmeter基础

基本介绍

1.Jmeter是开源的性能测试工具,更适合做接口的自动化测试

2.纯Java语言编写,可移植性好,解压就能用,比loadrunner轻量

3.支持的协议也越来越多,但报表统计方面确实还是没有loadrunner好用

4.Jmeter 用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。

Jmeter的工作原理:
模拟用户请求,向服务器提交请求;从服务器获取请求返回的结果。

版本获取:
官网地址:http://jmeter.apache.org/download_jmeter.cgi。下载后,直接解压,运行bin/jmeter.bat即可
http://code.google.com/p/jmeter-plugins/downloads/list安装jmeter plugins(第三方插件)

安装

1.在本机安装好JDK,并且安装好,把环境变量配置好

2.官网下载压缩包

3.解压放到相应的文件目录下即可,解压后的目录如下:
Jmeter初识

4.在\apache-jmeter-3.2\bin目录下,会有一个jmeter.bat的文件,双击即可启动jmeter
Jmeter初识

5.建议安装apache jmeter3的版本,比较方便。

目录说明

1、\apache-jmeter-3.2\bin目录下文件说明
Jmeter初识
(1)jmeter.log jmeter启动日志,如运行时候的错误都会记录在里面。
(2)jmeter.properties 主要配置jmeter的属性。

2、docs目录,主要是jmeter相关的东西
Jmeter初识
(1)api文件,jmeter相关的api东西,对应的jmeter相关的开发插件的文档
Jmeter初识
其中,help-doc.html文档是jmeter的官方使用说明文档。

常用的组件和基本概念

4.1 jmeter常用组件

1.测试计划

测试的根目录,所有的测试组建都是基于测试计划执行的
Jmeter初识

2.线程组

用户的操作,用户产生的请求,测试计划–>右击,添加–>线程组
Jmeter初识

3.setup thread group

可用于执行预测试操作,类似于loadrunner中的init

4.teardown thread group

可用于执行测试后动作,类似于loadrunner中的end
Jmeter初识

5.sampler组件

这里就是创建各种请求类型的,用来模拟用户的请求。它是在线程组下面创建的,如果没有创建线程组是看不到的。
Jmeter初识

6.逻辑控制器

类似编程语言里面的if,for,在jmeter里面是一个组件,不需要写,只需要去选择,去配置就可以了。

7.定时器

定时器主要用来设置每个操作之间的等待时间,类似loadrunner中的思考时间。
不同点:
但是loadrunner中的思考时间,需要用到哪个请求就在哪个请求前面设置思考时间就可以了。
jmeter中的定时器,一旦设置了定时器,对所有请求都是生效的。

定时器对应的组件:
Jmeter初识

8.前置处理器

在实际的请求发出之前,对即将发出的请求进行特殊处理,比如:登录操作,对用户名进行参数化。

9.后置处理器

对发出请求后得到的服务器响应进行处理,比如:关联。
关联定义:
下一个请求中的参数需要用到上一个请求响应的内容。(如:请求发送数据之后,会得到响应1 ,响应1 里面的某个参数,在我们请求2中需要用到。)

应用:动态的token值可以使用关联去做。

10.断言

就是loadrunner中的检查点,检测测试中得到的响应数据等是否符合预期。
如:登陆成功,会有一个信息告诉我们是登成功的。
Jmeter初识

11.监听器

对测试结果数据进行处理和可视化展示。如:查看结果树、聚合报告。
Jmeter初识

4.2 Jmeter基本概念

1.参数化
如:实现购买不同的书籍,id不一样,需要对书的id进行参数化。

2.集合点
相当于是一个跑步,在起点有一个发令员,一发令,大家就一起跑出去了。

3.断言
如:在某购物网站,写了一个该网站的登录脚本,现在验证该用户是否登录成功,那么需要用断言来校验返回信息是否成功。

4.关联
有两个请求:请求A,请求B
请求B发送请求的时候需要带一个参数,该参数是请求A响应的数据,这样的场景就是关联。

Jmeter组件作用域和执行顺序

Jmeter是靠左侧的树形结构图来执行的
Jmeter初识

接下来我们一起来看下每个元件以及它们的执行顺序是怎么样的

(1)配置元件
Jmeter初识
会影响其他作用范围内的所有元件,作用域:所有元件。

(2)前置处理程序
再其作用范围内的每一个sampler元件之前执行,作用域:sampler元件之前。
如:
Jmeter初识

(3)定时器
对其作用范围内的每一个sampler有效。

(4)后置处理器
再其作用范围内的每一个sampler元件之后执行。和前置相反。

(5)断言
对其作用范围内的每一个sampler元件执行后的结果执行验证。

(6)监听器
收集其作用范围的每一个sampler元件的信息并展示出来。

sampler元件不和其他元件相互作用,因此不存在作用域的问题。sampler只有执行的顺序。

eg1.
1、http1、2、3,没有作用域的概念
2、循环控制器,http2、3、图形结果
3、图形结果,http2、3
4、聚合报告,http1、2、3
Jmeter初识

eg2.
1、固定定时器,http1
2、循环控制器,http2、3、图形结果、随机控制器
3、图形结果,http2、3
4、响应断言,jdbc
5、聚合报告,所有
Jmeter初识

总结:
从各个元件的层次结构判断每个元件的作用域。

执行顺序:
一般为从上到下的顺序,配置元件–>前置–>定时器–>sampler–>后置–>断言–>监听器

如果在同一作用域范围内有多个同一类型的元件,那么这些元件都是按照他们在测试计划中的上下顺序依次执行的。

Jmeter基础总结

1、需要掌握典型的元件、作用域

2、例子1、2掌握,作用域和执行顺序就很简单了

3、作用域和执行顺序是和我们的树形结构的目录是相关的

以上,为参考学习资料自行整体的文档。