Docker在测试领域的应用

参考资料:

《The Docker Book》- Testing with Docker

《Docker从入门到实践》– 标准化开发测试和生产环境

http://wiki.jikexueyuan.com/project/docker-technology-and-combat/environment.html

构建基于 Docker + Jenkins + Sahi 的 Web UI 自动化测试环境

http://www.ibm.com/developerworks/cn/opensource/os-cn-JenkinsDockerSahi/index.html

利用 Docker 构建高度集成化的 Chef 开发测试环境

http://www.ibm.com/developerworks/cn/cloud/library/1410_zhangyq_dockerwithchef/

深入浅出Docker(四):Docker的集成测试部署之道

http://www.infoq.com/cn/articles/docker-integrated-test-and-deployment/

Move fast and don’t break things! Testingwith Jenkins, Ansible and Docker

https://developer.rackspace.com/blog/move-fast-and-dont-break-things-testing-with-jenkins-ansible-and-docker/

Testing Made Awesome with Docker

http://blogs.plos.org/tech/testing-made-awesome-with-docker/

Container Technology: Integration Testingwith Docker

http://clypd.com/container-technology-integration-testing-with-docker/

ECS Docker实践文档

http://help.aliyun.com/knowledge_detail/5974866.html

1、Docker目前有以下应用场景:

测试:Docker很适合用于测试发布,将 Docker 封装后可以直接提供给测试人员进行运行,不再需要测试人员与运维、开发进行配合,进行环境搭建与部署。

测试数据分离:在测试中,经常由于测试场景变换,需要修改依赖的数据库数据或者清空变动 memcache、Redis 中的缓存数据。Docker 相较于传统的虚拟机,更轻量与方便。可以很容易的将这些数据分离到不同的镜像中,根据不同需要随时进行切换。

开发:开发人员共同使用同一个 Docker 镜像,同时修改的源代码都被挂载到本地磁盘。不再因为环境的不同而造成的不同程序行为而伤透脑筋,同时新人到岗时也能迅速建立开发、编译环境。

PaaS云服务:Docker 可以支持命令行封装与编程,通过自动加载与服务自发现,可以很方便的将封装于 Docker 镜像中的服务扩展成云服务。类似像 Doc 转换预览这样的服务封装于镜像中,根据业务请求的情况随时增加和减少容器的运行数量,随需应变。

使用 Docker 来做分布式集群模拟

2、Docker在测试领域的应用:

1)快速搭建兼容性测试环境(各类Web服务器、中间件、数据库的组合环境)

2)快速搭建复杂分布式测试环境

3)持续集成(快速创建和撤销容器)

3、Docker对测试方式的影响:

1)、容器级测试

2)、测试前移(功能模块-容器)

3)、集成测试

4)、自动化测试、并行测试

5)、可扩展性测试

6)、兼容性测试(例如验证兼容MySQL和Postgres)

标准化容器开发和测试环境

Docker就像工厂中的流水线,将一个个集装箱(模块化的功能)传输到发货区(上线发布)。

传统模式和Docker模式在测试方式上的区别:

基于Docker的测试场景:

在开始测试之前,测试工程师需要确保自己的测试机上已经安装了Docker并处于运行状态,必要时需保证Docker的版本与最终生产环境一致。

测试环境搭建好之后,根据测试请求说明的镜像地址拉取镜像,并按要求运行,根据镜像的目的测试所实现的业务。

如果在测试过程中发现bug或不符合需求,应尽快反馈给开发人员,开发人员修正后,重新将镜像推送到注册服务器,测试人员从镜像库拉取最新修改的镜像继续测试。反复几轮直到达到可发布的版本。最后,测试人员发布测试合格报告,并注明最终的镜像版本。

如果多个测试工程师同时测试,各自使用自己的测试容器,还能保证测试之间不被干扰。

Docker模式下,开发-测试-运维的协作模式:

以一个简单的应用开发、测试和发布来说明 Dock er 在阿里云 E CS 上的运用:
1) 运维人员在 ECS 上搭建私有 Docker Registry。
2) 开发人员在开发 ECS 上从阿里云或私有 Docker Registry 获取应用需要的基础镜像。
3) 开发人员开发 ECS 上构造应用容器,自测后?交容器为新的镜像并推送到私有 Docker Registry,通知 QA 测试。
4) QA 在自己的测试 ECS 上启动容器,测试后,有问题则 a),没问题则 b)。
  a) 通知开发修复,回到步骤 3)。
  b) 交到私有 Docker Registry,准备发布。
