前言 本篇对Jmeter压测工具的测试计划元件进行介绍和分析
1、测试计划(Test Plan)
描述一个性能测试,包含本次测试所有相关功能
2、线程用户(Threads(Users))
Thread group(线程组):一个线程组可以看做一个虚拟用户组,线程组中的每一个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。
Setup thread group(setUp线程组):一种特殊类型的线程,可用于执行预测试操作。即执行测试前进行定期测试组的执行。
Teardown thread group(tearDown线程组):一种特殊类型的线程,可用于执行测试后动作。即执行测试结束后执行定期的线程组。
3、取样器(sampler)
取样器(sampler)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter原生支持多种不同的sampler,如 HTTP Request Sampler 、 FTP Request Sampler 、TCP Request Sampler 、 JDBC Request Sampler等,每一种不同类型的sampler可以根据设置的参数向服务器发出不同类型的请求。
在Jmeter的所有Sampler中,Java Request Sampler与BeanShell Requst Sampler是两种特殊的可定制的Sampler.
一个取样器通常进行三部分的工作:向服务器发送请求,记录服务器的响应数据和记录响应时间信息
4、逻辑控制器(Logic Controller)
逻辑控制器,包括两类元件,一类用于控制test plan中sampler节点发送请求的逻辑顺序的控制器,常用的有如果(If)控制器 、 switch Controller 、Runtime Controller、循环控制器等。
另一类是用来组织可控制sampler节点的,如事物控制器、吞吐量控制器。
5、配置元件(Config Element)
配置元件(config element)用于提供对静态数据配置的支持。CSV Data Set config可以将本地数据文件形成数据池(Data Pool)而对应于HTTP Request Sampler和 TCP Request Sampler等类型的配置元件则可以修改Sampler的默认数据。
例如:
HTTP Cookie Manager 可以用于对 HTTP Request Sampler 的 cookie 进行管理。
HTTP 请求默认值不会触发Jmeter发送http请求,而只是定义HTTP请求的默认属性。
6、定时器(Timer)
用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手段,jmeter定义了Constant Times、Constant Throughput Times、Guass Ramdon Times等不同类型的Times
7、前置处理器(Per Processors)
用于在实际请求发出之前对即将发出的请求进行特殊处理。
例如:
Count处理器可以实现自增操作,自增后生成的数据可以被将要发出的请求使用,而HTTP URL Re—Writing Modifier处理器则可以实现URL重写,当URL中有sessionID一类的session信息时,可以通过该处理器填充发出请求实际的sessionID。
8、后置处理器(Post Processors)
用于对Sampler发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似loadrunner中的关联)。
例如:
Regular Expression Extractor用于提取响应数据中匹配某正则表达式的数据段,并将其填充在参数中,Xpath Extractor则可以用于提取响应数据中通过给定Xpath值获得的数据。
9、断言(Assertions)
用于检查测试中得到的响应数据等是否符合预期,Assertions一般用来设置检查点,用以保证性能测试过程中的数据交互与预期一致。
10、监听器(Listener)
对测试结果进行处理和可视化展示的一系列组件,常用的有图形结果、查看结果树、聚合报告等