|
一.关联介绍:
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, <List of Attributes>, LAST); 成功返回R_PASS(0),失败LR_FAIL(1)
例子:web_reg_save_param ("Test","LB=userSession Value","LB=>","Ord=1"
"RelFrameID=1.21","Serch=Body","IgoreRedirections=Yes",LAST);
http://blog.sina.com.cn/s/blog_83705ef20100sarw.html |
|