LoadrunnerStudy_关联

      为什么需要关联呢,书上说的是,当客户端向服务器发起请求时,服务器会验证。验证通过后返回一个Session ID,该Session ID对本次会话期间所有访问生效,后续客户端的请求只要带上这个Session ID就会被认为是合法的请求。但是一旦会话结束,客户端再次向服务器发起新的请求时,服务器将会重新判断是否为合法用户,如果是合法用户,则会分配一个新的Session ID给到当前客户端。而使用录制的脚本回放时,仍然使用的是之前的Session ID,意思就是说,使用旧的Session ID去访问新的页面,服务器必然会拒绝。解决这个问题采用的方式就是关联了。

关联的三个特征:

特征一:该数据一定是从服务器返回的值

特征二:改数据一定是在后面的请求中要被调用的

特征三:改数据必须是动态变化的

两种关联方式:

自动关联

在录制选项中选择Correlations->Configuration,脚本录制期间会自动扫描需要关联的字段,并在脚本停止录制以后弹出对话框确认关联参数。

手动关联

如图所示,在回放登录页面的时候会发现有报错信息,初步猜测是和Session有关系,下面我们就开始去试试通过关联能不能解决该问题。

步骤一:在脚本中找到以下代码段

找到该值以后只是推测,是不是还需要进一步去确认,在Output->Code generation窗体下找到该值,并确保他第一次出现地方是在Response请求中。

找到第一次出现的位置后,如果是在Response中出现(上图中标红查看),且同时也会在Request中出现,name基本上就可以肯定是我们需要去关联的对象。

【特别说明】:一般需要关联的字段并非是纯数字或者字母有意义的组合,而是不太能理解的随机数

步骤二

确定关联对象后,需要记住在Code generation中第一次出现位置的左右边界,然后调用web_reg_save_param函数实现关联中变量的替换。

在我们找到的Session值上,单击鼠标右键Insert->New Step,在Steps Toolbox中输入web_reg_save_param,双击后弹出Save Data to a Parameter

Save Data to a Parameter

单击确定按钮后,会生成以下脚本

生成的脚本

因在左右边界的数据中出现了""(双引号),必须使用转义字符 "\" 才能生效,所以对以上脚本进行微调,最终结果如下

最终脚本

步骤三

下面将原有的Session value改成参数形式,这样系统每一次运行都会重新捕获数据到参数中,变量值的替换也就实现了

再次运行脚本,在Snapshot->Replay(Page View)中查看,运行OK

注:在运行过程中出现了 Error -27257 错误,引起这个问题的原因是因为没有将关联函数放在响应前面。

【特别说明】:关联的脚本除了web_reg_save_param,还包括以下四个

web_reg_save_param_regexp:正则表达式关联

web_reg_save_param_ex:扩展关联

web_reg_save_param_jesion:JS关联

web_reg_save_param_xpath:路径关联

最常用的主要是web_reg_save_param和web_reg_save_param_regexp,正则的用法主要是针对取值边长是动态生成的,使用该函数关联如下

关联返回的内容在正则表达式中需要用()标记。

【补充说明】;如果脚本过于复杂,无法确定需要关联的地方。可以重新录制一次脚本,对比两次脚本不一样之处,这样操作也可以发现动态数据。操作如下:

在解决方案管理器上单击右键,在弹出菜单中选择点击 Compare to External File 选择要对比的文件


要对比的文件被保存在以下路径

你可能感兴趣的:(LoadrunnerStudy_关联)