壓測情境配置完成後,您可以通過調試情境驗證配置是否合理,避免壓測失敗。本文介紹如何調試PTS和JMeter情境。
前提條件
已建立PTS或JMeter情境。具體操作,請參見建立PTS情境或建立JMeter情境。
操作步驟
-
登入PTS控制台,選擇效能測試 - 情境列表。
-
在目標情境的操作列下單擊編輯,進入编辑场景頁面。然後單擊调试场景,進行全情境調試。
在調試過程中可以單擊右上方的
表徵圖來已最小化的視窗,在右下角以懸浮視窗隨時關注調試狀態。再次單擊懸浮視窗,可切換回情境調試對話方塊。 -
在調試結果中可以查看所有鏈路的請求日誌。單擊某個API,可以查看該API的調試詳情。
若您只需對單個API進行調試,您還可以在情境配置頁面,單擊單個API右側的调试API,查看單個API的調試結果。
重要暫不支援對VPC內網的單個API進行調試,針對VPC內網的調試您可以選擇單擊调试场景進行全情境調試。
PTS情境調試介面說明
PTS 情境調試介面左側為串列執行列表,展示各 API 的執行狀態(綠色圓點表示成功,紅色圓點表示異常)。若宣告失敗,介面會提示"宣告失敗,故後續請求不再發送"。右側 General 地區顯示 Request URL、Request Method、Response Code、Export Content 及 Check Result JSON 等資訊。下方提供 請求詳情、響應詳情、Timing 三個 Tab 頁簽,響應詳情 中可展開查看檢查點資訊、Response Header、Response Body 及 Error 資訊。當請求異常時,Error 資訊地區會顯示具體異常內容,例如 IllegalArgumentException: forbidden uri, uri host must match vpc cidr pattern 10.0.0.0/8, 172.16.0.0/12,表示請求 URI 的 host 必須匹配指定的 VPC CIDR 網段。
-
斷言判斷
叉表徵圖表示異常。選中該API後,即可在右側查看響應詳情。
-
響應狀態
可能顯示一個狀態代碼(200、302、403、503、500等)或異常字樣。若顯示異常,則表示未收到Response,可能是因為請求逾時,或因為請求的URL(含Body)有錯誤,例如函數無法識別、URL不規範等。
說明每條調試的API均可查看到請求與響應詳情。針對上述異常現象,可以從以下方面排查:
-
若響應狀態為異常,請在右側响应详情標籤頁的Error資訊地區查看異常資訊。例如,異常原因為非法參數(系統函數使用不合法)。
-
若響應狀態為除200以外的狀態代碼,請查看具體返回資訊,並結合伺服器上的日誌進行常規排查。
-
若斷言出現異常,請在右側响应详情頁簽的检查点信息地區查看斷言資訊。若當前值為空白,則表示未擷取到出參值。
-
-
Error 資訊
可顯示異常響應詳情,例如逾時、參數錯誤、串連拒絕等。
-
Timing為請求在核心的生命週期內的耗時詳情。
調試中的異常資訊可結合Timing瀑布模型查看,各種報錯都可以體現在Timing瀑布模型中。
例如情境配置開啟了302跳轉,您需要查看壓測是否跳轉以及跳轉的具體路徑,可以結合Timing瀑布流查看。
-
出參運算式測試入口
當您需要基於請求的響應詳情提取特定字串時(一般是文本類型的響應體),可在調試視窗中測試Regex是否正確,可按需重新設定出參。
說明由於Application/JSON和TEXT/JSON兩種類型的JSON格式解析比較簡單,暫不提供相關功能。
-
在情境調試對話方塊的右側,選中某條API,單擊点此去测试出参正则表达式。
-
在測試出參正則對話方塊,選擇來源格式,填寫Regex,指定為第幾個匹配項。單擊测试表达式。通過響應詳情匹配結果,預判提取的內容是否符合預期。
-
若需重新設定出參,則單擊同步出参配置,將此Regex同步到該API的出參列表中。
說明情境調試結束後,如有同步的出參,需返回壓測情境配置頁簽,在對應的API出参定义頁簽下,設定出參名。
-
Jmeter情境調試介面說明
右側引擎日誌面板展示JMeter引擎開機記錄,包括版本號碼、JDK版本、作業系統、最大記憶體及可用處理器數等運行環境資訊。右下角為架構拓撲地區,用於展示架構拓撲資料。
單擊Sampler,即可在採樣日誌地區查看請求和響應的詳情以及Timing瀑布流。
-
採樣日誌:
-
General頁簽中展示了請求URL、要求方法以及請求狀態代碼。
-
請求詳情頁簽中展示了請求Headers和Body值以及請求的原始報文。
-
响应详情頁簽中展示了響應Headers和Body值以及響應的原始報文。
-
Timing頁簽中展示了各介面的耗時資訊。
-
-
引擎日誌地區展示了JMeter的作業記錄。如果指令碼調試後沒有採樣日誌輸出,您可以根據引擎日誌中的報錯資訊進一步分析並處理問題。常見報錯及原因,請參見常見報錯。