五分钟教程:如何在Docker当中运行平行测试

Posted 达内软件测试培训

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了五分钟教程:如何在Docker当中运行平行测试相关的知识,希望对你有一定的参考价值。

最新:软件测试免费课程火热开启中,点击文末“阅读原文”快速抢报

【推荐阅读】

五分钟教程:如何在Docker当中运行平行测试


如果想在Docker中运行平行测试,你可能会引起容器名冲突的错误,下面我们来谈谈如何避免这种错误。当你在CI环境下运行测试时,有时候要运行平行测试。这种平行程序需要使用编译工具,如詹金斯、Gradle或者Maven插件。

会出现什么问题?

如果你在使用Docker作为应用程序的外部测试工具(例如数据库、邮件服务器、FTP服务器),你会发现一个大问题,就是在运行平行测试时,在Docker主机里,所有文件会新建一个相同命名的容器,以至于在你开始第二个平行测试时,你会得到一个关于冲突的容器名失败,因为Docker主机试图启动两个相同命名的容器,或者这两个容器具有相同的绑定端口。


五分钟教程:如何在Docker当中运行平行测试


如何解决?

针对这个问题,你可以这样解决:

  • 你可以用一个Docker主机分别给每个文件做平行测试。

  • 你可以重复使用相同的Docker主机并且使用Arquillian Cube Star运算器。


Arquillian Cube是Arquillian的一个扩展,可以用来在你的测试中管理Docker容器。使用Arquillian Cube,你需要在计算机上运行一个Docker保护(可以是本地的或者不是),但大多数是本地的。

Arquillian Cube提供了三种不同的方法来定义容器:

  • 定义一个容器组成文件

  • 定义一个容器对象

  • 使用容器对象DSL

如何使用Docker组成和容器对象DSL

在下面的事例中,我将向您展示如何使用Docker组成和容器对象DSL。Star运算器可以让你指示Arquillian Cube随机命名Cube,并且可以调整链接。这样一来,在执行平行测试时,就不会因为名称或者绑定端口发生冲突了。

我们来看一个例子:

五分钟教程:如何在Docker当中运行平行测试

五分钟教程:如何在Docker当中运行平行测试

五分钟教程:如何在Docker当中运行平行测试


你可以看到Docker-组成yml文件从一个典型的Docker-组成文件发生的重要转变,它的名字是以星号(*)或者redis*结束的,这个名字应该是动态生成的。这里有三个测试,我们给大家演示第一个,其他两个也大同小异。

基本上,打印控制台绑定端口连接到服务器。最终建立一个gradle文件,执行两个平行试验,所以如果你在gradle运行测试,你会发现两个测试是同时执行的,当一个完成的时候,另一个也执行完毕了。然后,当你检查输出时,你会看到下一个输出。

五分钟教程:如何在Docker当中运行平行测试

五分钟教程:如何在Docker当中运行平行测试


正如你在日志中看到的,容器的名字不是Redis或redis*,但是redis后面跟一个UUID。此外你还可以看到,当输出打印时,绑定端口在每个情况下都是不同的。


如何使用DSL容器对象的方法

如果你不想用docker组成的方式,你也可以用DSL容器对象的方法以编程方式定义容器,也可以支持Star运算器。我们来看看这种情况下的事例:

五分钟教程:如何在Docker当中运行平行测试


这个使用容器对象的方法是相同的,你需要Arquillian Cube1.4.0来运行它以及容器对象。基于这一特点,你可以运行任何程度的平行测试,因为Arquillian Cube可以照顾到命名和端口绑定问题。请注意,在容器之间链接的情况下,你依然需要运行Star运算器,它将在运行时解决某些问题。了解更多Star运算器请点击这里。


免费名额火热抢先中

五分钟教程:如何在Docker当中运行平行测试

好消息,平安产险承保达内学员平安就业教育保障险,帮助达内学员解决就业的后顾之忧,只要你是达内学员,就可以在达内各中心参保,为你的高薪就业保驾护航。

内容推荐:



咨询联系达妹QQ:3535503962。

*声明:内容与图片均来源于网络(部分内容有修改),版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

▲了解更多软件测试资讯,长按上方二维码


点击“ 阅读原文 ”抢报软件测试免费试听课

以上是关于五分钟教程:如何在Docker当中运行平行测试的主要内容,如果未能解决你的问题,请参考以下文章

容器技术教程:如何将Docker应用持续部署至Kubernetes当中

Docker 十分钟动手教程

刘润五分钟商学院156对对抗思考到平行思考

Lucene 五分钟教程

五分钟上手ECharts教程

如何运行容器?- 每天5分钟玩转 Docker 容器技术(22)