會員
解釋:100個會員,有一半是進行買書流程的,還有一半是進入賬號進行信息維護和查看訂單狀態。
管理員
解釋:管理員操作都需要從登錄管理頁面開始,操作最多的是查看訂單狀態(50%),其中有一半的訂單需要修改,增加書目和取消訂單都占25%。
供應商
解釋:供應商也需要從管理員頁面登錄。供應商用戶只能進行查看報表操作,可以選擇多種不同類型的報表進行統計,平均每個用戶需要查看3種報表。
確定了各個用戶角色的模型后,再根據各用戶所占的比例,合并成整體用戶群的使用模型。
解釋:從整體考慮,新用戶占 20%,會員70%,管理員4%,供應商6%。不同類型的用戶通過不同顏色來標識,所有的用戶都需要從主頁開始訪問系統。此模型反應了系統的整體使用情況,也即測試場景需要模擬的壓力。而測試場景中具體要執行的測試腳本,則主要根據各類型用戶各自的用戶模型來開發。
在繪制出模型圖后仍然需要不斷的同技術人員、業務人員溝通討論,找出模型中不合理或者遺漏之處,并逐步完善,直到共同確認。甚至是測試結束后,也需要根據系統實際運行環境來不斷調整,為后續的測試提供更準確的模型。
但只依靠模型圖仍然不能有效的對壓力進行描述,可以發現前文提到的種種基礎數據信息目前還未得到使用,如用戶操作的間隔時間、頁面上需要輸入的數據等等。沒有模型,這些數據是缺少實用意義的;沒有數據,模型圖也無法得到應用。
基礎數據分析
以下圖表均取自互聯網,本文是在“已經獲取所需數據”的前提下,講解性能測試的一些設計思路。至于如何才能取得這些數據,將在后續的文章中說明。
系統訪問量分布
由系統的日訪問量分布圖,可知系統的訪問壓力集中在哪個時間段內。系統的壓力是在一天中平均分布的,還是集中在某幾個更小的時間段內。根據此信息,我們對測試場景的時間進行設計,如從分布圖中明顯看出每天的大部分訪問量集中在9:00~11:00和14:00~16:00兩個時段,那么就可以設計2小時內完成一半訪問量的測試場景。
用戶的平均活躍時間
用戶活躍時間,是指用戶一次使用系統的時長,可用來指導測試腳本的設計,即每個虛擬用戶腳本應該在多長時間內執行完。
由系統訪問量分布和用戶活躍時間兩個數據,可以對系統使用的并發度進行估算。比如已知系統在2個小時內有200訪問量,且分布接近于平均,用戶的平均活躍時間為30分鐘,那么此時間段的并發度應為:200*30/120=50。這里并發度50傳遞的信息是,在一個用戶活躍周期內,總共會有50個用戶與服務端進行交互(即相對并發)。也就是說任意時間點,最大的絕對并發可能性是50,當然實際可能遠低于此,可以根據業務特點再乘以相應比例進行估算。
在性能測試時,可以依據此數據設計系統高峰期壓力的測試場景。比如我們已知,系統壓力最大時,單位時間段內活躍用戶有100人(并發度100),那么這種壓力場景,就可以以用戶平均活躍時間為測試時間段,啟動100個虛擬用戶并在該時間段內完成各自的工作量。
頁面停留時間
即請求之間的間隔(思考)時間,如在編輯頁面上停留多久才會點提交按鈕。如果無此數據,性能測試腳本只有運行時長是有數據(活躍時間)支撐的,腳本中的各請求之間的思考時間,只能通過常規判斷和猜測,由性能測試人員自己掌控。收集到此數據后,性能測試腳本會更加符合真實用戶的操作習慣,更加接近真實用戶。
原文轉自:http://www.uml.org.cn/Test/201306041.asp