元件(多个类似功能组件的容器)
组件:封装的方法,比如取样器中的发送请求的方法
一、常见的元件
1、取样器:发送请求
2、逻辑处理:控制语句执行顺序
3、前置处理器:在请求(取样器)发送之前执行
4、后置处理器:在请求(取样器)发送之后执行
5、断言:对响应结果进行断言,assert
6、定时器:等待一定时间
7、测试片段:封装的一段代码,供脚本调用,不直接执行
8、配置元件:对参数进行赋值(参数化),设置参数
9、监听器:查看脚本运行结果
元件执行顺序
不同元件的执行顺序:线程组-->配置元件--->前置处理器--->定时器--->取样器--->后置处理器--->断言--->监听器
相同元件执行顺序:从上到下依次执行
二、元件作用域
作用域原则:
取样器是JMeter的核心,不作用于其他的组件
逻辑控制器,只对子节点起作用
其他组件,如果父节点是取样器的话,则只对父节点起作用;如果父节点不是取样器的话,则对父节点下所有组件起作用。
三、示例
操作步骤:启动JMeter–>添加线程组–>添加取样器(http请求)–>在http请求下填写相关请求数据–>添加监听器—>执行并查看结果
四、元件之线程组
1、线程组特点
1.1、模拟多用户操作(设置线程数量)
1.2、线程组可以添加多个,多个线程组可并行或串行(在测试计划下勾选 独立运行每个线程组 即可实现串行执行)
1.3、取样器和逻辑控制器必须依赖线程组才能运行
1.4、线程组下可以添加其他元件的组件
2、线程组的分类
2.1、线程组:普通的、常用的线程组,可以看做一个虚拟用户组,线程组中的每一个线程都可以理解为一个虚拟用户
2.2、setUp线程组:一种特殊类型的线程组,可用于执行预测试操作(在所有线程组之前执行)
2.3、tearDown线程组:一种特殊类型的线程组,可用于执行测试后工作(在所有线程组之后执行)
3、线程组的参数(线程数和启动时间)
3.1、线程数:并发用户数
3.2、启动时间(Ramp-up时间):在设置的启动时间内启动所有线程,目的是为了模拟性能测试的场景,使其更接近用户的使用习惯
3.3、循环次数:线程数循环5次
3.4、持续时间:设置持续运行时间(设置持续时间后,循环次数要勾选 永远 )
线程数和循环次数的关系:线程数代表并发用户数,体现服务器的负载量;循环次数代表执行时间
3.5、延迟创建线程直到需要:勾选前(10个线程5秒启动,10个线程所需资源在点击启动时到位);勾选后(10个线程5秒启动,启动一个用户则分配一个资源)
3.6、延迟启动:设置延迟n秒启动,则脚本的请求发送在等待n秒后进行