基于Rational 的B/S 架構軟件自動化測試研究[6] 軟件測試
4.2.2 實施測試計劃
建立測試項目后,考慮到對于B/S 架構的高校BBS 系統,性能測試是最重要的測試部分,本實驗使用Rational 性能測試工具Rational Performance Tester(簡稱RPT)對其進行性能測試,我們期望BBS系統在多個用戶并發訪問時的頁面平均響應時間和服務器吞吐量等指標在可以承受的范圍之內。
在開始B/S系統性能測試之前,先介紹幾個相關概念:“負載測試”是為了測量Web 系統在某一負載級別上的性能,以保證Web 系統在需求范圍內能正常工作[9]?!疤摂M用戶”是模擬瀏覽器向Web 服務器發送請求并接收響應的一個進程或線程。
“響應時間”就是瀏覽器向Web 服務器提交一個請求到收到響應之間的間隔時間,它反映了站點中每個完整頁面(包括所有內嵌對象,JavaScript 文件,CSS 等) 下載到終端用戶所花費的時間?!巴掏铝俊?是單位時間內Web 服務器成功處理的HTTP 頁面或HTTP 請求數量?!绊撁鎳L試”指一個請求被發出。
“命中”是服務器收到請求并返回響應?!八伎紩r間”是瀏覽器在收到響應后到提交下一個請求之間的間隔時間?!安l用戶數”指Web 服務器在一段時間內為處理瀏覽器請求而建立的HTTP 連接數或生成的處理線程數。當所有在線用戶發送HTTP 請求的思考時間為零時,Web 服務器的并發用戶數等于在線用戶數。
另外與一個性能測試的相關概念“響應時間標準偏差”主要用于衡量某操作過程中系統的穩定性情況。介紹完以上概念,開始使用RPT建立性能測試項目,錄制測試腳本并創建性能調度WebResponse。通過調度搭建測試場景,可以創建和設置不同用戶組并分配其所占比重,實現不同角色的模擬訪問,重復操作并模擬真實環境中的用戶在進行不同業務操作時可能存在的思考和等待時間。
在本次實驗中,按照70%和30%的比例分配正式用戶和匿名訪問游客,并根據實際可能情況設置不同用戶循環重復操作的次數,運行RPT,使用RPT 模擬200 個虛擬用戶訪問BBS 在線系統,加入頁面驗證點和搜索功能,然后自動執行腳本以進行自動化測試。
4.2.3 實驗結果分析
實驗完成結果顯示,在高校BBS 系統現有1000 個真實在線用戶的基礎上,利用APT 對系統增加200 個虛擬用戶負載,此時得到的高校BBS 系統所有頁面性能指標的總體情況??梢钥闯?,隨著BBS 系統頁面的不斷更新,頁面VP 的通過率僅有75.5%,但是,在用戶訪問總數達到1200 人的情況下,
高校BBS 系統所有頁面的平均響應時間為3423 毫秒,是在可以接受的范圍內,且用戶操作的感覺良好。自動化性能測試完成后,RPT 將每個頁面的測試內容列出以方便查看,展開各個頁面,可以看到各個具體測試元素的詳細信息,包括服務器、URL、數據、請求頭、服務器的響應和延遲情況等。
根據本次實驗所得的RPT 性能報告查看各個頁面的性能狀況。本次實驗表明,所有隨機測試頁面的平均響應時間均在3s 內,大多數的頁面的最大響應時間也在5s 范圍之內,其中搜索和登錄頁面的平均響應時間在1s 之內,都是用戶可以接受的。
本實驗使用“遞增加載”型的負載測試模型,即逐漸增加虛擬用戶數量,平均每幾秒增加一些新用戶,交錯上升,這種負載方式也稱為“ramp-up”模式。借助這種負載方式的加載,可以很容易發現系統性能的拐點,也就是其性能瓶頸的所在。
由于通過虛擬用戶負載曲線可以很容易地找到某個時刻已完成的虛擬用戶加載數,所以一旦系統性能出現拐點,即可馬上查到出現拐點時的在線虛擬用戶總數,以進行標示改進。通過RPT 性能報告不僅可以很方便查看B/S 系統的整體頁面平均響應時間,找出比較慢的若干頁面進行及時改進,
另外還可以得到所有頁面和服務器的實時吞吐量狀況,各頁面響應時間對比曲線,單頁面命中率情況及其用戶負載圖等一系列性能狀況數據,由于篇幅,這些數據不再逐一羅列說明。
5 結束語
本次實驗實現了B/S架構下應用系統的自動化性能測試,首先通過使用Rational 系列工具建立和配置了測試環境,然后多次運行性能測試負載模型,錄制腳本自動執行以獲得一系列B/S 系統性能測試數據,最后根據性能測試報告分析了系統的實時性能狀況并找到了系統的性能瓶頸。
另外,若使用Rational 實現B/S 架構下應用軟件的自動化功能測試,還可以啟用驗證點和數據池技術?!膀炞C點”技術是通過比較控件的基準值與回放腳本時的值來判斷程序是否按照預期的設想在執行,而使用數據池技術可以優化數據庫的連接和管理,作為下一步的研究方向,
將利用Rational Functional Tester(RFT)對B/S 軟件實施自動化功能測試,分析功測試結果與測試效率,并著重關注系統安全性測試、成熟性測試等方面研究[11]。近年來,隨著人們對B/S 架構軟件質量要求的不斷提高,傳統軟件測試已經無法滿足現實系統的需求,
使用Rational 可以比較方便地實現B/S 軟件下的自動化測試,從而大大地提高測試效率。相信隨著時間的推移,自動化測試技術一定會得到切實的發展,軟件實施自動化的測試程度也會越來越高。