一.逻辑控制器
1.1事务控制器
事务,其实可以理解为完成一个业务所调用所有接口的集合,当然可以是单个接口,也可以是多个相互关联的串联接口。
所以在进行性能测试时,在用于多接口串联的场景时,需要汇总统计该多个接口串联执行完成时所有的响应时间,也就是一个事务或者场景的响应时间。
事务控制器(Transaction Controller),可以将多接口串联的场景自动的分类显示,更易于分类识别整个场景的响应时间。
1.1.1添加事务控制器
鼠标右键)线程组--->(鼠标右键)添加--->(鼠标悬停)逻辑控制器--->(左键点击)事务控制器。 如下图所示:
1.1.2 参数详解
我们在控制器里面会看到两个勾选框,我们来一起看下这个框有什么作用,后续会介绍他的使用场景,如下图所示:
Generate parent sample :
不勾选:当不勾选的时候,这里就是会和平常执行http请求没啥两样,在我们通过聚合报告查看结果的时候,有多少个http请求上面就有多少个结果,互不干预;
勾选:将逻辑处理器下面的http请求当成一个整体来统计,我们在聚合报告或其他的一些监控功能的时候,看到的就只有一条数据,哪怕你在处理器下添加了100条http请求,在统计的时候也是算一条;
lnclude duration of timer and pre-post processors in generates sample:
不勾选:啥事没有
勾选:问题就来了,当勾选后,我们执行的时候,可能会加一些计时器啊等一些占用时间的插件,但是,这个时间是属于接口的执行时间吗,当然不是,但是,当你勾选后,jmeter就会把这个时间统计成接口执行的时间了,所以,这里如果没有特殊需求的话,还是别选好。
1.1.3实战演练
事务中会包含一个或多个请求,当含有多个请求时,想看一个事务的测试结果(所有请求的总时间和总的吞吐量等),可以通过事务控制器进行操作。
下面通过事务控制器将两个请求合为一个事务进行统计:
再线程组中添加事务控制器,而后把【点击发帖】和【发帖】拖进去
(1)添加事务控制器
(2)拖动事务控制器(根据自己的需要)
(3)将“点击发帖”和“发帖”接口拖到事务控制器下面
(4)不勾选generate parent sample 聚合报告执行结果
(5)勾选generate parent sample 聚合报告执行结果
(6)注意
1.2仅一次控制器
在每个线程内,该控制器下的内容只会执行一遍,无论循环多少次,都只会执行一遍。
1.2.1实战
比如:用户登录,只会登录一次,就可以将登录的请求放置在此控制器中
设置线程组的线程数和循环次数(都设为10)
查看运行结果
每个用户只需要登录一次(让业务逻辑更接近于真实)
1.3吞吐量控制器
1.3.1参数详解
-
Total Executions:按照次数来执行;当小于或者等于0时,则不执行,且勾选Per User对该模式有影响(使用 total execution 模式,不勾选 per user 选项,执行次数=吞吐量值;勾选了 per user,执行次数=user数量(对应线程数) * 吞吐量值)
-
Percent Executions:按照百分比来执行;Per User勾选或不勾选都不会影响该模式(如线程循环次数设置为 5,添加 Percent executions 为 40的吞吐量控制器,其下子节点则循环 2 次)
1.3.2实战
比如:有时发贴只有一条,但是对应的回帖可能会有几十条,此时我们就可以通过吞吐量控制器来控制流量
运行结果