JMeter逻辑控制器之事务控制器(Transaction Controller)
一、背景
事务响应时间是性能测试中衡量业务性能的主要指标。事务,其实可以理解为完成一个业务所调用所有接口的集合,当然可以是单个接口,也可以是多个相互关联的串联接口。比如,登录操作就是调用一个接口,而购买商品,就需要登录+浏览商品+添加购物车+支付等,多个接口的调用。
所以在进行性能测试时,在用于多接口串联的场景时,需要汇总统计该多个接口串联执行完成时所有的响应时间,也就是一个事务或者场景的响应时间。
事务控制器(Transaction Controller),可以将多接口串联的场景自动的分类显示,更易于分类识别整个场景的响应时间。
二、事务控制器(Transaction Controller)
事务控制器(Transaction Controller)会生成一个额外的取样器,用于统计测量其作用域内的测试元素(取样器、定时器等)的总体时间,该时间包含事务控制器范围内的所有处理时间,而不仅仅是取样器的处理时间。
属性定义如下:
属性 | 描述 |
---|---|
Name | 控制器名称,可以根据实际情况进行设置 |
Comments | 注释,描述在业务中的作用 |
Generate Parent Sample | 选中,事务控制器将作为其他取样器的父级取样器进行展示;不选,事务控制器仅作为独立的取样器进行展示 |
Include duration of timer and pre-post processors in generated sample | 是否在生成的取样器中统计包括计时器、预处理以及后置处理的延迟时间。默认是不勾选 |
1、不勾选Generate Parent Sample
执行后,可以发现,不勾选Generate Parent Sample ,所有的取样器(接口、事务控制器)均统计出来。
2、勾选Generate Parent Sample
执行后,可以发现,勾选Generate Parent Sample 后,聚合报告会将事务控制器及其下的取样器执行情况均汇总统计,最终仅以事务控制器作为结果进行汇总统计。
3、勾选Include duration of timer and pre-post processors in generated sample
勾选Include duration of timer and pre-post processors in generated sample后,聚合报告展示对比如下:
勾选Include duration of timer and pre-post processors in generated sample后,发现Constant Timer定时器的时间也被统计,刚好多3秒左右。
三、参考
1、https://blog.csdn.net/px551/article/details/115981567
2、https://time.geekbang.org/column/article/183349?screen=full