千家信息网

LR中关联总结

发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,一.关联介绍:LR录制的脚本只是忠实记录了所有从客户端发送到服务器端的数据,并在脚本回放的时候按照录制的顺序将录制下来的数据重新发送出去。但是,实际上许多的系统都采用SessionID或SeqID等方
千家信息网最后更新 2025年01月31日LR中关联总结

.关联介绍:

LR录制的脚本只是忠实记录了所有从客户端发送到服务器端的数据,并在脚本回放的时候按照录制的顺序将录制下来的数据重新发送出去。但是,实际上许多的系统都采用SessionID或SeqID等方法来标识不同的任务和数据报,应用在每次运行时发送的数据并不完全相同。所以,为了让脚本能够支持测试的需求,就必然要用某种机制对脚本的数据进行出来了。总之一句话:通过关联可以在测试中保持动态值。

二.一般的关联步骤:

1.从服务器返回的数据中选取需要进行关联的数据。

2.将该数据存入脚本的一个参数中

3.将脚本中需要使用该数据的地方用参数来替换。

Tip:对于web来说,一般会用一个hidden 的 field存放。所以在可以服务器返回的记录查找该字段值。

三:关联的目的:

1.简化或优化代码

例如,如果依次执行一系列的相关查询,您的代码可能会变得很长。为了减少代码的大小,可以嵌套查询,但这样会失去准确性,而代码会变得复杂而难以理解。通过关联语句,不需要嵌套就可以链接查询。

2.用于动态数据

许多应用程序和网站当前日期和时间标识会话。如果尝试重播脚本,该操作将会失败,应为当前时间与录制时间不同(LR自带的WEB演示程序)。通过关联数据可以保存动态数据,并在整个方案过程中使用这些数据。

四:关联操作

方法一:自动关联

1.Tools -Recording Options。

2.设置完成后录制登陆 - 退出过程。

3.利用LR自带的自动关联进行关联。

方法二:手动关联

1:录制测试脚本,录制二遍

2:使用WinDiff工具找出两次脚本的不同,判断是否需要进行关联(Tools下的 Compare with Vuser进行2个相同操作的脚本对比)

3:确定插入关联的位置

4:在VIEW TREE中使用web_reg_save_param函数手动建立关联

5:将脚本中有用到关联的数据,用参数代替

   6:验证关联的正确性

五:定位需要关联操作

1.Vuser -Scan Script. for Correlations

2.在Server Response 中进行比对2次服务器变化的数值。

六:常见的需要关联的场景

1.登录操作。

2.先查后修改,先差后删除。

3.并发控制:防止2个用户同时修改或同时删除一条记录

七:关联函数模型

int web_reg_save_param (const char *ParamName, , LAST); 成功返回:LR_PASS(0),失败LR_FAIL(1)

例子:web_reg_save_param ("Test","LB=userSession Value","LB=>","Ord=1"

"RelFrameID=1.21","Serch=Body","IgoreRedirections=Yes",LAST);

八:手动关联总结

1、正常情况下的手动关联:web_reg_save_param("SessionId"," LB =value=\""," RB =\">", LAST );

LR:所需截取字符串的左边界

RB:所需截取字符串的右边界

如果左右边界中存在各种特殊字符,如双引号等,则需先用\进行转义

一般情况下,如果所截字符串的左右边界比较唯一的话,可以直接用上面的方式进行获取,无需设置别的属性

了。("LAST"是固定的。。。)

2、如果进行关联后,有报错信息,提示参数化未成功,有可能是以下几方面的原因:

1)左右边界取值不正确,可以进入Generation log中,查看在关联的参数左右边界是否正确

2)关联函数的位置放置错误

可以将log设置成输出Extended log。

设置方法为:Vuser->Run-time Settings->Log属性中,选中Extended log 并选中下面三个日志。

在输出的日志中找到所要关联化的参数第一次的输出位置(注意是response返回的值,不是request中的),

对照左侧的脚本行数,将关联函数放在此行数之前,即可。

3、关联没问题,运行时无报错,可就是得不到参数的值,可以从Extended log中找到原因。

将Replay Log中的日志改为输出Extended log->Parameter substitution日志,再重新运行一次,便可看到

所关联参数的变化情况。

4.如果某个参数关联成功,可是运行时却发现还会报错,那么可以考虑一下是不是因为有别的值跟你所截取的

这个参数相关联,随着那个值的变化,你所截取的这个参数也会进行某一方面的变化,那样的话就需要将那个变化的值

同样进行参数化。也有可能是被关联的参数被HTTP请求多次返回,每次界面引用的值都不同,注意通关抓包来分析


九、关联中常用的转义内容

\b Backspace键

\f 换页

\n 换行

\r 回车

\t 水平制表符

\v 垂直制表符

\' 单引号标记

\" 双引号标记

\\ 反斜线

\? 文本问号




关联 数据 参数 脚本 变化 不同 代码 函数 字符 手动 方法 日志 服务器 边界 服务 输出 运行 成功 位置 动态 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳中圳互联网科技 安徽有哪些少儿编程平台软件开发 现在学网络安全有前途吗 超市网络安全需求分析报告 数据库查看某段时间段 2022中小学网络安全教育答案 温德园科技互联网 咸宁市网络安全与信息化中心 三丰云服务器端口被关闭了 数据库查表加分区 网络安全宣传教育建议 东南大学研究生网络安全学院 安徽八度网络技术有限公司 湖南hp服务器维修维保费用 网络安全教育知识演讲稿 高数计算机网络技术 网络安全进校园征文450字 福州要玩网络技术有限公司 中国移动的网络技术支撑 kodi无法联机连接远程服务器 no是什么意思数据库 物理学笔记软件开发 python软件开发班 南财网络安全自考题 一加手机怎么关闭网络安全检测 必火网络安全教学视频 手机到数据库 厦门大学网络技术中心 软件开发专业技术工作总结 微信的本地数据库是使用什么
0