背景:
事务响应时间是性能测试中衡量业务性能的主要指标。事务,其实可以理解为完成一个业务所调用所有接口的集合,当然可以是单个接口,也可以是多个相互关联的串联接口。比如,登录操作就是调用一个接口,而购买商品,就需要登录+浏览商品+添加购物车+支付等,多个接口的调用。通常进行性能测试时,我们一般仅考虑主要的数据返回,不考虑页面渲染所需要的数据(例如:css、js、图片等)。但当我们需要衡量打开一个页面(页面渲染完成)的性能时,我们就需要考虑完成页面渲染所需要的图片、css、js等资源文件,因为这些数据的传输等也会消耗系统、网络等资源。因而测试页面的性能,尤其是含有大图片、大文件等,就必须要考虑这些资源的性能消耗。所以在进行性能测试时,在用于多接口串联的场景时,需要汇总统计该多个接口串联执行完成时所有的响应时间,也就是一个事务或者场景的响应时间。
事务控制器(Transaction Controller):
事务控制器(Transaction Controller)会生成一个额外的取样器,用于统计测量其作用域内的测试元素(取样器、定时器等)的总体时间,该时间包含事务控制器范围内的所有处理时间,而不仅仅是取样器的处理时间。
事务控制器界面有2个选项按钮
1、Generate Parent Sample:生成样本作为其他样本的父项
2、是否在生成的样本中包括计时器,预处理和后处理延迟。默认值为false
我们一般勾选这2个选项,事务的时间会算上思考时间
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
订单支付增加了定时器延迟3S执行下一条数据
执行结果:事务控制器的时间 = 其他接口的响应时间
4、勾选Include duration of timer and pre-post processors in generated sample
生成订单支付这里加个固定定时器,也就是用户的思考时间,固定定时器的延时不会计入单个sampler的响应时间,但会计入事务控制器的时间。查看聚和报告,总的事务时间是3830毫秒,这里包含了思考时间。
事务控制器的时间 = 其他接口的响应时间 + 定时器 + 前后置处理器的时间
网友评论