性能測試腳本是描述單個瀏覽器向Web服務器發送的HTTP請求序列。每個性能測試工具(如IBM Rational Performance Tester, LoadRunner)所提供的測試腳本語法是不同的。測試人員利用性能測試工具可從頭手工編寫測試腳本,也可以通過錄制瀏覽器和Web服務器之間的網絡通信數據而自動形成測試腳本。
任何性能測試工具都不能保證錄制形成的性能測試腳本的正確性,測試人員應通過在單用戶下運行性能測試腳本對其正確性進行驗證。測試腳本不正確的一個重要原因就是腳本的數據關聯不正確,也就是并沒完全建立一個測試請求和前面的響應內容之間的關聯。測試腳本HTTP請求和響應之間的數據關聯是否正確的一個重要標準是單用戶運行腳本,腳本能完成期望的功能。
在完成性能測試腳本的數據關聯后,需要對腳本進行參數化,也就是把腳本中的某些請求數據替換成變量,變量的值來于一個獨立的數據文件,從而保證在多虛擬用戶運行腳本的情況下,每個虛擬用戶所提交的數據是不同的。
此外,為了測試Web應用的可靠性,還需要對請求所收到的響應進行驗證(比如驗證響應的HTTP返回碼或驗證響應的內容),便于性能測試完成后統計請求成功率。
2.3 建立性能測試負載模型
性能測試負載模型定義了測試工具如何向Web應用系統提交請求,包括向Web應用系統發送請求的虛擬用戶數,每個虛擬用戶發送請求的速度和頻率。針對前面介紹的網上購物系統的性能測試需求,在性能測試工具中定義的性能測試負載模型應包括如下信息:
虛擬用戶數:性能測試不僅僅是執行一次,而且每次執行時虛擬用戶數也不固定,因此在性能測試負載模型中定義的虛擬用戶數將在測試執行時進行設置。
虛擬用戶發送請求的思考時間和迭代次數:虛擬用戶發送請求的思考時間長短是決定Web應用系統負載量的重要因素之一,而迭代次數將決定性能測試的執行持續時間。對基于在線用戶的性能測試需求,將基于錄制腳本時記錄的思考時間,而且由于現實中不同用戶訪問系統的思考時間不同,可把思考時間設置為在一定范圍內的隨機值。對于基于吞吐量的性能測試需求,將把思考時間設置為零,此時Web應用系統的在線用戶數量將等于并發用戶數。同時,為了避免性能測試壓力的隨機性,將增加請求的迭代次數來增加測試執行持續時間,從而獲得系統在穩定壓力下的性能數據。
虛擬用戶啟動模式:在現實中,Web應用系統的用戶不太可能同時做相同的操作,因此為了讓Web應用系統所承擔的壓力隨時間均勻分布,建議虛擬用戶依次啟動,同時也避免大量用戶同時登錄造成系統阻塞。以10個虛擬用戶模擬下定單為例,可設置每個虛擬用戶間隔30秒啟動,這樣10個虛擬用戶可在5分鐘后完成啟動,并保證10個虛擬用戶不會在同一時刻下定單,從而更符合實際情況。
2.4 執行性能測試
執行性能測試是指通過多次運行性能測試負載模型,獲得系統的性能數據。在執行過程中,需利用測試工具、操作系統、系統軟件(如Web Server或DB Server)提供的資源監控手段對資源進行監控和分析,幫助發現資源瓶頸,并在系統層面進行優化。同時,還需對應用進行性能分析,幫助定位應用代碼中的性能問題,切實解決系統的性能問題。
文章來源于領測軟件測試網 http://www.kjueaiud.com/