本文主要通過圖例介紹常見的壓測場景內的邏輯結構關系,并說明數據在壓測中是如何分配的。
基本概念
壓測API:指由用戶行為觸發的一條端上請求,是壓測中的必需元素。
串聯鏈路:指一組壓測API的有序集合(類似于事務),具有業務含義。
關聯數據文件:壓測API使用了來自數據文件的參數,從而關聯了相應的數據文件。如果使用了多個文件參數分別來自于不同數據文件則表示關聯了多個數據文件。
數據配置節點:如果串聯鏈路中任意API需要使用文件參數,或將文件參數進行二次定義(如MD5編碼等)再使用的,需要通過數據配置節點預先設置/定義后,方可在API中使用
數據導出指令:用于導出某個串聯鏈路中的數據(導出Cookie為典型應用),供其他串聯鏈路使用,實現導出數據的全局共享。
檢查點(斷言):一般用于標記業務成功與否,從而驗證壓測請求的響應是否符合預期。
數據輪詢一次:使用文件參數時,數據文件只輪詢一次,以保證請求信息不重復。
出參:在創建串聯鏈路時,將前置接口的部分返回信息作為參數。
常見的壓測場景結構和數據分配規則
具體請參考下圖:
圖例說明如下:
- 串聯鏈路1和串聯鏈路2是并行關系。
- 串聯鏈路類似于一個事務,串聯鏈路內的所有壓測API,嚴格遵循先后順序。當前API的請求發起依賴前置API的請求處理完成或者超時異常。說明 后面的API最終發送的請求次數會少于前面API的,因為壓測停止的時候總有一些請求還在串聯鏈路的中間環節(API)上沒有全部完成。
- 串聯鏈路內,所有API使用到的文件參數,需要配置數據配置節點后才能使用,請參見添加數據配置節點。
- 串聯鏈路1中API 1使用了文件2的一個參數(源文件200行),API 2使用了文件3的一個參數(源文件1000行的),API 3使用了文件2的一個參數(源文件200行)及文件1的一個參數(源文件100行),未指定基準文件時,會根據最少的文件1(即100行)參數組合。截取文件2、文件3的前100行進行組裝并重復循環。
- 若某參數勾選了數據輪詢一次,即指定該參數為基準。組裝后的行數為它的源文件行數。使用完組合構造數據構造的請求數之后,將不再壓測該API,當前串聯鏈路也將整體停止壓測。
- 設置了檢查點(斷言)的情況下,如果當前請求斷言失敗,那么后置的API或者指令將不再執行(僅針對本次順序執行過程),斷言成功的沒有影響。
依賴登錄的壓測場景結構
下圖中串聯鏈路1的API 1是登錄業務相關接口,其典型配置如下:
圖例說明如下:
- 數據導出指令一般應用于登錄之后需要并行壓測多個不同業務串聯鏈路的情況,支持標準的Cookie導出或者是業務自定義的出參導出,目前支持最多導出5個參數,每個參數的量級均為設置值。
- 串聯鏈路1使用了數據導出指令,數據導出完成后其它串聯鏈路才能開始壓測,所以與其他串聯鏈路不是并行的關系。說明 只有使用了數據導出指令,才會出現串聯鏈路之間不是全都并行的情況。
- 為保證用戶登錄信息不重復,需在壓測API對應的數據配置中為某參數設置數據輪詢一次。本示例中串聯鏈路1中的參數設置了數據只輪詢一次。
- 一批用戶登錄完成后,將用戶登錄信息共享給場景內其它業務的串聯鏈路使用,需設置數據導出的導出量級。達到該量級才會觸發場景內剩余串聯鏈路進行壓測。
- 準備量級需要小于等于登錄接口的文件行數。例如上述示例中關聯數據文件為200行,導出量級設置為100。說明 若出現量級不滿(如部分施壓機壓測過程中異常掉線)的情況,為不影響繼續壓測,請單擊壓測中的頁面下方的釋放全局準備,即可繼續執行其它串聯鏈路的壓測。
文檔內容是否對您有幫助?