在VU脚本中使用HTTP连接

发表于:2008-06-16来源:作者:点击数: 标签:httpHTTPHttp脚本
关键字:VU 脚本 HTTP 连接学习IBMRational Robot VU脚本是如何处理HTTP连接的。本文讨论了在编辑VU(虚拟用户)脚本时需要牢记的一些重要的注意事项,以防止出现HTTP连接漏洞和避免每一个虚拟用户占用较大的内存空间。本文还描述了如何权衡是否在VU脚本中保
关键字:VU 脚本 HTTP 连接    学习 IBM Rational Robot VU 脚本是如何处理 HTTP 连接的。本文讨论了在编辑 VU(虚拟用户)脚本时需要牢记的一些重要的注意事项,以防止出现 HTTP 连接漏洞和避免每一个虚拟用户占用较大的内存空间。本文还描述了如何权衡是否在 VU 脚本中保留打开的 HTTP 连接。

介绍

IBM® Rational® Robot提供了两种录制脚本的机制:

GUI 模式:用于功能自动化的 SQA basic 脚本 
VU 模式: 用于性能自动化的 VU 脚本 
在这里,我们的重点是如何处理 Rational Robot VU 脚本中的HTTP连接。

Rational Robot VU 脚本

    当你录制客户端或服务器的会话时,Rational Robot会产生一个虚拟用户(VU)脚本。你要么将产生的这个脚本进行回放,要么以某种特定的方式编辑这个脚本使它更好地适应你的需求。比如,你可以为主机服务器的名字定义参数,这样你也可以将同样的脚本应用到若干台主机上。在VU录制过程中,Rational Robot监控客户端/服务器的对话,并将原始的会话内容转换成一系列VU指令,储存到产生的脚本中。所有客户端的请求都被转换成一系列VU指令,因此,在网页上只需点一下鼠标就可以产生数千行VU代码。这使对它的理解以及随后对VU脚本编辑的过程变得更加复杂。

    在接下来的例子中,我们将获得一个典型的请求/回复HTTP信息互换,然后我们将它与用Rational Robot产生的脚本联系起来。通常情况下,一个网站有一个服务器程序来监听TCP的80端口中(或者其它端口)来自客户端的连接请求。比如,在你的浏览器中输入 一个到 http://www.ibm.com/rational.html 页面的请求,接下来发生在屏幕之后事件的顺序如下:

浏览器解析这个输入的地址。 
浏览器向DNS寻找这个主机的IP地址(在这个例子中是www.ibm.com)。 
DNS回复主机的IP地址。 
浏览器利用返回的IP地址与Web服务器的端口80构成一个TCP连接。 
浏览器为发起一个HTTP标题(header)的请求,接下来就是URL的文档。这个请求利用了一个get命令来向服务器请求一个回复,从而得到rational.html文件。 
服务器回复时在HTTP标题中带有HTTP代码(如果没有错误发生的话,这个代码是 200),它后面紧跟着就是被请求的 HTML 文档。 
释放TCP连接。 
浏览器解析HTML并展现网页。 
对于接收到的任何一个内嵌在HTML里的请求 —— 对于静态的内容,比如GIF、CSS 或者JS文件 ―― 浏览器都会建立一个新的到服务器的TCP连接,并以类似的方式重新找回文档。 
因此,网页中的每个内嵌图片都意味着必须有一个单独的TCP连接,并且重复着同样的过程。既然你明白了这个基本概念,Rational Robot 脚本中产生的冗长的VU代码勿庸置疑是有意义的。

Rational Robot VU 脚本是由代表这些步骤的重复代码块组合起来的。这些代码模块都独立的由客户程序执行 HTTP get 和 post 请求来建立TCP连接。图1 是被录制 Rational Robot VU脚本的样子:


图1. Rational Robot VU 脚本


VU 脚本如何影响 HTTP 连接

下面是这些步骤是如何与Rational Robot产生的相应的VU脚本代码语句进行关联的:

www_ibm_com = http_request ["Rational~001"] "www.ibm.com:80" 
TCP与www_ibm_com的连接是激活的,这样打开一个从客户机器到HTTP服务器的网络套接字来发送http_request "Rational~001"。

Set Server_connection = www_ibm_com; 
连接是与响应变量 Server_connection 关联在一起的。

http_header_recv ["Rational~002"] 200; /* OK */ 

原文转自:http://www.ltesting.net