【性能测试】LR录制回放事务检查点

news2025/2/24 18:15:37

前言

上一次推文我们分享了性能测试分类和应用领域,今天带大家学习性能测试工作原理、事务、检查点!后续文章都会系统分享干货,带大家从0到1学会性能测试,另外还有教程等同步资料,文末免费获取~

01、LR工作原理

​通常我们认为LoadRunner是由三部分组成:VuGen、Controller、Analysis

VuGen:录制与增强脚本的地方,即将我们的操作行为变成代码;

Controller:模拟多用户执行脚本,相当于模拟多用户口对服务器进行操作;

Analysis:将运行时的结果保存到EXCEL表中,然后再将数据读取出来,并以视图的方式来显示;

也人会说LoadRunner工作是由4部分组成;

02、录制与回放原理

LoadRunner在录制过程中其实是将所有客户端向服务器发送的请求变成了函数,由函数来代替人向服务器发送请求。

之所以需要在录制时选择协议,是因为LoadRunner一定要能看的懂客户端向服务器所发送的数据内容,如果LoadRunner看不懂客户端向服务器发送的数据,那么LoadRunner就无法生成代码。

而生成的代码所看的内容,其实与抓包所看到的内容是一样的。

所以我们通常说性能测试是基于协议录制,自动化测试是基于对象属性录制。

LoadRunner录制的方式有两种:一是基于HTML录制;二是基于URL录制

HTML模式:基于用户行为录制;

URL录制:将所有的HTTP请求都录制下来; 

03、事务

  • 为什么需要插入事务

正常我们录制好的脚本是不能获取业务的响应时间的,所谓的业务响应简单的来说就是我们一串操作步骤的响应时间。

为了获取这个响应时间我们会在操作前插入开始,操作结束后插入结束事务,通过可以获取业务的响应时间。

  • 如何插入事务

插入事务的方法有两种:

一是:录制过程中插入事务;

二是:录制后插入事务;

一般建议在录制过程中插入事务,因为录制后插入事务,如果对代码不是很熟悉的话,那么很容易把位置插入错了,这样会导到得到的响应时间不对。

插入事务后会生成以下代码:

//开始事务
lr_start_transaction("LOGIN");
.....
//结束事务
lr_end_transaction("LOGIN", LR_AUTO);
当运行开始事务时,loadrunner会计时,运行到结束事务时loadrunner也会计时
将结束事务时的计时减去开始事务的计时,所得到的时间差即为事务的响应时间。
其实就是计算开始事务到结束事务这段请求所消耗的时间
  • 事务的结束状态

事务的结束状态有四种:LR_AUTO、LR_PASS、LR_FAIL、LR_STOP

LR_AUTO:LoadRunner自动判断事务的结束状态

LR_PASS:运行结果为通过状态

LR_FAIL:运行结果为失败状态

LR_STOP:运行结果为停止状态

之所以结束事务有结束状态的要求,是因为通过结束状态可以来确定事务是否成功,即业务是否成功。最后可以计算出业务成功率。

那么如何确定事务的结束状态呢?正常应该是先做检查点,通过检查点的结果来判断业务是否成功。

04、检查点

  • 如何插入检查点

插入检查点的步骤如下:

1.将代码切换为tree模式,在tree模式下,显示请求的信息有两种方式:

一是:html viewer;

二是:httpviewer

2.找到需要验证的页面

3.选择我们需要检查的内容,单击右键,选择“add text check”

4.在弹出的find text对话框中,输入相关信息

  • 如何通过检查点判断事务的结束状态

通过检查来判断被检查的对象出现的次数,如果出的次数大于说明,至少找到一次,则说明业务是成功的,否则业务为失败。

if(atoi(lr_eval_string("{num}")) > 0)
{
lr_end_transaction("LOGIN", LR_PASS);
}
else
{
lr_end_transaction("LOGIN", LR_FAIL);
}
  • 检查点函数
检查点函数语法:
int web_reg_find( const char *attribute_list, LAST );
参数说明:
Text:表示需要查找的内容;
Search:表示所查找的内容所出现的位置,在哪个部分去查找我们要的内容。有三个选项:Body、
Headers、All,一般情况都是在Body,默认选项为Body。
SaveCount:将匹配到的次数保存在这个变量中。

【性能测试】终于有一套全面的性能测试教程啦!真实企业性能测试全流程项目实战!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1285859.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS或RHEL安装code-server(vscode-web)

下载rpm安装包 网络下载或者下载到本地再上传到服务器,点击访问国内下载地址,不需要积分curl -fOL https://github.com/coder/code-server/releases/download/v4.19.1/code-server-4.19.1-amd64.rpm安装 rpm -i code-server-4.19.1-amd64.rpm关闭和禁用…

配电房一体化环境监控系统

配电房一体化环境监控系统是一种综合运用多种传感器、物联网、云计算、大数据等技术的智能化监控系统,依托电易云-智慧电力物联网,实现对配电房内环境、设备运行状态等信息的实时监测和预警,提高配电房的安全性和可靠性。以下是配电房一体化环…

C //例10.1 从键盘输入一些字符,逐个把它们送到磁盘上去,直到用户输入一个“#”为止。

C程序设计 (第四版) 谭浩强 例10.1 例10.1 从键盘输入一些字符,逐个把它们送到磁盘上去,直到用户输入一个“#”为止。 IDE工具:VS2010 Note: 使用不同的IDE工具可能有部分差异。 代码块 方法:使用指针&…

CUDA简介, 配置和运行第一个CUDA程序(Windows和Linux)

