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.解压放到相应的文件目录下即可,解压后的目录如下:
4.在\apache-jmeter-3.2\bin目录下,会有一个jmeter.bat的文件,双击即可启动jmeter
5.建议安装apache jmeter3的版本,比较方便。
目录说明
1、\apache-jmeter-3.2\bin目录下文件说明
(1)jmeter.log jmeter启动日志,如运行时候的错误都会记录在里面。
(2)jmeter.properties 主要配置jmeter的属性。
2、docs目录,主要是jmeter相关的东西
(1)api文件,jmeter相关的api东西,对应的jmeter相关的开发插件的文档
其中,help-doc.html文档是jmeter的官方使用说明文档。
常用的组件和基本概念
4.1 jmeter常用组件
1.测试计划
测试的根目录,所有的测试组建都是基于测试计划执行的
2.线程组
用户的操作,用户产生的请求,测试计划–>右击,添加–>线程组
3.setup thread group
可用于执行预测试操作,类似于loadrunner中的init
4.teardown thread group
可用于执行测试后动作,类似于loadrunner中的end
5.sampler组件
这里就是创建各种请求类型的,用来模拟用户的请求。它是在线程组下面创建的,如果没有创建线程组是看不到的。
6.逻辑控制器
类似编程语言里面的if,for,在jmeter里面是一个组件,不需要写,只需要去选择,去配置就可以了。
7.定时器
定时器主要用来设置每个操作之间的等待时间,类似loadrunner中的思考时间。
不同点:
但是loadrunner中的思考时间,需要用到哪个请求就在哪个请求前面设置思考时间就可以了。
jmeter中的定时器,一旦设置了定时器,对所有请求都是生效的。
定时器对应的组件:
8.前置处理器
在实际的请求发出之前,对即将发出的请求进行特殊处理,比如:登录操作,对用户名进行参数化。
9.后置处理器
对发出请求后得到的服务器响应进行处理,比如:关联。
关联定义:
下一个请求中的参数需要用到上一个请求响应的内容。(如:请求发送数据之后,会得到响应1 ,响应1 里面的某个参数,在我们请求2中需要用到。)
应用:动态的token值可以使用关联去做。
10.断言
就是loadrunner中的检查点,检测测试中得到的响应数据等是否符合预期。
如:登陆成功,会有一个信息告诉我们是登成功的。
11.监听器
对测试结果数据进行处理和可视化展示。如:查看结果树、聚合报告。
4.2 Jmeter基本概念
1.参数化
如:实现购买不同的书籍,id不一样,需要对书的id进行参数化。
2.集合点
相当于是一个跑步,在起点有一个发令员,一发令,大家就一起跑出去了。
3.断言
如:在某购物网站,写了一个该网站的登录脚本,现在验证该用户是否登录成功,那么需要用断言来校验返回信息是否成功。
4.关联
有两个请求:请求A,请求B
请求B发送请求的时候需要带一个参数,该参数是请求A响应的数据,这样的场景就是关联。
Jmeter组件作用域和执行顺序
Jmeter是靠左侧的树形结构图来执行的
接下来我们一起来看下每个元件以及它们的执行顺序是怎么样的
(1)配置元件
会影响其他作用范围内的所有元件,作用域:所有元件。
(2)前置处理程序
再其作用范围内的每一个sampler元件之前执行,作用域:sampler元件之前。
如:
(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
eg2.
1、固定定时器,http1
2、循环控制器,http2、3、图形结果、随机控制器
3、图形结果,http2、3
4、响应断言,jdbc
5、聚合报告,所有
总结:
从各个元件的层次结构判断每个元件的作用域。
执行顺序:
一般为从上到下的顺序,配置元件–>前置–>定时器–>sampler–>后置–>断言–>监听器
如果在同一作用域范围内有多个同一类型的元件,那么这些元件都是按照他们在测试计划中的上下顺序依次执行的。
Jmeter基础总结
1、需要掌握典型的元件、作用域
2、例子1、2掌握,作用域和执行顺序就很简单了
3、作用域和执行顺序是和我们的树形结构的目录是相关的
以上,为参考学习资料自行整体的文档。