如何测试Docker容器本身

时间:2018-09-06 14:50:23

标签: docker testing qa

我熟悉docker,我认为它是一个非常好的工具。

但是,有时我会做一些小错字,导致容器不运行或在不良状态下运行,并且经常需要花费相当长的时间才能发现问题。有关于如何使用docker进行测试的文章,这很棒。但是在开始测试在Docker容器中运行的目标应用程序之前,我想检查安装的构建和运行是否成功,换句话说,编写测试以检查“准备测试”(这些测试可能是重新使用以检查生产准备情况,但是,可能需要付出更多的努力,例如功能和性能测试)。 令人惊讶的是,我几乎找不到有关如何测试Docker容器基础架构本身的文章。

我正在考虑的是找到策略和最佳实践,以测试构建和运行任何Docker基础架构的工作,即创建映像,运行容器,合成,群集等。 这将包括检查是否将所需的所有文件和资源都复制到正确的位置,网络中所需的服务器是否已启动并正在运行,并在正确的端口上给出了预期的答案,甚至还测试了性能测试是否做得很好。

因此,我想问社区是否有人已经开始做这样的事情,互联网上是否有公共场所可以关注,或者是否有人有兴趣增加这样的网站。

1 个答案:

答案 0 :(得分:0)

这就是我在docker上的工作流程,也许对您有帮助:

  1. 所有代码均在类似于生产环境的docker-compose环境下开发(存储除外,该存储使用Cloudstor在AWS上管理卷)
  2. 在发布版本之前,所有自动测试必须为绿色。 [重要]
  3. 基于此版本构建的Docker映像仅包含www之类的nginx之类的东西。该图像保存在私有存储库中。
  4. 其他docker镜像用于:databasecachelog stack。我总是将基本映像用于此容器,并且仅自定义一些配置文件。
  5. 使用新的www图像标签将Docker Compose文件换出。
  6. Docker Compose项目已重新加载(拉&&下&&上)
  7. 由于www映像在构建之前已经过测试,因此我可以依靠,因为其他容器已启动,因此我的应用程序应该可以工作。
  8. 在重新加载项目后,我可以检查一些测试端点。该端点测试databasecache和其他服务是否正在按预期运行,并返回200或500状态代码。
  9. 在重新加载之前,我总是将应用程序放下,在数据库和存储上运行备份脚本
  10. 我有一个bash脚本来为我做所有这些事情,从而使所有过程都更快。

我使用的这种方法几乎可以防止故障,但是需要对任何更改后的所有测试进行测试。使用自动化测试(编写良好的测试)是必不可少的,并且所有这些过程都可以使用持续集成工具来自动化所有内容。

自从一年前我在生产环境上迁移到docker以来,我一直在使用此过程,至少发布了100个版本。