簡體   English   中英

用於測試分布式系統的集成測試框架?

[英]Integration testing frameworks for testing a distributed system?

我有一個分布式系統,其組件分布在多個盒子中。 他們使用tcp或多播互相交談。 每個組件互相交換消息 - 這些基本上是被序列化的數據結構。

我們有哪些集成測試框架來測試這些系統? 我熟悉ruby所以基於ruby的東西肯定會有所幫助。

我想有不同的方法。 我盡可能地避免集成測試,但在某些時候需要使用。 這只是我要做的一個建議:

  1. 使用行為驅動的方法可以清楚地定義您要測試的方案。
  2. 對表示模塊輸出的過程進行單元測試 (無積分 )。
  3. 單元測試應該使用來自其他模塊的輸入但是使用模擬的過程 測試當前另一個模塊的邏輯。
  4. 執行冒煙測試 ,這種類型的測試將確保您的模塊之間可以相互通信(這是一種集成測試)。 我認為煙霧測試只是集成測試。 如果你考慮一下:為什么模塊會關心其他模塊做什么?(讓每個部分做他們想做的事,但只關心如何與他們溝通)

我個人認為在測試方法中將對象從一個分布式模塊調用到另一個分布式模塊,這不是一個好習慣。 是的,這將是一個集成測試,但我認為它非常容易可靠。

始終牢記測試金字塔,請記住集成測試和端到端測試可能非常昂貴。 所以明智地選擇何時使用它們:

在此輸入圖像描述

我來自Java世界,以下是一些我認為也與該主題相關的額外信息,可能對您有意義:

  • 數據傳輸對象模式很有趣
  • RMI vs EJB vs HTTP (關於遠程調用技術之間差異的一些有趣評論)
  • Spock為Java開發人員提供BDD框架。(如果您完全理解業務規則,那么測試更容易)

希望你覺得它有用。

你可以結賬Zopkio: https//github.com/linkedin/Zopkio 它是分布式系統功能和性能測試的開源框架。

您可以使用STAF / STAX,它具有良好的功能/服務,可用於分布式測試場景,如Client-Server,SAN等。此外,還有一個名為Twister的框架由Luxoft提供。 這個也很精彩。

我將用我用Java編寫的分布式系統來解決我們的問題。 我們有多個linux守護進程,它們實際上是圍繞java程序的包裝器,它們主要通過數據庫相互通信。 所以他們不會來回發送序列化的消息。 我們使用dbunit和spring-test進行集成測試。 使用dbunit,您基本上可以加載數據,運行受測系統(SUT),然后驗證數據庫是否處於正確狀態。 spring-test使基於spring的應用程序可以輕松地在測試時加載應用程序上下文。

如果您沒有基於Java的應用程序,那么這可能沒那么有用。 框架選擇在很大程度上取決於您的技術選擇和架構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM