【不可被执行元件:测试片段(Test Fragment)】
测试片段元素是控制器上的一种特殊的线程组,它在测试树上与线程组处于一个层级。它与线程组有所不同,因为它不被执行,除非它是一个模块控制器或者是被控制器所引用时才会被执行。
【可执行元件】
配置元件(config element):用于提供对静态数据配置的支持。如CSV Data Set config可以将本地数据文件行程数据池(Data pool).
定时器(Timer):用于操作之间设置等待时间,等待时间是性能测试中常用的控制客户端QPS的手端。类似于LoadRunner里面的“思考时间”。JMeter定义了Bean Shell Timer、Constant Throughput Timer、固定定时器等不同类型的Timer。
前置处理器(Per Processors):用于在实际的请求发出之前对即将发出的请求进行特殊处理。例如,HTTP URL重写修复符则可以实现URL重写,当URL中的sessionID一类的session信息时,可以通过该处理器填充发出请求的实际的sessionID。
后置处理器(Post Processors):用于对Sampler发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似LR测试工具中的关联概念)。
断言(assertions):断言用于检查测试中得到的响应数据等是否符合预期,断言一般用来设置检查点,用以保证性能测试过程中的数据交互是否与预期一致。
监听器(Listener):是用来对测试结果数据进行处理和可视化展现的一系列元件。图形结果、监看结果树、聚合报告。都是我们经常用到的元件。注意:这个监听器可不是用来监听系统资源的元件。
JMeter有两种类型的控制器:取样器(sample)和逻辑控制器(Logic Controller),用这些元件来驱动处理一个测试。
取样器(sample):(也是可执行元件)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMter原声支持多种不同的sampler、TCP Request Sample、JDBC Request Sample等,每一种不同类型的sampler可以根据设置的参数想服务器发出不同类型的请求。相当于loadrunner里面来选择不同的协议。
逻辑控制器
逻辑控制器包括两类元件,一类是用于控制test plan中sampler节点发送请求请求的逻辑顺序的控制器,常用的有 如果(If)控制器、switch Controller、Runtime Controller、循环控制器等。另一类是用来组织可控制sampler节点的,如事务控制器、吞吐量控制器。