Jmeter逻辑控制器事务控制器使用方法解析
一、基本概念:
Transaction controller:一般是指要做的或所做的事情,在关系数据库一个事务可以是一条SQL语句,一组SQL语句或整个程序、在实际的工作过程中,将完成一个业务的一系列操作称作为事务,我们来举最为典型的用户登录场景为例。
从用户角度:
步骤一:用户打开应用系统的网址,呈现用户登录主页面
步骤二:输入自己的用户名与密码,点击登录按钮;
步骤三: 登录应用系统主页面。
从测试人员角度:
步骤一:用户打开应用系统的网址,呈现用户登录主页面
(客户端向WEB服务器发送一次请求,等待服务器服务客户端的引起求,登录页面HTML的加载,登录页面样式CSS文件的加载,登录页面LOGO标志的加载);
步骤二:输入自己的用户名与密码,点击登录按钮 (向数据库服务器端发送一请求,验证用户名与密码是否在数据库存在,存在就允许登录)
步骤三:登录应用系统主页面 (校验用户资料正确后,登录系统主页面,加载用户的基本信息(用户信息查询SQL)、加载系统配置基本信息(系统基本配置查询SQ))
予客户而言: 我们可以将步骤一、二、三理解为用户登录事务,对于测试人员而言,我们可以将步骤一、二、三里面所有的细节都概概括起来,认为这是一个事务。
二、应用场景:
通常进行性能测试时,我们一般只考虑主要的数据返回,不考虑页面渲染所需要的数据(例如:css、js、图片等)。但当我们需要衡量打开一个页面(页面渲染完成)的性能时,我们就需要考虑完成页面渲染所需要的图片、css、js等资源文件,因为这些数据的传输等也会消耗系统、网络等资源。因而测试页面的性能,尤其是含有大图片、大文件等,就必须要考虑这些资源的性能消耗。比如我们要测试用户登录模块的性能,以前我们只需要考虑用户名与用户密码到数据库进行校验的过程 。而真实情况要考虑CSS,JS全部的,就可以通过事务控制器元件将所有的请求作为一个事务来看待。
三、Jmeter中使用方法
1.选中线程组,右键-添加-事务控制器,将“事务控制器”元素加入到自己的测试工程中
1.添加事务控制器
2.一个事务控制器里面完成事务的所有请求都包括了进来
TIPS: 一个事务控制器中可以包含多个一或是多个业务请求;
一个事务可由多个原子事务组成;
因为一个事务是由多个请求,所以要每个请求都通过才能算是通过;
事务控制器在报表中的输出
tips :使用事务控制器的好处是可以便是可以分步骤的找出性能的瓶颈点在哪里。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
docker环境下分布式运行jmeter的教程详解
1.构建jmeter的基础镜像 dockerfile文件如下: # Use Java 8 slim JRE FROM openjdk:8-jre-slim MAINTAINER QJP # JMeter version ARG JMETER_VERSION=5.1.1 # Install few utilities RUN apt-get clean && \ apt-get update && \ apt-get -qy install \ wget \ telnet \
-
Jmeter结构体系及运行原理顺序解析
一.Jmeter 运行原理: Jmeter 时以线程的方式来运行的(由于Jmeter 是 java 开发的所以是运行在 JVM 虚拟机上的,java 也是支持多线程的) 二.Jmeter 结构体系 1.线程组 性能测试需要模拟大量用户负载的情况,线程组就是用来完成这个任务的,在线程组中我们可以设置运行的线程数(用户数),运行时长,循环次数等 2.逻辑控制器 控制循环次数等 3.配置元件 性能测试过程中为了模拟大量用户操作我们需要做参数化,那么 Jmeter 参数化就可以通过配置元件来完成,另外
-
Jmeter关联实现及参数化使用解析
前言 一.Jmeter介绍 一款融合接口.性能都能完成的测试工具 纯JAVA开发的工具 开源工具 支持多种协议 应该是测试业界目前应用最多的工具之一 二.接口执行实现 添加HTTP取样器:右击测试计划--新建并右击线程组--添加--取样器--新增HTTP请求 在HTTP请求元件中添加相应请求信息(请求行.请求头.请求正文) 添加察看结果树:右击线程组--添加--监听器--新增察看结果树 保存刚设置的接口脚本,点击执行 三.关联实现 3.1 关联的概念 关联也称为串行传参或数据依赖,即上一个接口返
-
Jmeter多种定时器实现方法解析
1.固定定时器(Constant Timer) 用法(场景):更真实的模拟用户场景,需要设置等待时间,或是等待上一个请求的时间才执行,给 sampler 之间的思考时间 备注:如果需要每个步骤均延迟,则将定时器放在与请求持平的位置,若只针对一个请求延迟,则将定时器放在该请求子节点中. (1)每个sampler均延迟启动,(包含第一个 sampler)示例如下 (2)只针对某一个 sampler 请求延迟启动,示例如下 2.高斯随机定时器(Gaussian Random Timer) 下图中固定延
-
Jmeter非GUI模式运行分布式测试
一.简单的命令 -n 在非 GUI 模式下运行JMeter -t 要运行的 JMeter 测试脚本文件 -r 远程执行启动全部代理机 -H 代理机器地址ip如:192.168.1.1 -P 代理机器端口号如:8080,可自定义,默认的是1099 -l 生成记录结果文件 -e 结束运行,生成报告 -o 报告存放地址 -h 帮助 -> 打印出有用的信息并退出 举例: 情况一:在非 GUI 模式下运行JMete并运行tcp.jmx脚本文件 jmeter -n -t D:\apache-jmeter-3
-
Jmeter后置处理器实现过程及方法应用
1.JSON Extractor Json extractor 后置处理器用在返回格式为 Json 的 HTTP 请求中,用来获取返回的 Json 中的某个值.并保存成变量供后面的请求进行调用或断言等. Variable names:保存的变量名,后面使用 ${Variable names} 引用 JSON Path expressions:上一步中调试通过的 json path 表达式 Match Numbers:匹配数字(0代表随机,1代表第一个,-1代表所有) Default Values
-
Jmeter分布式压力测试实现过程详解
一.分布式压测原理 如下图(这个图说明的是要一台控制机,然后由这台控制机发压测脚本到每台远程执行机,然后由控制机收集执行机结果) 二.修改 Jmeter 配置文件 在主控机的jmeter的bin目录找到配置文件jmeter.properties.找到里面的remote_hosts 部分,修改内容为:remote_hosts=xx,xx代表的是压力机的ip:port.如果是多个压力机,之间使用[,]分隔 控制机端口修改,防止端口被占用(注意:控制机修改后,每台执行机的端口也要修改成一致) 电脑防火
-
如何基于Jenkins构建Jmeter项目
1.启动 Jenkins(windows 版本) 2.新建自由风格的项目 定时任务 构建操作 安装 HTML Publisher 插件构建后操作 最后保存构建,查看报告 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.
-
Jmeter逻辑控制器事务控制器使用方法解析
一.基本概念: Transaction controller:一般是指要做的或所做的事情,在关系数据库一个事务可以是一条SQL语句,一组SQL语句或整个程序.在实际的工作过程中,将完成一个业务的一系列操作称作为事务,我们来举最为典型的用户登录场景为例. 从用户角度: 步骤一:用户打开应用系统的网址,呈现用户登录主页面 步骤二:输入自己的用户名与密码,点击登录按钮: 步骤三: 登录应用系统主页面. 从测试人员角度: 步骤一:用户打开应用系统的网址,呈现用户登录主页面 (客户端向WEB服务器发送一次
-
Yii2创建控制器(createController)方法详解
本文实例讲述了Yii2创建控制器(createController)方法.分享给大家供大家参考,具体如下: yii中创建控制器的是在application中的request通过UrlManager解析得出路由信息的,然后再由yii\base\Module中的 public function runAction($route, $params = []) 方法来创建控制器,最后由控制器再执行相应的动作. 首先得明确,Yii中的路由分三种情况: 第一种是带有模块的(module id/control
-
springmvc重定向实现方法解析
这篇文章主要介绍了springmvc重定向实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 (1)一般情况下,控制器方法返回字符串类型的值会被当做逻辑视图名来处理. (2)如果返回的字符串带forward:或redirect:前缀时,springmvc会对它们进行特殊处理.将forward:和redirect:当成指示符,其后的字符串当做url来处理. @RequestMapping("/springmvc") @Contr
-
Jmeter线程组传参原理解析
这篇文章主要介绍了jmeter线程组传参原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 背景介绍: 使用jmeter做登录和搜索接口的测试: 登录接口请求头为:Content-Type: application/x-www-form-urlencoded; charset=UTF-8 搜索接口请求头为:Content-Type: application/json; charset=UTF-8 同时,搜索的请求头中需要用到登录接口返回值中
-
Spring声明式事务注解之@EnableTransactionManagement解析
Spring声明式事务注解之@EnableTransactionManagement 1. 说明 @EnableTransactionManagement声明在主配置类上,表示开启声明式事务,其原理是通过@Import导入TransactionManagementConfigurationSelector组件,然后又通过TransactionManagementConfigurationSelector导入组件AutoProxyRegistrar和ProxyTransactionManageme
-
Spring AOP实现声明式事务机制源码解析
目录 一.声明式全局事务 二.源码 三.小结: 一.声明式全局事务 在Seata示例工程中,能看到@GlobalTransactional,如下方法示例: @GlobalTransactional public boolean purchase(long accountId, long stockId, long quantity) { String xid = RootContext.getXID(); LOGGER.info("New Transaction Begins: " +
-
Laravel5.1数据库连接、创建数据库、创建model及创建控制器的方法
本文实例讲述了Laravel5.1数据库连接.创建数据库.创建model及创建控制器的方法.分享给大家供大家参考,具体如下: 前言:laravel创建数据库,实际可以手动创建,如古老的phpmyadmin 等均可以. 一.数据库连接: 在根目录(laravel5.1下面有个.env文件,如果没有则会有个.env.example然后将此文件修改成.env文件即可) 打开文件: 找到: DB_HOST=127.0.0.1 //连接地址不使用localhost DB_DATABASE=homestea
-
ThinkPHP 3.2.2实现事务操作的方法
本文实例讲述了ThinkPHP 3.2.2实现事务操作的方法.分享给大家供大家参考,具体如下: 手册里说得非常清楚 : 5.3.19 事务支持 ThinkPHP提供了单数据库的事务支持,如果要在应用逻辑中使用事务,可以参考下面的方法: 启动事务: $User->startTrans() 提交事务: $User->commit() 事务回滚: $User->rollback() 事务是针对数据库本身的,所以可以跨模型操作的 . 例如: // 在User模型中启动事务 $User->s
-
Struts2修改上传文件大小限制方法解析
首先struts上传最大大小由两个地方决定. · struts.multipart.maxSize决定整个post的form最大是多大,所以这个限制是最初的.默认大小是接近2M,在struts的default.properties中定义. · fileuploadInterceptor中可以定义maximumSize最大文件大小. 最初定义在struts.xml中定义了没有生效,后来发现在工程中的struts.properties中已经设置过,所以后来被覆盖了,更改struts.proper
-
在 Node.js 中使用原生 ES 模块方法解析
从版本 8.5.0 开始,Node.js 开始支持原生 ES 模块,可以通过命令行选项打开该功能.新功能很大程度上得归功于 Bradley Farias. 1.演示 这个示例的代码目录结构如下: esm-demo/ lib.mjs main.mjs lib.mjs: export function add(x, y) { return x + y; } main.mjs: import {add} from './lib.mjs'; console.log('Result: '+add(2, 3
随机推荐
- Vue计算属性的学习笔记
- 手把手教你搭建ES6的开发运行环境
- .Net 垃圾回收机制详细介绍
- PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
- PHP判断是否有Get参数的方法
- Ajax和PHP正则表达式验证表单及验证码
- Mysql5.7修改root密码教程
- 简单的渐变轮播插件
- Python使用百度API上传文件到百度网盘代码分享
- Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
- Tomcat+Jsp环境下的中文问题
- PowerShell中把IP转换为长整形数字的方法
- 在Python的Flask中使用WTForms表单框架的基础教程
- JQuery拖动表头边框线调整表格列宽效果代码
- 解决webpack -p压缩打包react报语法错误的方法
- javascript实现的多条新闻公告系统
- C#编程调用Cards.dll实现图形化发牌功能示例
- 浅谈C语言的字节对齐 #pragma pack(n)2
- 最常见的猜拳小游戏Android代码实现
- Android string.xml中的替换方法