基于Docker的基础设施testing工具

我正在尝试将基于虚拟机的基础架构迁移到基于Docker的基础架构,并借此机会向此基础架构添加行为testing。 所以我的目标是对代码中的基本系统configuration(例如在一个Dockerfile中),git版本和(在一个理想的世界中)所做的所有改变都应该具有可testing的效果。

我想要做的testing示例:

  • 如果我在“postgres”容器中添加用户帐户和权限规则,则用户“x”应该只能从“web”容器访问(仅)数据库“y”。
  • 如果我在这里更改后缀configuration(如插入更改) ,则人类用户必须进行身份validation,但系统用户可以未经身份validation发送电子邮件。
  • 如果我在这里更改了插入更改的Apacheconfiguration,则平均响应时间低于x毫秒。

我不想testing的东西(如果可以的话,也不会伤害):

  • 文件x应该存在。
  • 服务y应该被安装。

我想知道做什么是一种很好的/通用的方法来进行基础设施testing,如上所述,并且很乐意接受任何build议或听取最佳实践。 (我发现了serverspec ,但是在我看来,这样做似乎支持第二种testing;在所有的例子中,我读的是它比系统行为更倾向于检查系统状态。