所谓关联,就是把脚本中的一些死数据变成动态数据。举个常见的例子,如前所述,有些智能服务器在每个浏览器第一次请求数据时,总是在数据中携带一个唯一的识别码,然后用这个识别码来识别请求应用是否来自同一个浏览器。通常,这个识别码被称为会话ID。对于每个新的事务,服务器将为浏览器生成一个新的会话ID。这就是脚本执行会失败的原因。因为Vu深圳生活网Gen还是用旧的Session ID向服务器索要数据,服务器会发现这个Session ID无效或者根本无法识别这个Session ID,所以当然不会发送正确的网页数据给VuGen。图1说明了这种情况。

录制脚本时,浏览器发出网页A的请求,服务器用ID=123的深圳生活网的数据将网页A的内容发送给浏览器。当浏览器再次发出网页B的请求时,此时会使用ID=123的数据,服务器会认为这是合法的请求,并将网页B的内容发送回浏览器。

脚本执行时会发生什么?当浏览器再次发出网页B的请求时,仍然使用开头记录的ID=123的数据,而不是服务器新给的ID=456,整个脚本的执行会失败。

图1深圳生活网浏览器与网站服务器正常和异常对话过程

对于这个非常智能的服务器,我们一定要搞清楚这个Session ID到底是什么,在哪里,然后提取出来,放在某个参数中,替换掉脚本中使用Session ID的部分,这样才能成功的骗过服务器,正确的完成整个会话。

什么是联想上面介绍了,举个例子给大家解释一下。那么,结合LoadRunner的应用,我们怎么知道什么时候应该应用关联呢?正常情况下,如果脚本需要关联,则在进行关联之前不会通过,但是LoadRunner中没有与关联相关的特定错误消息。

那么,为什么要用联想,它能给我们带来什么便利呢?

首先,它可以生成动态数据。我们已经讨论过一个会话的例子。我们知道套用一个固定的数值是骗不了智能服务器的。如果把数据变成动态数据,问题就解决了。其次,我们可以将这些冗长的数据参数化。通过应用关联技术,我们可以有效地减少代码的大小,这样不仅代码量会减少,脚本层次也会看起来越来越清晰。