【涨薪技术】0到1学会性能测试 —— 参数化关联

news2024/9/30 3:29:21

前言

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

01、性能测试参数化

什么情况下需要参数化

通常以下情况必须参数化:
1.唯一数约束
如果在数据库对某个字段有唯一的约束,那么这种情况下必须参数化;
2.日期约束
如果涉及一些日期方面的约束,过期之后,业务会失败,那么这种情况一定得参数化;
3.缓存约束
在做检索时,如果每次检索出来的内容是一至的,那么数据库不会到硬盘去取数据,只会在缓存取数据,这个时select查询时间不是真实的查询时间,这种情况下一定得参数化;
4.数据约束
如果发送的请求,有一部分要求必须不同,这种情况必须参数化;

02、参数化步骤

1.参数化类型

参数化类型有很多种,但一般我们只用文件参数化的方式;

2.文件

表示参数所存储的文件位置,如果参数比较多时,我们会对参数进行合并;

3.列的选择

选择列有两种方式:一是按列名来选择;二是按列号来选择;

4.update value on更新值

更新值有三个选项:每次迭代更新、每次使用时更新、一直使用某个数;

每次迭代时更新数据:在同一迭代中,不管某参数使用到多少次,都只使用一个参数

每次使用时更新数据:是指某个参数只使用到就更新数据,不管是不是在同一次迭代中,即使在同一迭代某个 参数如何使用到多次,我们也要更新新的数据;

5.select next row选择下一行数据

如何选择下一数据有几种方式:顺序选择、随机选择、唯一数、与某参数相同;

顺序选择:是指按顺序的从文件中读取数据来使用;

随机选择:是指在文件中随机选择一个数据来使用;

唯一数:是指每个虚拟用户只能使用某部分的数据,例如设置块大为10;

那么表示每个虚拟用户只能使用到10个数据;

第一个虚拟用户只能使用到1-10条数据;

第二个虚拟用户只能使用到11-20条数据;

以此类推

以某行相同:是指该参考选择的策略与另外一个参数选择的策略一至,如A与B行选择相同,那么是指B选择哪行的数据,A就必须也选择该行数据进行执行。

03、数据库参数化

数据库参数化的步骤如下:

1、在控制面板->数据管理中创建数据源

2、在参数列表中单击“data wizard”按钮

3、在弹出的数据查询向导对话框中,选择数据查询方式:

一是:使用Microsoft query模块来查询;

二是:使用sql语句来查询;

4、选择数据源

5、输入查询的SQL语句

性能测试关联技术

为什么需要关联

1、发送请求需要带一个类似ID号的内容,这个ID号是由服务器返回给客户端的

2、这个ID是一个动态,每次发送情况这个值都会发现改变。

如果出现以上特征时,一般这个业务都是需要关联的。

关联的原理

由于服务器返回给客户端的值是一个变化的值,所以我们不可能直接得到这串值,这样不可能直接取到我们需要的那串变化的值。

但我们可以能从服务器返回给客户端的所有的值来去匹配我们要的值,正常情况下服务器返回给客户的内容都在response body中,简单说这些返回的内容就是一串字符串,但是返回的字符串不可能所有的内容都是变化,只有很少数部分内容是变化。

虽然我们不可能直接取到变化的值的内容,但是可以通过找到变化值所对应的左右边界值来得到变化的值,即固定左边的字符串容和右边的字符串内容,然后将符合左右边界规则的字符串的值取出来。取出来之后将这个值存放在一个变量中。

再将这个变量放到请求中来即可,原来录制代码时这是固定才导致请求不成功,现在换一个变量,就可以解决 这个问题。也就说关联的核心原理就是找到变化值的左右边界内容。

关联的左右边界值

通常查找左右边界值的步骤如下:
1、录制两个操作完全一至的脚本
2、使用wdiff工具比较这个两个脚本
3、找到需要关联的值
4、到所有请求的response body中找到需要关联的值所在的BODY内容
5、通过这个返回的response body中的值来确定需要关联值的左右边界值
6、在录制设置对话框中创建规则,LoadRunner关联规则有两种:

一是:内置关联规则;二是:自定义关联规则(常用);
7、重新录制脚本,录制完成后,LoadRunner会对脚本自动的进行关联

关联函数

