一大早來公司老闆給小T安排做一個系統的業務場景穩定性測試,我一臉蒙呀,老闆解釋到:就是讓我一頓亂整,看看系統會不會掛掉,天下還有這等好事兒?哈哈,我和老闆說,我有辦法了,搞死系統可別怪我呀,老闆發話了:測試環境搞死也沒事,主要是要測試出系統的健壯性!
話是說出了口,但實際真的很容易嗎?急得小T是左右為男(難)又滿頭大漢(汗),沒辦法找到了Chatgpt一頓操作猛如虎,哈哈,Chatgpt 提供了一個介面混沌測試,大概思路是以撞庫的形式來進行測試介面,原理如下:
配置好混沌規則 ,然後以 “撞庫” 的形式排列組合,替換掉正向介面用例中的引數值去執行撞庫,瞬間完成介面健壯性測試 “撞庫時” 先單獨一個一個去換, 然後再排例組合。
好了,現在關鍵問題來了,小T不會寫這種程式碼耶(哈哈哈哈)!!!不過還有一個很牛的辦法,手動操作窮舉走起,不過看了一下介面數量:10幾個,每個引數也不算少,不窮舉,排列組合下來也很多了,小T想了一下大約需要50來個小時而已,OK,系統沒掛掉小T先掛了!
同時小T測試的不是單一介面是一個包含一系列介面的業務場景,這不上週一個講過的:《研發管理你痛過嗎?》的推文中提到過介面編排。
最後還是小C給小T支了招,瞭解一下Codes的對應功能,小T趕緊進了Codes的技術支援群,技術支援告訴小T,這個小case呀 ,介面場景編排加介面混沌測試可以一步到位 ,真是爽得不要不要的,真擔心繫統會不會一搞就掛了,先拿告訴我的方案POC一下,之前真是發愁呀,小T就一個小白,按官方給的DEMO POC下來幾分鐘完事,不信你看看POC過程。
step1:定義好介面場景中的每個介面
聽說是可以進行錄製可惜小T還不會用,先手動增加登入介面以及POC的場景中其它相關介面。
step2:設定登入介面斷言
小T覺得拖拽式的方式設定斷言蠻爽的,當然高階玩家們也可以自己編碼實現哦。
step3:編排業務場景
拖拽式編排介面為業務場景,說實在的不要太爽啦!(小T已暈)
step4:設定業務場景流轉條件
真的就像是工作流一樣,雙擊介面間的連線可以設定流轉條件,會把前一個介面的響應結果解析為一個樹狀結構,拖動樹狀結構上的節點,如下圖所示:
step5:設定好所有流轉邏輯
step6:下面是最哇塞的功能,自動推導介面間依賴拓撲
step7:配置混沌規則並在場景中應用
Codes可以配置任意多的混沌規則,小T假定場景中某個介面的引數為M,配置了N個混沌規則,執行場景中每個介面的次數 M+C ab * P aa (M和N哪個大哪個是a 另一個是B),假定場景中有X個介面那麼總執行次數就是希格碼 M+C ab * P aa
step8:執行場景檢視呼叫鏈
step9:檢視呼叫情況及混沌日誌
檢視某次正常執行情況。
(還好系統在這裡居然沒掛,30多秒裡執行了1800多次)
小T最後總結一下: