- 什么是关联?为什么要关联?
- 当录制脚本时,VuGen会拦截浏览器与客户端之间的对话,并通通记录下来,产生脚本
- Loadrunner执行脚本时,VuGen伪装成浏览器,然后根据脚本,把当初真的浏览器所说的话,再对网站伺服器重新说一遍,VuGen企图骗过服务器,让服务器以为它就是当初的浏览器。然后把网站的内容传送给VuGen。
- 这样的做法在遇到比较聪明的服务器时,会失效,这就需要用到关联correlation的做法,来让VuGen再次骗过服务器
- 所谓关联就是把脚本中某些写死的数据,转变成是撷取自服务器所发送的,动态的,每次都不一样的数据。
- 举例:
- 服务器在每个浏览器第一次跟它要数据的时候,都会在数据中心夹带一个唯一的辨识码,接下来就会利用这个辨识码来辨识跟它要数据的是不是同一个浏览器。一般称这个辨识码为session ID。对于每个新的交易,服务器都会产生新的session ID给浏览器。这也就是为什么执行脚本会失败的原因,因为VuGen还是用的旧的session ID向服务器要数据,服务器就会发现这个session ID是失效的或者是根本不认识的session ID,当然就不会传送正确的数据给VuGen。
- 使用LR自带的WinDiff工具协助找出需要关联的数据
- 在第二份脚本中,点选VuGen的【Tools】>【Compare with Vuser…】,并选择第一份录制的脚本。
- 接着WinDiff会开启,同时显示二份脚本,并显示有差异的地方。WinDiff会以一整行黄色标示有差异的脚本,并且以红色的字体显示真正差异的文字。(假如没看到红色字体,请点选【Options】>【View】>【Show Inline Differences】)。
- 找到不同的部分后,复制,然后打开Recording Log或是Generation Log,按Ctrl+F,在查找窗口中粘贴差异部分的内容,点击查找找到后,查看该部分的信息,确认是客户端的请求信息还是服务器回应的信息
- 如果出现在$$$$$$ Request Header For Transaction With Id 3 Ended $$$$$$这个部分,那证明是客户端发出的请求,这里是不需要做关联的。
- 一般做的关联都是出现在****** Response Header For Transaction With Id 7 ******和****** Response Body For Transaction With Id 7 ******中的部分。
- 在找到这个信息后,需要记录如下信息:
- a、记录这个不同数据之前的内容和之后的内容
- b、记录这个不同数据出现的位置,是Header还是Body
- 确认插入关联的位置
- 我们在日志中找到了两次脚本的不同点的位置,根据这个位置ÿ
03-23
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交