docker如何帮助软件自动化测试人员?

时间:2015-06-13 03:33:12

标签: selenium-webdriver docker

docker如何帮助自动化测试人员?

我知道它提供了类似于虚拟机的linux容器,但我如何在软件自动化测试中使用这些容器。

1 个答案:

答案 0 :(得分:1)

简短回答

您可以使用Docker轻松创建一个隔离,可重现且可移植的测试环境。每个依赖项都会转移到一个映像,每当您需要一个环境来测试您的应用程序时,您只需运行一些映像。

长答案

应用程序有很多依赖项

典型的应用程序与其他系统有很多依赖关系。您可能拥有数据库,LDAP,Memcache或系统所依赖的更多内容。应用程序本身需要一个专用版本(Java 7或Java 8)中的某个运行时(Java,Python,Ruby)。您可能还需要具有应用程序设置的服务器(Tomcat,Jetty,NGINX)。您可能需要为应用程序使用特殊的文件夹结构,依此类推。

设置测试环境变得复杂

所有这些都构成了应用程序所需的环境。您需要此环境来在生产中运行您的应用程序,进行开发和测试(手动或自动)。这种环境可能变得非常复杂,维护它会花费你很多时间和麻烦。

依赖关系成为图像

这就是Docker发挥作用的地方:Docker让您将数据库(已经设置了应用程序的初始数据)放到Docker镜像中。您的LDAP,Memcache和您依赖的所有其他应用程序也是如此。 Docker让您甚至可以将自己的应用程序打包成一个图像,该图像提供正确的运行时,服务器,文件夹结构和配置。

图像使您的环境易于重现

这些图像是独立的,隔离的和便携的。这意味着你可以在每台机器上拉它们,然后按原样运行它们。而不是安装数据库,LDAP,Memcache并配置所有这些,您只需拉动图像并运行它们。这使您可以在需要时在几秒钟内轻松启动新的环境。

测试变得更容易

这是测试的基础,因为您需要一个干净,清新且可重现的环境来执行测试。特别是“可再现的”和“新鲜的”很重要。如果您运行自动化测试(在开发人员机器上或在构建服务器上本地),则必须使用相同的环境。否则你的测试不可靠。 Fresh非常重要,因为它意味着您可以在测试完成后停止所有容器,并且您创建的测试中的每个数据都会消失。再次运行测试时,只需启动一个干净且处于初始状态的新环境。