基于docker容器技术的测试平台解决方案(dap)
转载:https://mp.weixin.qq.com/s/sy5KvpdP34wxtTY-G-j0aQ
1、DAP平台介绍
技术栈:
flask ,python docker sdk,docker
工具
portainer harbor
2、DAP功能设计
dap通过对外的api并行运行自动化测试,返回测试日志,理论上运行时间就是最小suite运行时间,只要suite足够小,dap就可以足够快。
2.1、API设计
2.1.1、上传组件安装包和测试包
http://10.8.61.36:8080/dap/rpms/upload/xxx
xxx为要运行测试组件名称
2.1.2、制作镜像
http://10.8.61.36:8080/dap/build/image
2.1.3、运行自动化测试
http://10.8.61.36:8080/dap/run/test
2.1.4、测试运行状态监测
http://10.8.61.36:8080/dap/check/status
2.1.5、下载日志
http://10.8.61.36:8080/dap/logs/download
2.2、Docker管理工具
选择宿主机后再进行容器和镜像的管理:
容器管理
2.2.2.1容器生命周期管理
2.2.2.2容器资源占用情况查询
2.2.2.3容器日志查看
2.2.2.4于容器内部交互
2.2.2 镜像管理
2.3私有镜像仓库的管理
2.3.1 提交自定义镜像到私有仓库
2.3.1.1要先在harbor上创建组件对应的项目
比如A组件要先创建A项目后才能上传镜像
2.3.1.2 登录私有仓库
配置/etc/hosts
修改vi /etc/docker/daemon.json
添加{ "insecure-registries":["dap.registry.com"] }
登录私有仓库
Docker login dap.registry.com
输入用户名 admin 密码:xxx
登录成功提示:
2.3.1.3 给源镜像打tag:
Docker tag 源镜像 dap.registry.com/A/A-env
2.3.1.4提交镜像
Docker push dap.registry.com/appa/A-env
2.3.1.5 harbor上查看
URL:http://10.8.61.36/harbor
3、DAP接入
3.1、定制自己组建的标准环境镜像
3.2、上传组建标准环境镜像到私有仓库dap.registry.com
3.3、准备迭代所需的rpm包,组建包和测试包
3.4、调用dap api运行测试,收集测试结果
4、持续集成CI
4.1Jenkins调用流程(A组件)
1、首先需在测试主机上进行相关信息配置,如docker测试API地址、物理测试机或VPS测试机ip端口、运行所需软件包路径。
2、持续集成平台启动任务(可定时、依赖其余任务触发),测试主机接收启动指令,从SVN下载测试脚本源码并打包成测试套件包。
3、筛选运行套件,若需docker测试(内核无关部分),则启动docker测试进程,若需本地进行测试(内核相关部分),则启动本地测试进程,若需辅助测试机进行测试,则启动相应进程开启测试。
4、所有测试任务执行完成后,收集测试结果。
5、整合测试结果并上传到持续集成平台,持续集成平台进行结果展示
4.2 DAP调用流程:
5、阶段性成果
A测试组件容器化:
1.测试suite数量:总计128个,容器化88个,40+suite因内核相关未容器化。
2.vm耗时:按主机并发,并发度4;4台机器(2物理,2vps),6个小时跑完;
3.容器耗时:按suite并发,并发度88;dap平台;45分钟跑完
6、后期规划(需要收集相关需求)
研发,测试资源管理
数据分析展示