Loadrunner脚本开发之重定向

上一篇 / 下一篇  2013-01-23 17:21:49 / 天气: 晴朗 / 心情: 高兴 / 精华(1) / 置顶(1) / 个人分类:Test Script

     重定向是web开发中经常使用的技术,在开始本篇之前,我们先初步了解下什么是重定向? 重定向是一种特殊的页面,它提供一种运作机制,使得人们在输入该名称进入条目或者点击指向该名称的内部链接时,系统能够自动导航到重定向页面内部指定的另一相关页面中,从而實現相关页面可以以多个名称进行访问。举例来说,如果设定了一个指向“澳大利亚”的名称为“澳洲”的重定向页,任何人都可以用“澳洲”这一名称进入到澳大利亚条目中。
     重定向过程:客户浏览器发送http请求----》web服务器接受后发送302状态码响应及对应新的location给客户浏览器--》客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址----》服务器根据此请求寻找资源并发送给客户。在这里location可以重定向到任意URL,既然是浏览器重新发出了请求,则就没有什么request传递的概念了。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。重定向,其实是两次request, 第一次,客户端request   A,服务器响应,并response回来,告诉浏览器,你应该去B。这个时候IE可以看到地址变了,而且历史的回退按钮也亮了。重定向可以访问自己web应用以外的资源。在重定向的过程中,传输的信息会被丢失。(以上有关重定向资料来自互联网)

     在进行性能测试脚本开发过程中,重定向的URL是并不能通过LR录制下来的。获得URL有2个方法,第一,在脚本录制开发完毕后,回放脚本。细心的开发者会在Replay log中发现Redirecting, To location字样。其中Redirecting后面就是重定向的URL。第二,就是通过HTTP监控工具来捕获,例如:Google Chrome.

     我们关注重定向的第二个原因就是某些时候,重定向的请求并不能被LR捕获(就是录制的脚本里面并没有相关代码请求)。基于模拟真实的用户行为,我们要手动把这个重定向请求加入脚本中。这时候,通过第二种方法:监控工具(Google Chrome)。就能有效直观的捕获重定向的URL。

    通过监控工具,我们可以看到重定向请求是通过GET方法来实现的。而在LR中与之对应的是web_url( const char *StepName, const char *url, <List of Attributes>, [EXTRARES, <List of Resource Attributes>,] LAST ); 方法。

    而在某些重定向中,我们回放脚本的时候可以在Replay log中发现一些不必要的额外的请求。在实际性能测试过程中,这些额外的请求会对服务器造成不必要的性能损失,影响测试的有效性和可信性。我们就需要把这些不必要的重定向去除出脚本,可以通过:web_set_option("MaxRedirectionDepth", "0", LAST );来实现。
  
  以上关于重定向是我们在性能测试脚本开发中的通常处理方法,欢迎大家讨论。

注:LR--loadrunner, 有关Google Chrome的简单使用方法,大家可以在我上篇日志中找到

TAG:

yuna4217的个人空间 引用 删除 yuna4217   /   2017-06-13 15:35:03
5
岁月无声 引用 删除 iamfeiyu1009   /   2013-01-26 22:44:08
恩,以前貌似遇到过,录制没问题,回放pageview里就报302,也许就是这个原因导致的
引用 删除 linneiwei   /   2013-01-25 22:23:15
推荐使用国产性能测试工具kylinPET,支持自动重定向,以及支持自动请求内嵌资源,如图片。
下载地址:www.kylinpet.com
stevenremember的个人空间 引用 删除 stevenremember   /   2013-01-25 17:10:03
写的有些匆忙,没有检查好导致文章里面有处不严谨。今天看到篇资料,自己又去查了下,协议里的GET方法,在loadrunner里的int web_submit_data( const char *StepName, const char *Action, <List of Attributes>, ITEMDATA, <List of data>, [ EXTRARES, <List of Resource Attributes>,] LAST );  也支持。
详见方法属性解释:The following attributes are supported:
Method: The form submission method: POST or GET (default: POST).

自己反省下先。
stevenremember的个人空间 引用 删除 stevenremember   /   2013-01-24 15:19:43
补充一点,有次做完脚本后,参数化关联什么的都做了,回放脚本就是不通过,最后发现中间有个步骤出现了重定向。把重定向加入脚本里面后,脚本就好了。
 

评分:0

我来说两句

Open Toolbar