CUDA简介 CUDA(Compute Unified Device Architecture)是由NVIDIA开发的一种通用并行计算架构。CUDA允许程序员利用NVIDIA GPU的并行计算能力,加速各种计算密集型应用程序。 CUDA技术基于GPU的并行计算原理。传统的CPU处理器拥有少量的核心&…

Zabbix自定义监控内容

自定义监控客户端服务器登录的人数 需求:限制登录人数不超过 3 个,超过 3 个就发出报警信息 1.在客户端创建自定义key //明确需要执行的 linux 命令 who | wc -l//创建 zabbix 的监控项配置文件,用于自定义 key vim /etc/zabbix/zabbix_ag…

零基础入坑Python爬虫的全面学习指南

文章目录 首先爬虫是什么?1. Python学习2.Python urllib和urllib2 库的用法3.Python 正则表达式4.爬虫框架Scrapy爬虫基本原理关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工…

Shopee买家通系统自动下单更方便

Shopee购物平台的买家通系统为用户提供了一种便捷的自动下单方式,通过这一系统,用户可以轻松实现在虾皮平台购买商品的自动化操作。下面将介绍具体的操作流程,确保用户可以顺利完成整个购物流程。 首先,用户需要准备一个可用的虾皮…

(2/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)

附录 A1 - 《PMBOK指南》映射 表A1显示了第六版《PMBOK指南》中定义的项目管理过程组与知识领域之间的对应关系 本附录说明了如何利用混合和敏捷方法处理《PMBOK指南》知识领域(请参见表A1-2)中所述的属性,其中涵盖了相同和不同的属性&…

Apollo新版本Beta技术沙龙参会感受:未来的自动驾驶之旅

Apollo新版本Beta技术沙龙参会感受:未来的自动驾驶之旅 🚗💡 文章目录 Apollo新版本Beta技术沙龙参会感受:未来的自动驾驶之旅 🚗💡摘要引言正文📍 参会流程介绍🌟 参会收获&#x1…

力扣 790. 多米诺和托米诺平铺(一维dp)

题目描述: 有两种形状的瓷砖:一种是 2 x 1 的多米诺形,另一种是形如 "L" 的托米诺形。两种形状都可以旋转。 给定整数 n ,返回可以平铺 2 x n 的面板的方法的数量。返回对 109 7 取模 的值。 平铺指的是每个正方形都…

并行流(Parallel Streams)

并行流(Parallel Streams)是Java 8引入的一种并行处理集合数据的机制,它允许将操作并行化以提高处理速度。然而,并行流可能存在一些安全问题,特别是在多线程环境下。 以下是一些与并行流相关的安全问题: 共…

08、分析测试执行时间及获取pytest帮助

官方用例 # content of test_slow_func.py import pytest from time import sleeppytest.mark.parametrize(delay,(1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,1.0,0.1,0.2,0,3)) def test_slow_func(delay):print("test_slow_func {}".format(delay))sleep(delay)assert…

每日一练 | 华为认证真题练习Day142

1、路由器的主要功能,以下说法错误的是?(多选) A. 通过多种协议建立路由表 B. 根据路由表指导数据转发 C. 根据收到数据包的源IP地址进行转发 D. 实现相同网段设备之间相互通信 2、管理员发现无法通过TFTP传输文件到华为AR200…

深入学习锁--Lock各种使用方法

一、什么是Lock Lock是一个接口,通常所说的可重入锁是指Lock的一个实现子类ReentrantLock 二、Lock实现步骤: ①创建锁对象Lock lock new ReentrantLock(); ②加锁lock.lock(); ③释放锁lock.unlock(); import java.util.concurrent.locks.Lock; import java.util…

十年数据分析师告诉你,这款国产数据分析工具真的很好用!

今天早上上班的时候经过一同事,看见他正苦大仇深的做着数据分析报告,老李走上前一问才知道,他的EXCEL又双叒罢工了。   数据分析师的核心能力是思维,而次核心能力就是工具。如古人云打仗需要一把趁手的兵器。对于初入行业的数据分…

DBET-6X/200G24-8K4V直动式比例溢流阀放大器

DBETX-1X/50G24-8NZ4M、DBETX-1X/180G24-8NZ4M、DBETX-1X/250G24-8NZ4M、DBETX-1X/315G24-8NZ4M、DBETX-1X/80G24-8NZ4M、DBET-6X/200G24-8K4V直动式比例溢流阀,用来限制系统压力,通过电磁铁控制电流可调节压力,参考特性曲线即使出现电气故障…

一文回顾 Polkadot 跨链技术演进,了解 Polkadot 2.0 的未来

Polkadot 的起源、完善和上线过程经历了怎样的技术迭新与路线升级?深入把握 Polkadot 技术模型与生态合约才能让我们更好地深耕 Polkadot 生态。 11 月 25 日晚上,Substrate Saturday 第 19 期活动如期举行,Parity 工程师 Suvi Dong、Kaicha…

外包干了4年,技术退步明显...

先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

预付费用电管理系统在商场及宿舍的应用

安科瑞电气股份有限公司 上海嘉定 201801 【摘要】本文主要讨论了预付费用电管理系统软、硬件的构建方法,软件系统的各个模块设计,以及软、硬件设计过程中解决的主要问题。1联5系8电2话171微3信5同2号2 【关键词】预付费电能表硬件设计软件设计 引言 …

香港服务器时间不准,差8小时

解决方案1 1、timedatectl查看系统时间 2、查看系统时区 ls /usr/share/zoneinfo 3、删除当前系统所处时区 rm /etc/localtime 4、创建软链接,以替换当前的时区信息 ln -s /usr/share/zoneinfo/Universal /etc/localtime 解决方案2 手动设置硬件时钟 1、设置系…