版權聲明:本文為原創文章,轉載請先聯系並標明出處
性能測試中,我們可以模擬最真實的用戶操作來建立性能模型,但是這種模擬是相對的。譬如12306網站春運開始后每一天都是高峰,這種高負載情況會持續一至兩個月。我們在測試的時候是不可能一次測試也運行這么長時間,等運行一兩個月再看結果,黃花菜都涼了。再者,我們也不可能模擬所有的用戶操作,那樣性能測試腳本的設計工作就沒有邊界了。根據80-20原則,我們應該把80%的精力放在20%最關鍵的功能上,所以我們一般都選擇其中最核心、使用頻率最高、性能敏感度最高的功能來代替系統中所有的功能操作。
像以上這兩種情況,我們要模擬用戶操作的話,就要在時間上進行壓縮、在內容上進行抽象。在壓縮抽象后,為了讓我們建立的性能負載模型能更接近所測系統在現實世界的負載模型,我們就需要使用集合點的技巧。通過集合點的處理可以實現在某一點或多個點上創建大量瞬間壓力,以達到有效功能代表全部功能,有限時間代表全部時間的效果。
除此以外,我們知道性能測試分為負載測試、壓力測試、並發測試等等類型,其中並發測試要實現並發,就也需要使用到集合點的技巧來實現所有模擬用戶的絕對並發,以此來檢驗服務器的穩定性和並發處理的正確性。這里提到的並發,是指絕對並發,即大量虛擬用戶在同一時刻一起執行某個任務。
比如某業務系統收錢的時候是通過支付寶渠道,涉及到錢嘛,總歸是小心小心再小心,在產品訂購接口里為了避免A、B倆人同時付款,最后單號一致導致的搞不清楚到底是誰付的款這種低級問題,我們就需要驗證“大量瞬間”壓力下的正確性,在HyperPacer性能測試工具中,是通過集合點來設置的。
下面介紹一下HyperPacer集合點的使用。
HyperPacer中,集合點就是同步定時器(SyncTimer),實現步驟:
1、在指定節點上,創建集合點(本例中,我們在產品訂購取樣器中創建集合點,集合點的作用域參見《HyperPacer使用技巧之思考時間》);
2、對集合點進行設置。
首先類型必須選擇“Sync”同步定時器;
參數中集結用戶數就是我們要並發的虛擬用戶數,這里設置為200;
參數中超時時間,如果設置的是0,那么200個用戶必須全都到齊才一塊干活;如果設置的是具體的數值,如上圖中的3000ms,那么只等3000ms,超過這個時間就不等了,到了的用戶一塊干活;當然,如果3000ms內,200用戶都到齊了,直接干活,不再等待。注意,3000ms只是個默認值,你可以按需修改。
在使用集合點時,需要注意的是,在關鍵業務點使用,不要動不動就上集合點,這樣既不符合仿真,也會給服務器造成不必要的壓力。
參考文章: LoadRunner技巧之集合點設置 原文出處