用于测试分布式系统的集成测试框架?

Fan*_*c23 13 ruby java tdd integration-testing

我有一个分布式系统,其组件分布在多个盒子中.他们使用tcp或多播互相交谈.每个组件互相交换消息 - 这些基本上是被序列化的数据结构.

我们有哪些集成测试框架来测试这些系统?我熟悉ruby所以基于ruby的东西肯定会有所帮助.

sfr*_*frj 5

我想有不同的方法.我尽可能地避免集成测试,但在某些时候需要使用.这只是我要做的一个建议:

  1. 使用行为驱动的方法可以清楚地定义您要测试的方案.
  2. 单元测试(不整合),到会代表模块的输出的程序.
  3. 单元测试应该使用来自其他模块的输入但是使用模拟的过程.测试当前另一个模块的逻辑.
  4. 执行冒烟测试,这种类型的测试将确保您的模块之间可以相互通信(这是一种集成测试).我认为烟雾测试只是集成测试.如果你考虑一下:为什么模块会关心其他模块做什么?(让每个部分做他们想做的事,但只关心如何与他们沟通)

我个人认为在测试方法中将对象从一个分布式模块调用到另一个分布式模块,这不是一个好习惯.是的,这将是一个集成测试,但我认为它非常容易可靠.

始终牢记测试金字塔,请记住集成测试和端到端测试可能非常昂贵.所以明智地选择何时使用它们:

在此输入图像描述

我来自Java世界,以下只是一些我认为也与该主题相关的额外信息,可能对您有意义:

  • 数据传输对象模式,有趣的是
  • RMI vs EJB vs HTTP(关于远程调用技术之间差异的一些有趣评论)
  • Spock为Java开发人员提供BDD框架.(如果您完全理解业务规则,那么测试更容易)

希望你觉得它有用.


小智 0

您可以使用 STAF/STAX,它对于客户端-服务器、SAN 等分布式测试场景具有良好的功能/服务。此外,Luxoft 还提供了一个名为 Twister 的框架。这个也很精彩。