三、Jmeter常用组件介绍
1、测试计划
用例描述一个性能测试,包含与本次性能测试相关的功能,也就是说本次性能测试的所有内容都是基于一个计划的。
2、线程组和测试片段
2.1线程组
2.1.1.setup thread group
一种特殊类型的ThreadGroup,可用于执行预测试操作。这些线程的行为完成像一个正常的线程组原件。不同的是,这些类型的线程执行测试前进行定期线程组的执行。类似于init
2.1.2.teardown thread group
一种特殊类型的ThreadGroup,可用于执行测试后操作。这些线程的行为完成像一个正常的线程组原件。不同的是,这些类型的线程执行测试结束后进行定期线程组的执行。
2.1.3.thread group(线程组)
这个才是我们通常添加运行的线程。可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数据再测试执行过程中是不会改变的。
2.2.测试片段(Test Fragment)
-
测试片段是一个辅助的组件,在此节点下几乎可以放置任何 Jmeter 测试元件,但它一般不会被运行。
-
测试片段的作用:
(1) 在脚本开发过程中可以用来备份元件。
(2) 测试片段下的元件可以被模块控制器调用,我们可以利用它来模块化请求供模块控制器调用。
2.3.非测试元件
a.HTTP代理服务器:可以用于录制脚本
b.HTTP镜像服务:适用于调试接口测试时,不想真正发送http请求到服务器
3.Jmeter八大可执行元件
3.1.配置元件(Config Element)
配置元件(config element)用于提供对静态数据配置的支持。如CSV Data Set config 可以将本地数据文件形成数据池(Data Pool)。
3.2.定时器(Timer)
定时器(Timer)用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手端。类似于LoadRunner里面的“思考时间”。JMeter 定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等不同类型的Timer。
3.3.前置处理器(Per Processors)
用于在实际的请求发出之前对即将发出的请求进行特殊处理。例如,HTTP URL重写修复符则可以实现URL重写,当URL中有sessionID 一类的session信息时,可以通过该处理器填充发出请求的实际的sessionID 。
3.4.后置处理器(Post Processors)
用于对Sampler 发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似LoadRunner测试工具中的关联概念)。
3.5.断言(Assertions)
断言用于检查测试中得到的相应数据等是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致。
3.6.监听器(Listener)
是用来对测试结果数据进行处理和可视化展示的一系列元件。 图行结果、查看结果树、聚合报告。都是我们经常用到的元件。注意:这个监听器可不是用来监听系统资源的元件。
JMeter有两种类型的控制器:取样器(sample)和逻辑控制器(Logic Controller),用这些原件来驱动处理一个测试。
3.7.取样器(sample)
取样器(Sample)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的sampler ,如 HTTP Request Sampler 、 FTP Request Sample 、TCP Request Sample 、JDBC Request Sampler 等,每一种不同类型的 sampler 可以根据设置的参数向服务器发出不同类型的请求。
3.8.逻辑控制器
逻辑控制器,包括两类无件,一类是用于控制test plan 中 sampler 节点发送请求的逻辑顺序的控制器,常用的有 如果(If)控制器 、switch Controller 、Runtime Controller、循环控制器等。另一类是用来组织可控制 sampler 来节点的,如 事务控制器、吞吐量控制器。