【转】Jmeter逻辑控制器-事务控制器的使用
转自
https://www.jianshu.com/p/1f013f2414f9
一、基本概念:
Transaction controller:一般是指要做的或所做的事情,在关系数据库一个事务可以是一条SQL语句,一组SQL语句或整个程序、在实际的工作过程中,将完成一个业务的一系列操作称作为事务,我们来举最为典型的用户登录场景为例。
从用户角度:
步骤一:用户打开应用系统的网址,呈现用户登录主页面
步骤二:输入自己的用户名与密码,点击登录按钮;
步骤三: 登录应用系统主页面。
从测试人员角度:
步骤一:用户打开应用系统的网址,呈现用户登录主页面
(客户端向WEB服务器发送一次请求,等待服务器服务客户端的引起求,登录页面HTML的加载,登录页面样式CSS文件的加载,登录页面LOGO标志的加载);
步骤二:输入自己的用户名与密码,点击登录按钮 (向数据库服务器端发送一请求,验证用户名与密码是否在数据库存在,存在就允许登录)
步骤三:登录应用系统主页面 (校验用户资料正确后,登录系统主页面,加载用户的基本信息(用户信息查询SQL)、加载系统配置基本信息(系统基本配置查询SQ))
予客户而言: 我们可以将步骤一、二、三理解为用户登录事务,对于测试人员而言,我们可以将步骤一、二、三里面所有的细节都概概括起来,认为这是一个事务。
二、应用场景:
通常进行性能测试时,我们一般只考虑主要的数据返回,不考虑页面渲染所需要的数据(例如:css、js、图片等)。但当我们需要衡量打开一个页面(页面渲染完成)的性能时,我们就需要考虑完成页面渲染所需要的图片、css、js等资源文件,因为这些数据的传输等也会消耗系统、网络等资源。因而测试页面的性能,尤其是含有大图片、大文件等,就必须要考虑这些资源的性能消耗。比如我们要测试用户登录模块的性能,以前我们只需要考虑用户名与用户密码到数据库进行校验的过程 。而真实情况要考虑CSS,JS全部的,就可以通过事务控制器元件将所有的请求作为一个事务来看待。
三、Jmeter中使用方法
1.选中线程组,右键-添加-事务控制器,将“事务控制器”元素加入到自己的测试工程中
![](https://upload-images.jianshu.io/upload_images/3094893-1e5768339194c21a.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
1.添加事务控制器
![](https://upload-images.jianshu.io/upload_images/3094893-d66e197838c98678.png?imageMogr2/auto-orient/strip|imageView2/2/w/1180/format/webp)
2.一个事务控制器里面完成事务的所有请求都包括了进来
TIPS: 一个事务控制器中可以包含多个一或是多个业务请求;
一个事务可由多个原子事务组成;
因为一个事务是由多个请求,所以要每个请求都通过才能算是通过;
![](https://upload-images.jianshu.io/upload_images/3094893-81b2baf32b8c4bf1.png?imageMogr2/auto-orient/strip|imageView2/2/w/1200/format/webp)
事务控制器在报表中的输出
tips :使用事务控制器的好处是可以便是可以分步骤的找出性能的瓶颈点在哪里。
![](https://upload-images.jianshu.io/upload_images/3094893-5f1e7e564156e5e2.png?imageMogr2/auto-orient/strip|imageView2/2/w/1039/format/webp)
性能测试结果展现