测试模块—京东质量团队转型实践(6)

发表于:2018-11-26 10:33

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:京东研发虚拟平台    来源:51Testing软件测试网原创

分享:
  6.2.4 任务管理服务
  通过提供完备的接口,部署服务和测试服务可以各自完成自己的工作,但是想要将流程串联起来,构成持续集成的流水线,就需要有另一个服务来管理和调度任务了。我们首先支持了Web Hook触发的持续集成任务,跟踪产品代码的更改。我们的代码是通过Gitlab管理的,如图6-7,注册Web Hook到代码库:
  
图6-7 注册Web Hook
  当开发提交代码到指定分支时,Gitlab会向我们注册的接口post数据, 如代码清单6-11所示。
  代码清单6-11 Web Hook数据体
1. {
2.   "object_kind": "push",
3.   "event_name": "push",
4.   "before": "1cd2b697b63851f13bf1254329554da3a26e111c",
5.   "after": "36a1a5d9785c808a2341840aef50baecfbd9a973",
6.   "ref": "refs/heads/master",
7.   "checkout_sha": "36a1a5d9785c808a2341840aef50baecfbd9a973",
8.   "message": null,
9.   "user_id": 4427,
10.   "user_name": "***",
11.   "user_username": "***",
12.   "user_email": "***@jd.com",
13.   "user_avatar": "http://git.jd.com/uploads/-/system/user/avatar/4427/avatar.png",
14.   "project_id": 8533,
15.   "project": {
16.     "name": "***",
17.     "description": "Automatic Deployment UI.",
18.     "web_url": "http://git.jd.com/***/***",
19.     "avatar_url": null,
20.     "git_ssh_url": "git@git.jd.com:***/***.git",
21.     "git_http_url": "http://git.jd.com/***/***.git",
22.     "namespace": "***",
23.     "visibility_level": 10,
24.     "path_with_namespace": "***/***",
25.     "default_branch": "master",
26.     "ci_config_path": null,
27.     "homepage": "http://git.jd.com/***/***",
28.     "url": "git@git.jd.com:***/***.git",
29.     "ssh_url": "git@git.jd.com:***/***.git",
30.     "http_url": "http://git.jd.com/***/***.git"
31.   },
32.   "commits": [
33.     ......
34.   ],
35.   "total_commits_count": 1,
36.   "repository": {
37.     ......
38.   }
39. }
  通过解析以上数据,读取代码库地址和分支名,判断是否有定义相应的持续集成任务,如果有的话,任务就会被触发,在界面上可以就看到任务执行的状态,如图6-8所示:
  
图6-8 CI任务状态页
  当任务结束后,就可以得到配置好的测试环境和测试报告了,如图6-9所示:
  
图6-9 CI任务结果页
  6.2.5 扩展
  以上仅介绍了我们团队实现的最基本的持续集成过程,其实持续集成的内容和外延远不止这么简单。团队可以根据自己的需求在流水线上接入代码质量扫描工具比如Sonar,或者接入Gerrit来实现代码审查流程。这些扩展属于比较简单直观的,进一步的,可以通过将持续集成作为产品发布过程中的第一个环节,配合其他形式的自动化或手动测试以及审批流程,将其扩展为持续发布系统。如果再配合软件生命周期管理工具,比如Rational,就可以为团队打造出一个相对完整的DevOps环境了。
  6.3 小结
  持续集成对于采用敏捷开发模式的团队来说是非常重要的技术手段,在实施时需要根据自己的规模,资源,以及环境来选取合适的实现方式。这一章并没有详细介绍怎样使用Jenkins来搭建持续集成环境,因为已经有太多的资源去描述如何使用Jenkins。我们想把本团队在转型过程中开发的适应于内部容器平台的持续集成系统介绍给大家,抛砖引玉,希望能给读者带来新的灵感,提供新的思路。

相关推荐:
自动化测试和测试开发—京东质量团队转型实践(2)
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号