首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么工具来测试复杂的多进程系统?

什么工具来测试复杂的多进程系统?
EN

Stack Overflow用户
提问于 2013-04-29 10:42:51
回答 4查看 951关注 0票数 4

我们有一个由多个程序和脚本一起运行的数据采集系统,有些程序和脚本依次运行,大多数是并行的,在不同的机器上运行。

我们使用Jenkins构建和运行单元测试。

现在,我们希望通过使用数据生成器作为系统的输入并检查数据采集链的输出来测试整个系统。

测试系统步骤的简化视图:

  1. 还原系统(数据库、存储库中的包、重新启动虚拟机)
  2. 根据需要配置系统(编写要使用的配置文件,更新数据库)
  3. 启动所需的几个父进程,并等待它们就绪。
  4. 启动数据输入
  5. 完成后,收集度量和结果,与预期的结果进行比较,检查日志中的错误消息,

理想情况下,我们应该使用不同的配置和输入来运行它。

你会用什么工具来做呢?或者你会直接在詹金斯做吗?

EN

回答 4

Stack Overflow用户

发布于 2013-05-12 20:48:19

你没有告诉我们足够的关于你的设置给你具体的答案。这在很大程度上取决于您正在使用的语言/环境。您可能需要以下一个或多个组合:

  • 流浪汉/厨师或傀儡/Veewee/VirtualBox自动生成VM并配置并运行它们。这是假设一个Linux平台。厨师+ Linux容器要快得多,特别是如果您在ram磁盘上运行它(它应该是一个可重复的过程,所以只需要存储工件)。
  • 为您需要在VM上安装的所有系统包提供带有版本控制的包缓存。
  • 一些框架运行验收测试,黄瓜,机器人等。如果您的单元测试是好的,您可能能够逃脱烟雾测试。
  • 模拟您的系统,您可以从日志中输入运行时的结果,以便您知道如何以及何时进行缩放。

您很可能会遇到缓慢的测试问题,因为您必须填充数据库,并且可能不得不拆分测试作业。一般来说,反馈循环的速度太慢了,你可能需要很有创造力才能得到一个可接受的循环时间。

在不同的环境中,对此有不同的工具,而拥有多个堆栈并不是什么有趣的事情。Jenkins运行在Java堆栈上,Puppet & Chef运行在Ruby堆栈上,Python、c& perl堆栈也有类似的工具。您必须自己决定是想在类中最好地解决集成问题,还是自己编写一个堆栈和代码。两者都能起作用,两者都不是微不足道的。团队经验很可能是其中的决定性因素。

DevOps中的反馈循环比现代CI开发环境糟糕得多,因此您必须事先做更多的规划和研究。你可以在一天内进行的实验的数量要少得多,至少是20倍左右,所以第一次做实验是很困难的。确保你有经验的人这样做。

票数 4
EN

Stack Overflow用户

发布于 2013-04-29 21:21:20

答案是:机器人框架(参见12)。

  • 支持数据驱动的测试和行为测试
  • 测试是用用户定义的关键字用类似人类的语言编写的.易于开发,易于阅读,易于维护。
  • 访问不同功能的大量库(ssh连接、数据库、.)
  • 可以使用用python、java或其他语言编写的自定义库进行扩展。
  • 为每个测试生成一个详细的日志。

我不认识詹金斯,但我很确定你能把机器人框架和它集成在一起。它就像运行Python脚本一样简单。

票数 2
EN

Stack Overflow用户

发布于 2013-05-07 10:14:28

根据系统的复杂性,您可以使用大量的工具。一般说来,你需要某种形式的工作流程,并在最后对结果进行可视化。与其给出一个否定的答案,让我告诉你一些工具/插件。

詹金斯:

  • MultiJob插件让我们将工作流指定为阶段,并使用并行作业阶段
  • BuildFlow插件让我们在一个简单的DSL中使用并行和依赖的作业来创建自己的构建流。
  • 收集度量标准并随时间绘制这些指标的绘图插件
  • xUnit插件可以从测试中捕获JUnit风格的xml或JSON,例如,由一个小脚本或xUnit框架(比如py.test for Python )生成的,或者其他更奇特的东西。
  • RobotFramework插件与OFrandeDiEnne的回答有关。

流浪者:流浪者基本上是VirtualBox VM之上的命令行接口。您可以使用它同时启动多个VM(甚至可以通过Jenkins完成)。使用诸如傀儡、厨师、SaltStack等提供程序来设置数据库、配置等。

构建流程工具,如运行时设计自动化(RTDA)提供的工具.商业广告。这很可能是过头了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16276628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档