JMeter:事务的定义及事务控制器

1、事务的定义

在做性能测试的时候,有些操作或请求是逻辑上依赖相关的一个整体,不可分割;或者是为了方便度量我们关注的一组操作或请求的性能,将要将其看做一个整体。

基于这些原因,我们把这些操作或请求放在一个事务控制器下。

事务控制类似于简单控制器,不仅提供了元素分组的功能;除此之外,还可以度量其包含的所有测试元素执行的响应时间。

只有当事务控制器所有的取样器都成功时,事务控制器才成功。

2、事务控制器

使用事务控制器的典型场合:

1.当要度量生成某个页面的整体性能时,不仅考虑页面请求本身,还需要考虑完成页面渲染所需要的image、CSS、js等资源,因为请求这些数据也会消耗系统,网络等资源。

故需要页面请求与资源请求看做一个整体,放在一个事务控制器下;

2.在做API或接口性能测试时,接口之间存在逻辑依赖关系,后一个接口会引用前面接口返回的结果,故需要将这些接口看成一个整体,放在一个事务控制器下,度量性能才能接近真实场景;

3.在前面的请求服务器返回了token,后面的请求需要使用token,这些请求有逻辑上的依赖关系,需要看成一个整体,放在一个事务控制器下。

▲ 配置项

● Generate parent sample:

若勾选此项,在聚合报告等监听器中只显示事务控制器本身的数据,不会显示其下的每一个取样器请求的数据;反之,则会显示事务控制器和其下的所有取样器的数据。

事务控制器有两种模式的操作:

1.事务控制器额外生成的取样器添加在其下所有的取样器后面;

2.事务控制器额外生成的取样器作为其下所有的取样器的父取样器。称之为父模式。

不选(默认)是以模式1操作;勾选则以模式2操作。

若以父模式操作,断言等可以被添加到事务控制器下,默认情况下会作用于事务控制器下的每一个单独的取样器以及整个事务取样器。为了限制断言的范围,可以考虑将多个取样器和断言同时放在同一个简单控制器下。

● Include duration of timer and pre-post processors in generated sample:

事务控制器生成一个额外的取样器,用于测量执行嵌套测试元素所花费的总时间。默认不包含内嵌其中的定时器与前/后置处理耗费的时间。若勾选此项,则包含事务控制器下所有元素的处理时间。

3、应用案例

▲ 登录步骤

这里以ECshop前台系统登录为例。

s1.直接访问ECshop前台系统登录页面;

s2.在登录页面输入用户名及密码,点击登录;

s3.跳转到网站首页。

可以将步骤s1、s2、s3对应的操作看做一个事务。

▲ 运行结果

具体操作较简单,不再细讲。

1.先以非父模式运行,查看结果树与聚合报告如下:

2.以父模式运行,查看结果树与聚合报告如下:

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 事务控制器有什么作用呢?主要体现在,想实现一个功能,但需要多个接口,这个接口需要上一个接口的数据做参数,我们看数据...
    公子小白123阅读 283评论 0 0
  • 事务控制器有什么作用呢?主要体现在,想实现一个功能,但需要多个接口,这个接口需要上一个接口的数据做参数,我们看数据...
    TestingShare阅读 13,879评论 0 0
  • 事务控制器有什么作用呢?主要体现在,想实现一个功能,但需要多个接口,这个接口需要上一个接口的数据做参数,我们看数据...
    公子小白123阅读 144评论 0 0
  • 当单看主要数据和页面数据性能测试结果还是有比较大的差异的,因而在进行页面性能测试的时候,事务控制器是必不可少的利器...
    冲锋丘丘人阅读 1,875评论 0 0
  • 一、临界区控制器(critical section Controller) 作用:临界区控制器确保其子节点下的取样...
    菜鸟平阅读 1,600评论 0 0