性能测试基础---LR关联2
·LR中的关联函数详解。
在LR中,用于关联的函数一般有以下四个:
web_reg_save_param 是通过字符串查找的方式来查找获取数据。
web_reg_save_param_ex 是通过字符串查找的方式来查找获取数据。新版本的函数。
web_reg_save_param_regexp 是通过正则表达式的方式来查找获取数据。
web_reg_save_param_xpath 是通过xpath的方式来查找获取数据。
在LR中,web表示该类函数只能用于web类型的脚本。lr开头的就表示是lr内置函数,适用于所有协议。
reg关键字表示该函数是注册型函数,要求放在请求之前。它是运行在其后第一个请求函数之后的。
save_param表示该函数的功能和作用。
·web_reg_save_param_ex详解:
·Parameter Name:参数名称,由用户自己定义,有意义即可。
·Left Boundary:左边界,即要获取的动态数据的左边的字符串。
·Right Boundary:右边界,即要获取的动态数据的右边的字符串。
PS:
·左右边界本身一般是具有唯一性的。。是指组合的唯一性。
·不论是字符串查找还是正则查找,一般采取的都是非贪婪的模式。即采取的是最小匹配原则。
·示例:假设服务器响应回的字符串是“a1ba2ba3ba4b”
设置左边界LB=a,右边界RB=b,则最终符合条件的数据是:1、2、3、4这四个字符串。而不会是"1ba2"这样的字符串。
·如果左右边界中出现双引号,则需要进行转义操作。
·Ordinal:又叫ORD属性,老版本叫instance,该选项可以填的是正整数N 或者 字符串 “all”.
·正整数N:表示将第N次符合条件的数据存入参数。默认值为1.
·all:则表示将所有符合条件的数据以类似于数组的方式存入参数数组(以参数名命名的数组)。
效果为:ParamName_1=Value1,ParamName_2=Value2,......,ParamName_N=ValueN
与之同时,会生成一个参数叫ParamName_count=N。
通常来说,当ordinal=all时,就意味着我们需要随机或者遍历数据。
·随机:
一般来说,会用到函数lr_paramarr_random(),核心代码如下:
lr_save_string(lr_paramarr_random("outboundFlight"),"myflight");//表示从数组outboundFlight中随机获取一个值,并且赋值给参数myflight。
·遍历:
核心代码如下:
int i,num;
关联函数;
请求;
num=atoi(lr_eval_string("{outboundFlight_count}"));
for(i=1;i<=num;i++){
//表示把数组outboundFlight下标为i的元素的值提取,并且保存赋值到参数myflight。
lr_save_string(lr_paramarr_idx("outboundFlight",i),"myflight");
需要遍历使用数据的请求(......,value="{myflight}",......)
}
·offset:偏移量。是指实际存入参数的数据将从左边界向右偏移N个字符开始计算。
·length:长度,是指实际存入参数的数据的长度。
·在LR中,变量VS参数
·相同点:
都可以用来存储值,并且被调用。
·不同点:
·变量默认是局部变量,只在当前action有效。
参数是从起效的时候,在任何位置都有效的。
·定义问题:
变量必须定义才能使用。而且必须在所有的代码之前进行定义。
参赛不需要定义。
·赋值问题:
一般来说,参数赋值通常使用的是函数lr_save_string()这一系列的函数。
变量赋值,一般使用的是sprintf。
·调用问题:
变量一般来说要求在双引号之外调用,直接使用名称。
参数要求在双引号内调用,并且使用参数调用的格式。
一般来说,我们可以通过两个函数实现变量和参数状态的转换。
lr_eval_string("{参数名}") 表示将参数的值读取出来,整个函数等同于一个变量
lr_save_string(变量,"参数名") 表示将指定的变量赋值给指定的参数,从而实现变量到参数的转换。
性能测试基础---LR关联2的更多相关文章
- 性能测试基础---LR关联
·什么时候需要做关联?一般来说,在脚本运行出错的时候,我们就可能需要进行关联处理. ·脚本出错分为两种情况: ·直接回放出错(失败).通常来说,如果录制成功,回放失败,排除数据的唯一性约束之后,那就必 ...
- 性能测试基础---LR场景设置
·场景设置. 性能测试场景依托于性能测试脚本,但是又独立于脚本. 所谓场景(scenario),就是用来模拟多用户运行性能测试脚本的情形,是来源于我们对于业务场景的分析的. 性能测试对于业务场景的分析 ...
- 性能测试基础---LR参数化相关
性能测试脚本的增强:·参数化·关联·事务·检查点·思考时间·集合点 ·参数化:模拟不同用户的不同请求. ·为什么要做参数化? ·功能:通常来说,系统的某些业务数据具有唯一性的要求. ·性能:一般来说, ...
- 性能测试基础---LR运行设置
·LR的运行时设置(Runtime settings): ·Run Logic:该选项是用来控制脚本的真正的运行逻辑. ·该选项会把脚本中的函数分别放入三个运行模块中:Init.Run.End ·默认 ...
- 对LR关联的一些理解
从接触LR关联的迷茫,到现在略有感悟,小记期间的一些理解. 一开始认识关联是在LR自带学习例子,需要关联session,也知道了自动关联,手动关联以及边录制边关联. 在使用关联的过程中,也学习了web ...
- 性能测试基础---测试流程,LR安装
·性能测试流程详解: 一般来说,性能测试通常可以分为以下过程: ·前期分析.测试计划.测试方案.测试环境的搭建.测试数据的准备.测试脚本的开发.测试场景的设计.测试场景的实现和执行.资源的监控.分析结 ...
- 性能测试基础---jmeter参数化、关联、事物、检查的等
·Jmeter脚本增强·性能测试的脚本增强技术:参数化.关联.事务.检查点.思考时间和集合点. ·参数化:在Jmeter中,实现参数化的方式很多.本质上来说,参数化的实现方式有两种:·文件方式:一般建 ...
- 性能测试基础-开门篇3(LR常用函数介绍)
LR常用的函数,协议不一样函数会不一样,这里简单的介绍下HTTP\WEBSERVICE\SOCKET协议常用函数: HTTP: web_set_max_html_param_len("102 ...
- LoadRunner性能测试基础知识问答
Q1:什么是负载测试?什么是性能测试? A1:负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试,例如,访问一个页面的响应时间规定不超 ...
随机推荐
- 【Gamma阶段】第七次Scrum Meeting
冰多多团队-Gamma阶段第七次Scrum会议 工作情况 团队成员 已完成任务 待完成任务 卓培锦 编辑器风格切换(添加夜间模式) UI界面手势切换 牛雅哲 语音输入shell应用:基于pytorch ...
- Azure DevOps Server (TFS) 修改Git文件大小限制
签入Git的所有文件将永远保留在存储库中,限制大文件签入到代码库,可以增加磁盘使用效率,提高系统备份还原等日常维护的效率. 通过下面的设置,团队项目管理员可以阻止超过特定大小的文件进入存储库.如果推送 ...
- javascript的立即执行函数
在javascript中有引入立即执行函数的概念,那么什么是立即执行函数呢?立即执行函数又是怎么写的呢?立即执行函数与普通函数有什么区别呢? 先来看看一般的函数: function a(){ var ...
- 钉钉与wcp知识库集成工具
dingding-wcp 钉钉(dingding)的wcp(知识库)集成通知,非常简单的小工具.(wcp版本 V.free.4.0.4) git: https://gitee.com/chejiang ...
- 10. Scala数据结构(上)-集合操作
10.1 数据结构特点 10.1.1 Scala集合基本介绍 uml => 统一建模语言 1) Scala同时支持不可变集合和可变集合,不可变集合可以安全的并发访问 两个主要的包 不可变集合:s ...
- 【学习笔记】Docker基础
基本概念 Docker是什么? Docker是一种基于Golang开发的虚拟化技术,开发人员和系统管理员使用容器开发,部署和运行应用程序的平台. 使用Linux容器部署应用程序称为容器化. 容器不是新 ...
- linux中awk工具的使用(转)
add by zhj: awk很强大,它是一个简单的编程语言,国外有本专门的书介绍它的用法.<effective awk programming>,它支持整型,字符串型,数组,变量在使用前 ...
- Codeforces Round #588 (Div. 1)
Contest Page 因为一些特殊的原因所以更得不是很及时-- A sol 不难发现当某个人diss其他所有人的时候就一定要被删掉. 维护一下每个人会diss多少个人,当diss的人数等于剩余人数 ...
- python基础08--迭代器,生成器
1.1 迭代器 1.可迭代对象:str,list,tuple,set,dict, 迭代器:f(文件),range() 可迭代对象和迭代器都可以for循环 可迭代对象不会计数, 迭代器会计数,上面操作到 ...
- English--动词语态
English|动词语态 动词的语态在理解长难句中很重要.了解被动语态与主动语态,掌握语态的变化方式. 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点的描述.力求不含任何的自我 ...