LR 重定向

转自:http://www.51testing.com/html/22/100922-832789.html

 

  重定向是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 );来实现。
  
posted @ 2016-07-26 15:59  milkty  阅读(888)  评论(0)    收藏  举报