推ter開源Diffy 通過比較響應結果來判斷服務Bug

jopen 9年前發布 | 3K 次閱讀 Diffy

英文原文:推ter Diffy Spots Bugs in Services by Comparing the Responses

近日,推ter 開源了 Diffy,這是一個自動化測試工具,可用在生產環境中,旨在探測運行在 Apache Thrift 與其他 HTTP 服務器上的新代碼所產生的潛在 Bug

Diffy 不像預定義了每個部分代碼有著獨立的測試集合的單元測試工具,Diffy 更像一個函數式測試工具,它針對整體 web 服務。Diffy 充當代理接收 HTTP 請求,再把請求分發給兩套服務,一個良好運行的,另一個是有潛在問題的。然后 Diffy 收集兩者的響應作對比,給出代碼的回歸測試集。

很顯然,有很多可能導致兩套服務一定會有微小的差異,包括不同的時間戳、調用隨機值生成器或者其他原因。為了避免這些差異引出的誤報,Diffy 運行了三套服務:兩套運行著完全相同的正常版本的代碼,另一套運行著全新的代碼。除了不確定的噪音(時間戳、隨機值等),兩臺相同實例的響應應該也是完全相同的。當和備用機比較響應的時候,這些不確定的噪音是要忽略的。經過對比找到噪音為何并排除其影響是避免誤報的關鍵。

安全起見,Diffy 默認忽略 POST、PUT 和 DELETE 操作,但是他們也可以被啟用。

Diffy 用 Scala 編寫而成,基于 Apache 2.0 協議開源,托管在 GitHub

來自: InfoQ
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!