loadrunner学习---关联

 关联(correlation):在脚本回放过程中,客户端发出请求,通过关联函数所定义的左右边界值(也就是关联规则),在服务器所响应的内容中查找,得到相应的值,以变量的形式替换录制时的静态值,从而向服务器发出正确的请求,这种动态获得服务器响应内容的方法被称作关联。

关联有点相当于参数化吧,一般的参数化的参数来源于一个文件、一个定义的table、通过sql写的一个结果集等,但关联所获得的参数是服务器响应请求所返回的一个符合条件的、动态的值。

什么时候需要做关联?下面是客户端与服务器端的请求与响应的过程。                                                                        

过程说明:客户端发出获得登录页面的请求,服务器端得到该请求后,返回登录页面,同时动态生成一个Session Id,用户输入用户名密码,请求登录时,该Session Id同时被发送到服务器端,如果该Session Id在当前会话中有效,那么返回登录成功的页面,如果不正确则登录失败,在第一次录制过程中loadrunner把这个值记录了下来,写到了脚本中,但再次回放时,客户端发出同样的请求,而服务器端再一次动态的生成了Session Id,此时客户端发出的请求就是错误的,为了获得这个动态的Session Id就要用到关联。                                                                                                                                                                       (图源网络)

 所以结论:当客户端的某个请求是随着服务器端的相应而动态变化的时候,就需要用到关联。当然我们在录制脚本时应该对测试项目进行适当的了解,知道哪些请求需要用到服务器响应的动态值,如果我们不明确那些值需要做关联的话,我们也可以将脚本录制两遍,通过对比脚本的方法来查找需要关联的部分,但并不是说两次录制的所有不同点都需要关联,这个要具体情况具体分析。

录完脚本之后一定先做一个检查点,回放的时候才会报错,否则就算没有做关联也不会报错

关联步骤:(以webtours登录为例)

录制后加入检查点,回放报错。提示session用问题,那么需要关联。

 

1.找到要关联的对象(a.根据业务背景 b.录制两份相同的脚本,用windiff比较两份脚本区别tools--compare with the script--windiff)

2.分析这个返回值第一次是在哪里返回的(这里是服务器第一次给出响应的时候就返回了这个值,所以在打开页面的时候就返回的)

3.在tree视图相应步骤那里查找这个不同的值

4.加关联

可以在代码页看到加上去的关联函数 ,并且是加在打开页面函数的前面的。                                                                                                                                                          

 

刚刚那是自动关联,手动关联也是可以的:

1.找到也关联的对象

2.确定是从哪个函数那里返回的值

3.在generation log里面找到那个userSession值

4.手动在此函数前面加上关联函数web_reg_save_param

insert--new step--serves--web_reg_save_param

5.给userSession参数化

 再次回放就不会报错了。

 

web_reg_save_param函数:

web_reg_save_param("userSession",          //ParamName参数的名称,将关联的文本字符串保存在该参数
"LB=userSession value=",                          //参数或动态数据的左边界值,区分大小写,该属性是必需的
"RB=>",                                                    //参数或动态数据的右边界值,区分大小写,该属性是必需的
"Search=Body",                                         //搜索范围
LAST);                                                      //参数列表结束的标志

 

posted @ 2018-06-22 16:59  losemywaycl  阅读(162)  评论(0编辑  收藏  举报