openshift testlink redmine

Gitlab:使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
Redmine:项目管理和bug跟踪工具。
TestLink:基于web的测试用例管理系统,主要功能是测试用例的创建、管理和执行,并且还提供了一些简单的统计功能。
Redmine作为项目问题及bug收集汇总的地方,gitlab及testlink通过调用redmine的api进行对问题进行更新。那第它们之间是怎么配置的呢?下面就一起来配置下。

图片.png

Redmine部署与插件安装

相关配置在github项目:https://github.com/xhuaustc/redmine-openshift

  • Dockerfile中更新了docker-entrypoint.sh文件,更新了数据库的编码(mysql: utf8mb4 )

    创建镜像

1
2
$ docker build -t harbor.local.com/public/redmine .
$ docker push harbor.local.com/public/redmine
  • 在openshift上创建新的项目

创建工程

1
$ oc new-project redmine

允许redmine项目中的pod使用root用户运行

创建工程

1
$ oc adm policy add-scc-to-user anyuid -z  default -n redmine

在新建的redmine工程中基于模板文件redmine-mysql-ephemeral.yaml在openshift上创建应用。
注意:

  • 需要更新redmine的Deployment中的template.spec.containers[0].image为刚刚自己创建的镜像harbor.local.com/public/redmine
  • 创建应用时添加环境变量REDMINE_PLUGINS_MIGRATE为1
  • 添加环境变量GITLAB_USERNAME及GITLAB_PASSWORD。这两个参数用于redmine的gitlab_callback插件拉取代码。

将git中的plugins目录文件导入到名字为redmine-file-data的PVC中

Testlink安装

基础镜像php56:https://github.com/sclorg/s2i-php-container/tree/master/5.6

Testlink代码:https://github.com/xhuaustc/testlink-code.git

Mysql数据库:创建Data Stores(Mysql)

Gitlab(9.3.11)安装

当前gitlab使用9.3.11版本,主要是因为9.4以上的gitlab版本与redmine集成有兼容问题。

对应的模板文件路径:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/9.3.11+ce.0/docker/openshift-template.json

安装部署如Openshift上安装Gitlab

至此完成了gitlab+redmine+testlink的安装,接下来就是通过配置,使它们之间能够完成问题的管理。

Gitlab + redmine + Testlink集成

一、准备环境创建项目:gitlab项目test, redmine项目test, testlink项目test
二、设置redmine。
1、管理 -> 插件 -> Redmine GitLab Hook plugin配置

图片.png

2、开启api设置
管理 -> 配置 -> API

图片.png

3、版本库设置
管理 -> 配置 -> 版本库

图片.png

记录版本库管理网页服务API密钥:例如l1D2z8DJXiL4lFNSl2O4

三、gitlab配置

1、在test代码库中,Settings -> Integrations

添加webhook:http://redmine-redmine.apps.local/gitlab_hook?project_id=test&key=l1D2z8DJXiL4lFNSl2O4

Gitlab Hook

2、开启Redmine:Settings -> Integrations -> Redmine

Gitlab testlink
四、配置testlink

1、查看redmine API访问key
点击我的账号,右边栏显示key

图片.png
2、配置testlink的代码追踪
设置testlink的语言为简体中文
点击项目主页中的:缺陷跟踪系统管理
添加一个redmine的追踪

testlink添加redmine追踪

其中apikey就是redmine下用户对应的Key.

通过以上集成配置后的世界是怎样的呢?

  • 创建测试case
  1. redmine上创建bug issue
  2. 在testlink上同步redmine的issue id
  3. testlink将自动同步问题内容
  • 开发人员提交代码
  1. 开发人员使用约定格式的commit msg提交代码
  2. 状态会自动同步redmine,并反映到testlink
  3. 测试人员根据testlink上的信息,对相关问题进行测试验证
  • testlink上添加评论
  1. 测试人员testlink上添加评论
  2. redmine对应的issue下会自动同步评论