当前位置: 首页 > news >正文

【涨薪技术】0到1学会性能测试 —— LR录制回放事务检查点

前言

上一次推文我们分享了性能测试分类和应用领域,今天带大家学习性能测试工作原理、事务、检查点!后续文章都会系统分享干货,带大家从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:将匹配到的次数保存在这个变量中。

 最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源免费分享~

http://www.lryc.cn/news/19746.html

相关文章:

  • 卡尔曼滤波原理及代码实战
  • Jmeter使用教程
  • 论文笔记|固定效应的解释和使用
  • 数据集市与数据仓库的区别
  • Golang学习Day3
  • Python并发编程-事件驱动模型
  • 构建系统发育树简述
  • 这款 Python 调试神器推荐收藏
  • 金三银四吃透这份微服务笔记,面试保准涨10K+
  • 构建matter over Thread的演示系统-efr32
  • 【一天一门编程语言】Matlab 语言程序设计极简教程
  • 看似平平无奇的00后,居然一跃上岸字节,表示真的卷不过......
  • BZOJ2142 礼物
  • MySQL高级第一讲
  • 前端面试常用内容——基础积累
  • 跟着《代码随想录》刷题(三)——哈希表
  • HTML - 扫盲
  • 【系统分析师之路】2022上案例分析历年真题
  • Python编程规范
  • 【Java】Spring Boot项目的创建和使用
  • Malware Dev 00 - Rust vs C++ 初探
  • JavaScript HTML DOM 事件
  • 推荐算法——NCF知识总结代码实现
  • redis(4)String字符串
  • session一致性问题
  • 上岸16K,薪资翻倍,在华为外包做测试是一种什么样的体验····
  • django项目中如何添加自定义的django command
  • 【算法基础】哈希表⭐⭐⭐
  • 基于SpringMVC、Spring、MyBatis开发的校园点餐系统
  • LeetCode 热题 C++ 148. 排序链表 152. 乘积最大子数组 160. 相交链表