LoadRunner性能测试应用(连载二十一)

发表于:2009-2-05 17:32

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:姜艳、于波等    来源:51Testing提供试读

关键字:LoadRunner性能测试软件测试工具

  3.3  语句关联

  当录制脚本时,VuGen会拦截客户端(浏览器)与服务器端(网站服务器)之间的会话,并且记录下来,产生脚本。在VuGen的Recording Log中,可以找到浏览器与服务器之间所有的对话,包含通信内容、日期、时间、浏览器的请求、服务器的响应内容等等。脚本和Recording Log最大的差别在于,脚本只记录了客户端要对服务器端所说的话,而Recording Log则是完整记录二者的对话。

  当执行脚本时,可以把VuGen想象成是一个演员,它伪装成浏览器,然后根据脚本,把当初浏览器确实说过的话,再对网站服务器重新说一遍,VuGen企图骗过服务器,让服务器以为它就是当初的浏览器,然后把网站内容传送给VuGen。

  所以VuGen记录在脚本中的要跟服务器所说的话,完全与当初录制脚本时所说的一样,是写死的(hard-coded)。这样的做法在遇到有些比较聪明的服务器时,还是会失效。这时就需要通过关联来让VuGen再次成功地骗过服务器。

  3.3.1  关联的意义

  所谓的关联就是把脚本中某些写死的代码(hard-coded)数据,转变成撷取自服务器所送的、动态的、每次都不一样的数据。

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

  下面的例子说明了这样的情形:

  当录制脚本时,浏览器发出对网页A的请求,服务器将网页A的内容传送给浏览器,并且夹带了一个ID=123的数据,当浏览器再发出对网页B的请求时,这时就要用到ID=456的数据,服务器才会认为这是合法的请求,并且把网页B的内容送回给浏览器。

  在执行脚本时会发生什么状况呢?浏览器再发出对网页B的请求时,用的还是当初录制的ID=123的数据,而不是用服务器新给的ID=456,因此整个脚本的执行就会失败。

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

  1.什么地方需要关联

  凡是脚本每次执行时都必须获得唯一标识的地方都需要关联。假如脚本需要关联,如果不做关联是不会执行通过的,也就是说会有错误消息发生。不过很遗憾,并没有任何特定的错误消息是和关联有关系的。会出现什么错误消息,与系统实际的错误处理机制有关。错误消息有可能会提醒用户要重新登录,但是也有可能直接就显示HTTP 404的错误消息。 

  2.如何做关联

  关联会用到下列的函数: 

  ●  web_reg_save_param;

  ● web_create_html_param;

  ● web_create_html_param_ex;

  其中,web_reg_save_param的语法为:

  web_reg_save_param ( "Parameter Name" , < list of Attributes >, LAST ); 

  web_create_html_param和web_create_html_param_ex这两个函数主要是保留以兼容以前旧版本。建议使用web_reg_save_param函数。

  那么,如何找出要关联数据呢?简单地说,每一次执行时都会变动的值,就有可能需要做关联。VuGen提供两种方式帮助用户找出需要做关联的值:自动关联和手动关联。

相关阅读:

LoadRunner性能测试应用(连载二十)

LoadRunner性能测试应用(连载十九)

LoadRunner性能测试应用(连载十八)

LoadRunner性能测试应用(连载十七)

版权声明:51Testing软件测试网获电子工业出版社授权连载《LoadRunner性能测试应用》部分章节,其他个人或单位未经许可,不得对本内容复制、转载或进行镜像。51Testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号