在市場需求的推動下 , Web 應用如今已經從一般的網站發展成為大型電子商務、信息發布和提供各種服務的平臺 , 軟件規模不斷擴大 , 軟件復雜性不斷增加 , 但是激烈的商業競爭使軟件開發周期縮短 , 如何保證 Web 應用的正確性和可靠性越來越成為人們關注的問題。作為保證軟件質量和可靠性的重要手段 ,Web 應用軟件的測試就成為如今開發過程中的一個重要環節。本文將介紹一款開源的 Web 性能測試軟件— OpenSTA,OpenSTA 是專用于 B/S 結構的、免費的性能測試工具。它的優點除了免費、源代碼開放等優點外,還能對錄制的測試腳本進行分析,并且按指定的語法進行編輯。通過實際的應用實例證 明,OpenSTA 具有較為廣闊的應用前景。
概述
隨著 Web 應用技術的發展和 Web 應用程序的迅速普及,Web 系統的性能和服務質量顯得越來越重要。性能測試在軟件的質量保證中起著越來越重要的作用。性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載 條件來對系統的各項性能指標進行測試。性能測試是一種信息的收集和分析的過程,測試過程中通過收集的數據用來預測怎樣的負載水平將耗盡系統資源。性能測試 保證程序具有良好的性能,它考察在不同的用戶負載下,Web 對用戶請求做出的相應情況,以確保將來系統運行的安全性、可靠性和執行效率。性能測試的主要目的是為維護系統的性能找到有效地改善策略。
OpenSTA 是一個免費的、開源的的 web 性能測試工具。OpenSTA 是專用于 B/S 結構的、免費的性能測試工具。它的優點除了免費、源代碼開放等優點外,還能對錄制的測試腳本進行分析,并且按指定的語法進行編輯。軟件測試工程師在錄制完 測試腳本后,只需要了解該腳本語言的特定語法知識,就可以對測試腳本進行編輯,以便于再次執行性能測試時獲得所需要的參數,而后進行特定的性能指標分析。 OpenSTA 以最簡單的方式讓大家對性能測試的原理有較深的了解,其較為豐富的圖形化測試結果大大提高了測試報告的可閱讀性。
OpenSTA 的安裝及配置
為了能夠更為詳實的說明 OpenSTA 的應用過程,本節下面主要介紹 OpenSTA 的安裝及配置過程,使測試人員能夠更為快捷便利地使用 OpenSTA 進行性能測試的工作,能夠更加方便的應用 OpenSTA 的各項功能。
下載軟件安裝包,OpenSTA 官方網站提供了基于 windows 系統的各種安裝包,用戶可以根據需要進行下載安裝。 OpenSTA 安裝包下載地址:http://www.opensta.org/download.html
雙擊下載的安裝包進行安裝。
圖 1. OpenSTA 安裝界面
圖 2. OpenSTA 操作界面
OpenSTA 測試的組成
OpenSTA 測試
OpenSTA 測試是一組用戶控制的定義,其中包括腳本、性能指標收集器還有用于運行測試的參數。測試運行會生成由圖形或者表格顯示的結果。腳本和性能指標收集器是測試 的構建模塊??梢员辉S多不同的測試所引用。腳本決定了測試的內容,指標收集器則定義了測試運行期間將被收集的數據。添加到測試中的腳本和性能指標收集器會 被放在測試任務組中。通過對每個測試任務組采用不同的設置來控制測試的運行以及目標 WAE 的負載水平。測試任務組的設置包括虛擬用戶的數量、所使用的主機數目和一次測試運行腳本的回放次數。性能測試的開發首先需要對結構和內容進行規劃。然后按 序創建測試所需要的腳本和性能指標收集器。
OpenSTA 腳本
腳本構成了 HTTP/S性能測試的內容,記錄了用戶通過瀏覽器向目標網絡應用環境(WAE)發出的請 求。腳本是通過代理服務器或者 Gateway 傳輸 HTTP/S 通信,使用 SCL(腳本控制語言)命令取代原來的 HTTP/S 命令生成的。腳本建模器根據 Web 會話期間的 HTTP/S 通信來創建腳本,使用 SCL 語言記錄了 HTTP/S 活動。當測試開始運行,該腳本就會回放所有原始請求。這意味著目標 Web 應用環境(WAE)將接收來自模擬瀏覽器用戶,或虛擬用戶的并發,異步連接和請求,就如同真實的終端用戶一樣。使用 SCL 編寫腳本,可以對內容進行控制。通過引入變量來取代腳本錄制生成的固定值,可以在指定的負荷水平上測試 Web 活動,從而使性能測試更為靈活有效。
腳本的錄制,會產生一個 .HTP 文件和一個 .ALL 文件。.HTP 文件包含了在 SCL 編寫過程中,Web 會話期間發出的所有 HTTP/S 瀏覽器請求。這個文件就是腳本,它會作為 Web 性能測試的一部分被建模和回放。而 .ALL 文件則將 WAE 響應保存在不同分類下,包括可以被用來對附屬腳本進行建模的 DOM。所有的腳本都保存在存儲庫中,可以被不同的測試所引用。
OpenSTA Gateway
Gateway 是 OpenSTA 的一個組件,它與腳本建模器直接對接,記錄 HTTP/S 通信,并創建腳本。它相當于一個代理服務器,位于客戶端瀏覽器和承載了 WAE 環境的遠程 Web 服務器之間。當你開始使用腳本建模器進行錄制,Gateway 會覆蓋瀏覽器的一些 Internet 連接設置,強迫使用代理服務器,在這里特指的就是 Gateway。Gateway 可以記錄瀏覽器和 WAE 之間的網絡活動,并產生一個 SCL 語言描述的腳本。 Gateway 將所有的瀏覽器請求存儲在 HTP 文件中,WAE 對瀏覽器請求的響應則存儲在 .ALL 文件中。.ALL 文件包含的 HTML 數據與 .HTP 文件中的內容有著直接聯系。通過對 .ALL 文件的信息進行處理,可以實現腳本的建模。
OpenSTA 腳本和 SCL
SCL 是用于控制和記錄 HTTP/S 通信的腳本控制語言。使用的 SCL 編寫腳本,給開發切合實際的性能測試提供了建模能力。當你運行一個測試的時候,為了給一個或者多個目標 WAE 環境提供足夠的負載,你可以編寫一個腳本或者一個腳本序列,來模擬成千上萬的虛擬用戶。