关联函数的语法:int web_reg_save_param( const char *ParamName, <List of Attributes>, LAST );参数说明:ParamName:参数名LB:表示左边界值,需要匹配内容的左边界值,如果LB的值不设置,那么说明匹配的从左边第一个字符开始,直到符合右边界值为止。如果需要对左边界进行更精准的匹配,那么左边界还有以下一些参数可以设置:--->/IC:不区分大小写--->/BIN:表示在指定的二进制数进行匹配--->/DIG:表示使用"#"做通配符,匹配0-9的任意一个数--->/ALNUM<case>:表示匹配一个字符,可以是数字、大写字母、小写字母RB:表示右边界值,设置的方法与LB一至,如果RB的值不设置,那么说明匹配的内容从左边界值开始,直到右边最后一个字符。ORD:表示选择第几次符合左右边界值规则的值因为有可能会出现多个符合左右边界值的,默认值为1,表示第一个符合这个左右边界值的数据。如果设置为All,那么会将所有符合左右边界值的数据保存,保存一个数组中。SaveLen:表示在匹配的数据中,取一个子符串,字符串长度SaveLen,如果不设置长度就是取所有的内容,从第几个字符开始取是由saveoffset来决定。SaveOffset:表示偏移量,是指从第多少个字符开始取值。默认值为零,表示从第一个字符开始取。

关联函数的使用

第一种写法:int irand;char flightnum[10],flightele[10];....srand(time(NULL));irand = rand() % atoi(lr_eval_string("{outboundFlight_count}")) + 1;sprintf(flightnum,"{outboundFlight_%d}",irand);lr_save_string(lr_eval_string(flightnum),"flightele");第二种写法:int irand;char *flightnum,*flightele;....srand(time(NULL));irand = rand() % atoi(lr_eval_string("{outboundFlight_count}")) + 1;flightnum = lr_paramarr_idx("outboundFlight", irand);lr_save_string(lr_eval_string(flightnum),"flightele");

关联与参数化的区别

关联与参数化的区别如下:

1、关联的内容是由服务器发送给客户端的

2、参数化是客户端提交给服务器的

3、关联的值是动态的值,是不确定

4、参数化的值是确定,是我们自己设置好


绵薄之力【资源分享】

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

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

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

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

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

相关文章

什么是分布式锁?几种分布式锁分别是怎么实现的?

一、什么是分布式锁&#xff1a; 1、什么是分布式锁&#xff1a; 分布式锁&#xff0c;即分布式系统中的锁。在单体应用中我们通过锁解决的是控制共享资源访问的问题&#xff0c;而分布式锁&#xff0c;就是解决了分布式系统中控制共享资源访问的问题。与单体应用不同的是&am…

python语音识别whisper

一、背景 最近想提取一些视频的字幕&#xff0c;语音文案&#xff0c;研究了一波 二、whisper语音识别 Whisper 是一种通用的语音识别模型。它在不同音频的大型数据集上进行训练&#xff0c;也是一个多任务模型&#xff0c;可以执行多语言语音识别以及语音翻译和语言识别。 …

Chat Support Board WordPress聊天插件 v3.5.8

功能列表 支持和聊天功能 Slack聊天完全同步 - 直接从Slack发送和接收用户信息。 立即工作 - 只需插入短码&#xff0c;即可立即安装和使用。 丰富的信息 - Dialogflow机器人发送丰富的信息。 机器人--集成一个由API.AI驱动的多语言机器人。 电子邮件通知 - 当收到回复时&#…

JUC 之 比较交换 CAS

—— CAS&#xff08;Compare And Swap&#xff09; 没有 CAS 之前&#xff0c;多线程环境下不使用原子类保证线程安全 i&#xff0c;只能通过 synchronized 加锁的方式&#xff0c;高并发多写情况下&#xff0c;性能影响很大&#xff1b;使用 CAS 之后&#xff0c;可以使用原子…

公司对不同职级能力抽象要求的具体化

要先把当前级别要求的能力提升到精通&#xff0c;然后尝试做下一级别的事情。 但可能不确定高一级的能力要求究竟怎样&#xff0c;不同Title&#xff0c;如“工程师”“高级工程师”和“资深工程师”等。但这样 Title 对我们理解不同级别的能力要求&#xff0c;完全无用。“高…

RecycleView详解

listview缓存请看: listview优化和详解RecycleView 和 ListView对比&#xff1a;使用方法上ListView&#xff1a;继承重写 BaseAdapter&#xff0c;自定义 ViewHolder 与 converView优化。RecyclerView: 继承重写 RecyclerView.Adapter 与 RecyclerView.ViewHolder。设置 Layou…

