JMeter基础系列--组件介绍

Jmeter作为一款开源的轻量级应用,常被用于性能、接口、自动化等测试中。
它具有安装方便、功能强大、界面操作简单、测试结果可视化、测试脚本无需编程、高扩展等优点,是测试童鞋工作中的常用工具。
本文将梳理Jmeter的原理和结构体系,介绍Jmeter八大元件及其用法。通过理论知识和实际应用举例相结合,带领新手快速入门Jmeter。
1 Jmeter原理
Jmeter不仅可以作为性能测试工具,还可以作为接口测试工具。作为不同类型的工具,Jmeter的原理也有所不同,具体如下:
1.1 作为性能测试工具
Jmeter通过线程组驱动多个线程的方式运行,来模拟真实用户对Web服务器的访问压力。实现过程如下图所示:

Jmeter作为Web服务器和浏览器之间的代理网关,能够录制浏览器的请求、响应Web服务器和生成测试脚本。在测试脚本的基础上,Jmeter通过线程组模拟真实用户的访问。
1.2 作为接口测试工具
Jmeter向服务器提交请求,从服务器取回请求返回的响应结果,实现过程如下图所示:

作为发起请求的客户端,Jmeter是组装请求报文结构的容器,例如:请求行、请求头、请求数据等,并可将响应结果进行可视化展示。
对于接口的复杂逻辑,Jmeter有丰富的元件进行支持,如前/后置处理、响应断言、也可以自行开发插件。
组装请求报文要求对各种协议有一定的了解,例如HTTP(S)、TCP、SOAP、DUBBO等常见协议。
2 Jmeter结构体系与元件
2.1 Jmeter结构体系
把Jmeter的结构体系拆分为三维空间,无论是性能测试还是接口测试,都会按图中的体系结构运行,部分细节有所不同,结构图如下:

各个步骤的具体含义如下:
X1~X5:是模拟负载的一个过程,使用这些组件来完成负载的模拟;
X1:根据协议,通过“采样器”模拟用户请求(如采样器:HTTP请求),“断言”检查服务器响应是否正确,随后“监听器”收集结果信息;
X2:“前置处理器”、“配置元件”和“后置处理器”会完善测试脚本部分,包括参数化、关联等,都是为取样器提供数据支持;
X3:“控制器”控制测试脚本业务逻辑,多种控制器组合可灵活控制执行顺序;
X4:性能测试中常用“定时器”制作集合点,模拟用户并发;
X5:一个“线程组”代表一个用户;性能测试中要模拟负载场景,某些情况下要测试同时提交时是否会出现数据丢失的问题,也需要多个线程同时运行;
Y1:此部分负责模拟用户请求;
Y2:可以理解为检查点,负责验证结果正确性;
Z:负责结果的收集,“监听器”不仅可以放在线程组之内,而且还可以放在线程组之外。
2.2 Jmeter八大元件说明

八大元件名称
1、取样器:模拟用户的请求操作,如HTTP请求、WebService请求、Java请求等,添加路径为:【测试计划】→【线程组】→【取样器】。

2、断言:验证结果的正确性,如响应断言,添加路径为:【测试计划】→【断言】。
3、监听器:收集测试结果信息,如查看结果树、聚合报告,添加路径为:【测试计划】→【监听器】。
4、前置处理器:为请求发送前的环境及参数做准备,添加路径为:【测试计划】→【前置处理器】。
5、配置元件:为取样器提供预备数据。由取样器发出请求,如CSV(文件中读取测试数据)、函数助手(提供了众多的函数动态生成数据)、HTTP请求默认值(为影响范围内的元件提供默认值)。
另外,配置元件可以影响其范围内的所有元件,添加路径为:【测试计划】→【配置元件】。
6、后置处理器:处理服务器的返回结果,比较常用的是正则表达
JMeter基础系列--组件介绍
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



