效能測試技術分享:實際工作中,如何對多支交易進行混合壓測?

博為峰網校發表於2021-07-30

在實際效能測試中,我們經常會遇到對多支交易進行混合壓測的情況,此時為了在測試環境中模擬生產中交易量分佈,我們會根據生產上各交易的交易量佔比來配置壓測時各交易的使用者數,一般情況會採用以下兩種方法。加我VX:atstudy-js 回覆“測試”,進入軟體測試學習交流裙~~

設定多個執行緒組

將不同的交易放到單獨的執行緒組下,根據生產上各交易量佔比按比例設定不同執行緒組的併發使用者數量。

例如有A、B、C三支交易需要進行混合壓測,生產上ABC三支交易交易量佔比為1:2:3,則在同一個測試計劃下設定三個執行緒組,分別新增一個取樣器,三個執行緒組設定併發使用者數為1、2、3(併發使用者數按照交易佔比進行設定,實際使用者數大小參考業務實際情況),如下圖所示。

這種方法適合伺服器對以上三支交易的請求處理能力相當的情況,即各交易響應時間接近的情況,這樣才能保證最後壓測結果各交易請求數量佔比接近1:2:3。

若伺服器對以上三支交易的請求處理能力不同,有的處理快有的處理慢,即響應時間有的長有的短,差別較大時,採用以上方法時,壓測的結果就會與我們預期結果有差別。

設定一個執行緒組,使用Random函式實現

設定一個執行緒組,將不同的交易均放在該執行緒組下,使用生成隨機數Random函式與If控制器來保證各交易請求數量佔比與預期佔比一致。

例如有兩支交易AB,兩支交易生產交易量佔比為2:8,首先新增一個執行緒組,該執行緒組下新增配置元件-Random Variable,用來生成隨機數,然後設定隨機變數的名稱以及最大和最小值,如下圖所示。

之後再在該執行緒組下新增邏輯控制器-如果(If)控制器1,並填寫條件表示式,如剛剛我們所說交易AB交易量佔比為2:8,此時我們條件表示式可寫為randomnum<=2,然後在該邏輯控制器下新增取樣器A,用於傳送請求A。

同理再在該執行緒組下新增邏輯控制器-如果(If)控制器2,填寫條件表示式randomnum>2,然後在該邏輯控制器下新增取樣器B,用於傳送請求B,這樣當生成的隨機數小於等於2時,執行取樣器A,當生成的隨機數大於2時,執行取樣器B,如下圖所示。

由於生成隨機數函式能保證隨機數小於等於2與大於2的佔比為2:8,也就能保證壓測結果中取樣器A和取樣器B的請求數量佔比接近2:8。加我VX:atstudy-js 回覆“測試”,進入軟體測試學習交流裙~~

這種方法不受各交易響應時間長短的影響,無論各交易響應時間接近還是相差較大,都能使最終壓測結果中各交易的請求數量佔比接近我們之前預期結果。

我們在做混合場景壓測時可根據所測場景來選擇以上方法之一進行測試。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2784390/,如需轉載,請註明出處,否則將追究法律責任。

相關文章