天天看點

平台搭建_異常測試平台搭建方案

作者|陳俊華、劉琳琳

異常測試是有别于功能測試和性能測試的一種測試類型,通過異常測試,可以發現由系統異常、依賴服務異常、應用本身異常等原因引起的問題,提高系統的穩定性。

目 的

在日常測試中,由于排期緊張以及異常情況難以模拟,異常測試通常被大家忽略或者放棄。隻要功能沒問題,就可以上線。但是線上情況千奇百怪,伺服器當機、使用者走到代碼的犄角旮旯、三方服務挂掉等情況無可避免,是以對于系統的健壯性和穩定性,異常測試不可或缺,但異常測試往往是通過讓研發預留bug、注釋代碼、到測試機上殺死服務等方法進行,代價較大,且有可能帶着bug上線。異常測試平台搭建的目的就是降低異常測試的門檻。

工具選型

目前異常測試工具有很多,比如模拟網絡異常的tc(Traffic Control)、netem和iptables,模拟代碼注入故障的jvm-sandbox,以及在生産環境随機模拟故障的Chao Monkey架構,經過了多次調研,秉持着“拿來主義”的原則,最終采用了“集大成”的chaosblade。chaosblade提供了cpu、磁盤、記憶體、網絡、jvm等異常的注入功能。chaosblade的jvm異常注入能力是基于jvm-sandbox,提供了無侵入運作aop的能力,使用起來比jvm-sandbox更加簡單。同時,它還提供了server模式,可以暴露web服務,上層可以通過http進行調用。

方 案

将chaosblade服務在目标伺服器上啟動,然後springboot服務進行調用,springboot再對chaosblade進行一次封裝(沒有什麼是通過一次封裝解決不了的,如果有,那就兩次),簡化chaosblade的使用和對資料進行存儲,以及一些針對我司的個性化需求,再通過前端,将參數界面化,通過一些簡單的填寫,就可以進行相應的異常注入。

平台搭建_異常測試平台搭建方案

後端實作

平台搭建_異常測試平台搭建方案

遇到無法編譯的lib包解決辦法:

git上下載下傳chaosblade-exec-jvm源碼,在查找需要編譯的類那裡将無法打開的lib包直接跳過即可。

平台搭建_異常測試平台搭建方案

前端頁面

CPU滿載場景 ,在ip的輸入框,輸入指定的IP 位址,IP的CPU負載會達到100% 。使用者要有該機器的權限才可以操作。

平台搭建_異常測試平台搭建方案

解除滿載的操作   操作記錄 清單 --->點選詳情 進入詳情頁面 ;

點選解除故障按鈕 ,cpu負載恢複到之前狀态

平台搭建_異常測試平台搭建方案

自定義方法傳回值 

填寫方法的服務名、包名、全路徑類名、方法名,傳回值的json格式。

日志擷取傳回值資訊,然後轉成json格式,放入到輸入框中,該類型的異常注入時間在10s左右,請耐心等待。解除異常與上邊操作一緻

平台搭建_異常測試平台搭建方案

未來預期

  1. 首次注入時間通常在15s以上,前端表現為接口逾時,後續可以修改逾時時間,提高使用者體驗
  2. 将前端的很多輸入框修改為選擇項,進一步提高效率
  3. 加入重試和編輯功能
  4. 提供動态mock能力

往期精彩回顧

異常場景測試

轉轉App代碼覆寫率方案

測試環境問題排查的那些事兒

廣告召回自動化測試之路

場景接口測試平台搭建實踐

轉轉釋出系統問題排查實戰

業務場景抽離,助力測試提效

工具嘗鮮--單元測試自動生成工具 evosuite

輔助型QA轉型之路

Matrix-ApkChecker的實際應用

一名測試實習生的心路曆程

轉轉直播測試揭秘

App測試,安裝包走過的一生

RPC服務接口測試自動化初探

H5頁面多端相容測試與監控

移動端自動化測試-遠端裝置排程

電商業務測試方案與實戰落地(轉轉)

IOS遠端真機控制實踐

Java位元組碼增強技術介紹

平台搭建_異常測試平台搭建方案

繼續閱讀