【华为OD机试模拟题】用 C++ 实现 - 英文输入法(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 分积木(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 吃火锅(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - RSA 加密算法(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 构成的正方形数量(2023.Q1) 【华为OD机试模拟…

计算机组成原理考研题精选

运算 1 D状态寄存器of,cf,sf,zf看结果&#xff0c;数据总线传输数据&#xff0c;Alu是核心器件&#xff0c;地址寄存器是存储器件 2 (74条消息) 【细碎知识1】浮点数的规格化_SinHao22的博客-CSDN博客_浮点数规格化 (74条消息) IEEE754 浮点数&#xff1a;简读案例秒懂_theR…

数据结构之8种排序算法

文章目录1.插入排序2.希尔排序&#xff1a;3.冒泡排序4.快速排序5.简单选择排序6.堆排序在堆中插入新元素&#xff1a;在堆中删除一个元素&#xff1a;7.归并排序8.基数排序9.外部排序排序算法1.插入排序 每次将一个待排序的记录按其关键字大小插入到前面已经排好序的子序列中…

量子态操作:基于门的三态旋转

R-旋转操作 在量子计算中&#xff0c;RX, RY, RZ门是三种基本的单量子比特旋转门&#xff0c;它们分别绕X轴、Y轴、Z轴旋转量子比特的态矢量。 RX旋转门&#xff1a;绕X轴旋转角度为θ\thetaθ的RX门的矩阵表示为&#xff1a; Rx(θ)(cosθ2−isinθ2−isinθ2cosθ2)R_x(\th…

Python3+Selenium3自动化测试

此前对网页内容进行元素定位的操作&#xff0c;接下来就可以对已经定位的元素进行操作了&#xff0c;一般情况下定位好元素后通过IDE的提示就可以了解到有哪些方法 #coding utf-8 import time from selenium import webdriver from selenium.webdriver.common.by import By dr…

JAVA多线程牌号系统开发与应用

技术&#xff1a;Java等摘要&#xff1a;牌号系统是为解决一些服务业营业大厅排队问题而设计的&#xff0c;它能够有效地提高工作人员的工作效率&#xff0c;也能够使顾客合理的安排等待时间&#xff0c;让顾客感到服务的公平公正。论文首先讨论了牌号系统的背景、意义、应用现…

力扣-订单最多的客户

大家好&#xff0c;我是空空star&#xff0c;本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目&#xff1a;586. 订单最多的客户二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他总…

算法模板总结(自用)

算法模板总结滑动窗口双指针算法数组相关合并两个有序数组左右指针技巧快慢指针技巧字符串相关左右指针反转字符串问题快慢指针替换空格字符问题链表相关快慢双指针删除链表的倒数第N个节点链表相交环形链表链表操作几数之和两数之和四个数组的四数之和三数之和同一数组中四数之…

(十)守恒律(主平衡原理)

守恒律表示了物体中某些物理场量之间的关系&#xff0c;它可表述为&#xff1a;某一时刻 ttt&#xff0c;对于物理场量 Φ\bold\PhiΦ 在物体体积 vvv 上的物质积分&#xff0c;其时间变化率等于另一物理场量 Ψ\bold\PsiΨ(源) 在该体积上的物质积分&#xff0c;与通过物体表面…

AI高效学习路径总结

最近chatgpt爆红&#xff0c;百度近日也官宣了大模型新项目“文心一言”&#xff08;英文名ERNIE Bot&#xff09;&#xff0c;即将在今年3月面向公众开放&#xff0c;我先期待一波&#xff0c;到时候给同学们说说感受。 这也不是第一次人工智能引起广泛关注了&#xff0c;随着…

外贸人员如何让远程办公和在办公室一样办公

俗话说&#xff1a;“工欲善其事&#xff0c;必先利其器”。作为外贸人员&#xff0c;常用的工具主要分为三大类&#xff1a;客户管理工具、翻译工具、邮箱工具。往往外贸人员会忽略另一类工具&#xff1a;远程类工具。客户管理工具 有了客户管理工具&#xff0c;企业和员工都可…

软件测试之正交法

正交法 通过分析我们发现,对于图中的程序而言,我们要设计81条测试用例,那么有没有一种方法能够使用最小的测试过程集合获得最大的测试覆盖率呢? 1. 概述 1.1 定义 正交法,也叫正交实验法或者正交排列法, 就是使用最小的测试过程集合获得最大的测试覆盖率。 “正交实验”是…

LINUX应用GUI开发C++ 之gtkmm4(1)

目录概述GTKgtkmm安装gtkmm4hello,worldcodelite配置代码解释概述 GTK GTK是一个小部件工具包。GTK创建的每个用户界面都由小部件组成。这是在C语言中使用GObject实现的&#xff0c;GObject是一个面向对象的C语言框架。窗口小部件是主容器。然后通过向窗口中添加按钮、下拉菜…

Android Studio中创建java工程

1. 前言 电脑环境: Ubuntu 18.04 开发工具环境:Android Studio 4.1.3 版本 经常要使用验证Java API, 把配置环境步骤记录一下 2. 创建步骤 2.1 新建一个Android Studio App工程 New ---> New Project ---> 选择一个Activity主题---> Finish 就创建ok 2.2 …