冰清 发表于 2008-3-6 14:41:12

LR在什么情况下需要做关联?

LR在什么情况下需要做关联?

meiliqingdao 发表于 2008-3-6 14:51:35

一般情况下,录制脚本后,回放不成功或回放时的操作与当时的操作不一致就需要做关联。

swallan2000 发表于 2008-3-6 14:57:33

关联

楼上说的是LOADRNNER的自动关联。在接收server response传回的数据时,才会有关联产生。

[ 本帖最后由 swallan2000 于 2008-3-6 14:58 编辑 ]

bydcsgy 发表于 2008-3-6 16:08:29

貌似精华区中有关于关联的帖子,楼主可以下来看看,写的挺详细,基本是3楼的意思

冰清 发表于 2008-3-10 10:22:21

谢谢大家的建议。

jiang860718 发表于 2008-3-10 10:38:16

服务器在每个浏览器第一次跟它要数据时,都会在数据中夹带一个唯一的辨识码,接下来就会利用这个辨识码来辨识跟它要数据的是不是同一个浏览器。一般称这个辨识码为Session ID。对于每个新的交易,服务器都会产生新的Session ID给浏览器。这也就是为什么执行脚本会失败的原因,因为VuGen还是用旧的Session ID向服务器要数据,服务器会发现这个Session ID是失效的或是它根本不认识这个Session ID,当然就不会传送正确的网页数据给VuGen了。

我们必须想办法找出这个Session ID到底是什么、位于何处,然后把它撷取下来,放到某个参数中,并且取代掉脚本中有用到Session ID的部份,这样就可以成功骗过服务器,正确地完成整个交易了。

491623644 发表于 2012-6-2 15:40:11

1.关联的含义

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

      其实关联也属于一同特殊的参数化,只是与一般的参数化有些不同


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


      2.什么时候需要做关联

      要想弄清这个问题,我们首先要知道客户端与服务器端的请求与响应的过程



      过程说明:

      客户端发出获得登录页面的请求


      服务器端得到该请求后,返回登录页面,同时动态生成一个Session Id

      当用户输入用户名密码,请求登录时,该Session Id同时被发送到服务器端

      如果该Session Id在当前会话中有效,那么返回登录成功的页面,如果不正确则登录失败


      在第一次录制过程中loadrunner把这个值记录了下来,写到了脚本中,但再次回放时,客户端发出同样的请求,而服务器端再一次动态的生成了Session Id,此时客户端发出的请求就是错误的,为了获得这个动态的Session Id我们这里用到了关联。



      所以我们得出结论:



      当客户端的某个请求是随着服务器端的相应而动态变化的时候,我们就需要用到关联

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

转自:领测软件测试网[http://www.ltesting.net]
原文链接:http://www.ltesting.net/ceshi/ceshijishu/rjcsgj/mercury/loadrunner/2009/0714/164380.html
页: [1]
查看完整版本: LR在什么情况下需要做关联?