前言
Jmeter有很多的元件,它本身就带有很多元件,安装插件后又是一堆元件,所以没必要每一个元件都去弄的明明白白的,用了jmeter一段时间了,其实只要掌握一些比较常用重要的元件就足够在工作是上使用了。
jmeter简介
Jmeter是啥呢?我们来看看百度百科的介绍吧!
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。
Jmeter是基于java环境的,所以使用jmeter必须先安装java环境。
jmeter一般都是测试人员用来做接口测试、性能测试、压力测试、自动化测试
测试人员都知道比较有名的就是jmeter和loadrunner了,不过jmeter相对与loadrunner来说是小巧的太多了,而且是免安装的。loadrunner付费,且安装过程,使用过程很多坑要踩,能把你整崩溃
jmeter使用流程
jmeter的使用就需要各个元件的相互配合了,主要的流程就是:
1、添加测试计划
2、添加线程组
3、在线程组里添加各种元件,如http请求、同步定时器、用户变量等
4、使用监听器添加聚合报告、查看结果树、以表格查看结果(可以看到请求的发送时间)
需要掌握的元件
我们从上往下看那些是需要重点掌握的元件,我这边用的是jmeter5.3的截图,不同版本可能元件顺序会有所不同。
取样器
http请求:进行http请求的元件
jdbc request:请求数据库的请求元件
debug sampler:jmeter的调试工具
逻辑控制器
if控制器:学过一点编程的都知道if是啥东西啦,就是根据给定表达式的值决定是否执行该节点下的子节点
循环控制器:循环,循环,就是可以在此控制器上指定其子节点运行的次数
foreach控制器 :ForEach控制器一般和用户自定义变量一起使用,其在用户自定义变量中读取一系列相关的变量。该控制器下的采样器或控制器都会被执行一次或多次,每次读取不同的变量值。
仅一次控制器:仅一次这个控制器在测试计划执行期间,该控制器下的子结点对每个线程只执行一次,所以登录场景用的会比较多
前置处理器
用户参数:这个元件就是自己去配置自定义变量的元件,当然这个元件都需要手动输入,所以适用于参数取值范围很小的时候使用。
后置处理器
正则表达式提取器:这个就厉害了,能从你的返回结果去提取数据,例如获取登录返回的token,将获取到的token以参数化的形式放在下一个请求的请求头上。避免了token过期的现象发生。
Xpath提取器:xpath提取器可以允许用户使用XPath查询语言从结构化响应-XML或(X)HTML中提取值
断言
响应断言:对服务器的响应接口进行断言校验,来判断接口测试得到的接口返回值是否正确。这个是很有必要的,因为实际使用过程中,有时候响应状态码为500jmeter也不会报错。加上断言可以清楚的知道请求是否准确且成功
定时器
固定定时器:固定定时器就是两个请求之间固定要停顿几秒,类似于loadrunner下的think_time。
Synchronizing Timer:同步定时器这个就相当于loadrunner里面的集合点了,高并发的时候使用,你开线程肯定线程一开它就跑了,设置了这个,例如设置成1000,那么线程就必须等到1000个起来之后在一起去请求。大家可以弄一个以表格查看结果观察下设置和没设置的区别。
配置元件
CSV data setconfig:这种参数化方式适用于参数取值范围较大的时候使用,该方法具有更大的灵活性。
HTTP请求默认值:这个常在多个相同端口的http下使用,将http请求相同的地方写在http请求默认值下,不用重复填写相同的数据
HTTP信息头管理器:这个也比较重要了,有些请求默认的content-type是application/json的,如果不设置是请求不到数据的,还有token也是放在信息头管理器下面
监听器
查看结果树:最常用的监听器元件了,在这可以看到请求发送和返回的信息。用于脚本的调试,调试成功后如果要进行高并发建议将此元件禁用了,不然会耗费很多的内存。最好是用非GUI模式进行压力测试,这样的测试数据会比较稳定。波动不会太大
·聚合报告:聚合报告会展示出运行后的请求数,平均值,最大值,最小值,错误率等数据,可以清晰直观的看到测试结果数据。
结语
使用jmeter掌握以上组件就能满足测试的98%的场景了。每个场景都是元件之间的不同组合,元件用的多了,日积月累自然而然的就知道该怎么样去搭配这些元件。一路走来,学的东西还是有很多,不说了,去学习咯!