5) 发布人员下载最新版本镜像并在生产ECS 上启动容器。

Docker时代,对测试的技能要求:

1、基于Docker的测试环境搭建能力

2、微服务架构的测试能力

3、基于容器与开发、运维的协作能力

最后,关于Docker在测试领域的应用,我们还缺乏比较多的尝试和实践,例如:

基于容器的应用,对其实施自动化测试与传统应用有哪些差异?

基于容器的应用,在性能上与传统方式的部署,差异有多大?

基于容器的应用,在安全测试方面,跟传统应用有哪些差异?

时间: 2024-10-30 18:53:30

Docker在测试领域的应用的相关文章

centos7主要特性 ---docker安装测试

红帽日前正式发布了企业版Linux 7,满足企业当前对数据中心的需求和对下一代的云服务.Containers.大数据的需求,为用户提供军用级安全以及稳定.易用.高效的管理.社区发行版CentOS 7也已经发布出来了,抢先体验docker1.0. rpm -Uvh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 安装docker      yum install docker-io 启动服务    

利用docker搭建测试环境--安装

软件测试过程中,总会碰到测试环境不够用的尴尬情况.即时有了机器还要经历装系统,配置环境,调试等一系列繁琐的问题.虽然市面上也有一些批处理话的工具(如salt,fabric等),但是还是需要实体机器作为支撑,增大成本. 这里介绍一个可以用虚拟测试环境的软件docker http://baike.baidu.com/link?url=L2ViMZm7idMZRx3ymex14SITS99B9UZWSVF_gHtOxmRZH4tvXRObooRUICVewSXf-Rt5q0X4vb2KiZ5EQ6dm

用docker搭建测试环境--docker的基本操作

上一篇文章中最后执行了docker pull centos的指令,经过一段时间的等待,会从hub.docker.com上下载docker官方最新的centos的images,接下来熟悉一下docker的一些基本操作.1.查看本地的imagesdocker images 2.从hub.docker.com拉取响应的imagesdocker pull images 3.运行指定的images,并在images里边执行command命令docker run images command 4.查看当前运

关于Docker在测试方面的应用

Docker 火了很长一段时间了,前段时间简单的学习和试玩了一下子,发现他对测试很有价值,觉得有必要再次深入研究. 这里标记一些较好的学习网址,用作参考: InfoQ上面有系列的文章: 深入浅出Docker在InfoQ上的内容: http://www.infoq.com/cn/dockerdeep/ 深入浅出Docker(一):Docker核心技术预览:http://www.infoq.com/cn/dockerdeep/深入浅出Docker(二):Docker命令行探秘:http://www.

docker公司测试环境搭建总结

1.防火墙转发规则: [[email protected] ~]# firewall-cmd --list-allpublic (active) target: default icmp-block-inversion: no interfaces: em1 sources: services: dhcpv6-client ssh ports: 50001/tcp 3306/tcp 5672/tcp 6379/tcp 15672/tcp protocols: masquerade: no for

docker安装+测试环境的搭建---

漏洞演练环境docker地址:http://vulhub.org/#/environments/ 环境:kali-linux-2017.2-amd64.iso 一.docker安装 1.先更新一波源:vim etc/apt/sources.list(先按i进行编辑,然后编辑完,shift+esc退出编辑,然后输入:wq 回车,退出编辑) xx源:deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-f

docker nodes 测试示例

1.在同级目录编辑app.js文件 文件内容如下 const http = require('http'); const os = require('os'); console.log("Kubia server starting...."); var handler = function(request, response) { console.log("Received request from " + request.connection.remoteAddr

Greenplum docker 安装测试环境

下载docker 拉去docker 镜像,创建镜像yum -y install dockersystemctl start dokcerdocker pull centos:6docker run --privileged -dti -p 65000:6500 --name gptest1 centos:6 bashdocker run --privileged -dti --name gptest2 centos:6 bashdocker run --privileged -dti --nam

GitHub: Oracle Database on Docker 为测试 改天试试

Oracle Database on Docker https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance Sample Docker build files to facilitate installation, configuration, and environment setup for DevOps users. For more information about Oracle