在VU腳本中使用HTTP連接
關鍵字: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.anti-gravitydesign.com