逆天啦!一鍵執行混沌測試,服務會掛的,需要跑路嗎?線上等!

itestAndy發表於2023-04-12

一大早來公司老闆給小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最後總結一下:

如果做業務場景中的反向測試,不需要手動一個一個去執行,手動操作窮舉的方式搞資料驅動也很難搞定,如果引數複雜資料驅動檔案也不好配置。所以Codes另闢蹊徑,配置反向規則及對應的值,場景中所有介面一起來排列組合,最後排列組合去替換掉正常引數進行測試。還真別說我們有一個內部的MIS系統,一次跑了3000多個組合哈哈系統掛了,和老闆得意的打了個招呼,我趕緊跑路走人,讓研發去排查去!圖片

相關文章