我有一个关于使用docker进行测试的问题。
我们的主要解决方案是客户端/服务器解决方案。但是,我们的Web应用程序也正在使用同一服务器。我们知道我们的Web应用程序,服务器和SQL数据库可以像今天一样在docker容器中运行。
我们所有的客户当前都在物理服务器或虚拟机上运行我们的Web应用程序和服务器。
根据从docker网站,docker课程以及以下内容stackoverflow post获得的知识,虚拟机和Docker容器之间存在差异。
但是与虚拟机相比,我们的自动化测试是否会有如此大的差异,以至于我们的自动化测试将具有不同的输出或无法在Docker容器中捕获错误?
据我了解,主要区别在于容器在主机操作系统上运行,而虚拟机在其自己的操作系统实例上运行。因此,从我的角度来看,差异还不足以改变我们的测试结果吗?
设置
我们的容器设置将与我们的VM测试环境完全相同
VM和容器之间的差异通常从管理角度是可见的,例如不同的安全问题。从应用程序的角度来看,如果代码使用定义良好的网络接口(例如, Java具有用于与数据库通信的JDBC。从虚拟机到容器的更改应该是透明的,并且仅需要不同的连接详细信息。
如果自动化测试在VM和容器上的结果不同,则意味着该应用程序取决于VM中特定的东西,或者测试套件存在问题。应该以一种或另一种方式对其进行调试。