目录
测试计划
线程组
控制器(取样器/逻辑控制器)
监听器
定时器
断言
配置原件
前置处理器
后置处理器
PS:测试计划与线程组不属于8类元件
测试计划
用来描述Jmeter执行测试的一系列步骤,包含本次测试所有相关的所有内容。测试计划由测试元素组成,例如线程组,逻辑控制器,样本生成控制器,监听器,定时器,断言和配置元素。测试计划中包含的所有内容都按照从上到下的顺序执行,或者按照测试计划中定义的顺序执行。
JMeter测试计划要素
一:脚本中测试计划只能有一个
同一时刻场景固然只能有一个,JMeter脚本在GUI中显示的是树型结构,测试计划是根节点,根节点只能有一个。
二:测试计划中至少要有一个线程组
JMeter负载是通过线程组驱动的,所以计划中至少要出现一个线程组。
三:至少要有一个取样器
测试的目的就是要模拟用户请求,没有取样器脚本就毫无意义。
四:至少要有一个监听器
测试结果用来衡量系统性能,我们需要从结果中分析系统性能。
线程组
一个性能测试请求负载是基于一个线程组完成的,一个测试计划必须有一个线程组。线程组是任何测试计划的起点,所有控制器和sampler必须在某个线程之下。
Setup thread group
一种特殊类型的线程组,普通线程组之前执行。
Teardown thread group
一种特殊类型的线程组,普通线程组之后执行。
Thread group
通常添加使用的线程组,线程组即代表虚拟用户组,一个线程代表一个用户,多个线程之间互不影响。
线程数:虚拟用户数,并发数。一个虚拟用户占用一个线程。设置多少虚拟用户数在这里也就是设置多少个线程数。
Ramp-Up Period(in seconds): 设置的虚拟用户数需要多长时间启动全部线程,单位为秒。如果线程数为20 ,准备时长为10 ,那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。
循环次数:每个线程循环的次数。如果勾选了永远,那么线程会一直循环,至到选择停止运行脚本。
调度器:勾选此选项后,才可修改下面的调度器配置,设置持续运行时间和启动延迟时间,可用来做稳定性测试。
控制器
控制器可分为两大类:
取样器(sampler)和逻辑控制器(Logic Controller)
取样器(sampler)
取样器,请求模拟器,向服务器发送请求。JMeter原生支持多种不同的sampler,每一种不同类型的sampler可以根据设置的参数向服务器发出不同类型的请求。
最常用的就是HTTP请求。
逻辑控制器
逻辑控制器用于控制线程中采样器处理顺序的流程。它还可以更改来自其子元素的请求的顺序。
监听器
对测试结果进行处理和可视化展示的一系列组件,常用的有图形结果、查看结果树、聚合报告等。
定时器
用于操作之间设置等待时间
断言
用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致。
断言的目的:
在请求的返回层面增加一层判断机制;因为请求成功了,并不代表结果一定正确。
使用断言的方法:
1、在选择的取样器下添加对应的断言(因为不同类型的断言检查的内容不同),配置好响应的检查内容(根据断言情况而定,有的断言控制面板不需要添加任何内容,如XML Assertion)。
2、添加一个断言结果的监听器(从监听器中添加),通过断言结果可以看到是否通过断言。对于一次请求,如果通过的话,断言结果中只会打印一行请求的名称。如果失败,则除了请求的名称外,还会有一行失败的原因(不同类型的断言,结果不同)。
3、一个取样器可以添加多个断言,根据你的检查需求来添加相应的断言,当取样器下所有的断言都通过了,那么才算请求成功。
配置元件
用于提供对静态数据配置的支持。
前置处理器
用于在实际请求发出之前对即将发出的请求进行特殊处理。
后置处理器
用于对Sampler发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据。