持续集成测试(2) – 测试case容器化
背景
我们都知道docker在生产过程中已经被广泛应用,
- 开发将已开发完毕的代码打包成镜像后push到仓库,进入测试周期即步骤2;
- 测试通过开发指定镜像从仓库pull到本地后,根据docker run命令后启动容器内服务,至此,测试环境已准备完毕,开始进行测试;
- 测试过程中如果遇到问题,则反馈给开发人员,进行问题定位,返回至步骤1;
- 当测试完毕后,通知开发测试已完成,开发将镜像tag告知运维人员,运维人员将镜像pull到线上机器,启动并运行。
以上为docker在生产应用中所历经的周期。从以上过程可以发现,相比较于原始生产周期中,docker应用所具备的优势有:
- 兼容多种平台同时并存,在centos系统可运行ubuntu,在macos运行centos等等,解决服务对于硬件系统的依赖问题。
- 能够保证了开发、测试、运维环境的统一,解决服务对环境的依赖所产生的问题;
- Docker能够确保每个容器都拥有自己的资源,并且和其他容器是隔离的
环境配置
github的用户使用说明的版本比较低,可去maven仓库查询新的依赖版本。
注:docker-client依赖了apache的httpclient包,使用配置时注意依赖包冲突问题。
<dependency>
<groupId>com.spotify</groupId>
<artifactId>docker-client</artifactId>
<version>5.0.2</version>
</dependency>
测试方法总结
从测试方法上分,测试分为
黑盒测试
白盒测试
灰盒测试从测试目的上分
单元测试
功能测试
集成测试
系统测试
alpha测试
beta测试从操作上分
手工测试
自动化测试从被测目标服务质量需求分
性能测试
压力测试
稳定性测试
兼容性测试
安全性测试从测试阶段分
冒烟测试
BVT测试
回归测试
验收测试从业务上分
前端测试(移动端、pc端)
接口测试
策略测试
中间件儿测试
数据存储测试
参考自:
http://www.cnblogs.com/TankXiao/archive/2012/02/20/2347016.html
https://github.com/spotify/docker-client
http://www.programcreek.com/java-api-examples/index.php?api=com.spotify.docker.client.DockerClient