MeterSphere 服务集成:禅道

本文主要演示在已有禅道管理软件的情况下,如何在 MeterSphere 平台提交缺陷并推送至禅道。

1 MeterSphere 与禅道对接

本文档所使用的 Metersphere 平台为 v1.13.1 版本(建议至少更新至 v1.11.2 版本,该版本及以后版本对接禅道的问题已基本解决)。

本文档所使用的禅道为开源版 12.5.3 版本。

1.1 禅道配置修改

对接禅道的本质就是调用禅道提供的接口,然后传入相应的参数。想要调用禅道的接口,需要先修改相关的配置文件。

在禅道安装路径中:${安装路径}/zentao/config/目录下创建一个 my.php 文件,然后在里面添加如下内容:

<?php
$config->features->apiGetModel = true;

注意:如果有my.php,则直接在最下方添加"$config->features->apiGetModel = true;"即可。

1.2 开启禅道账号超级 Model 权限

访问禅道需要账号具有超级 Model 权限,可用管理员账号登录禅道,在权限中进行设置,如下图:

在权限维护中,开启超级 Model 调用接口权限,保存即可。

1.3 在 MeterSphere 中配置禅道信息

在 MeterSphere 平台中,配置好禅道对接的信息,如下图:

测试连接,显示验证通过即可完成连接的配置。

2 从 MeterSphere 中提交缺陷至禅道

上一个部分仅仅是让 MeterSphere 可以和禅道进行通信了,就像是在河中建好了一座桥,下面需要让车在上面跑了,也就是在MeterSphere 中提交缺陷,自动推送至禅道对应的项目中去。

2.1 配置项目 ID

在禅道项目准备好之后,会自动生成一个项目 ID,比如下图:

然后将这个项目 ID,关联到 MeterSphere 平台的项目中去,并保存,如下图:

2.2 配置缺陷模板

其实项目 ID 配置完毕后,就已经可以在 MeterSphere 的缺陷管理中提交 Bug 至禅道了。但是当我们尝试提交一个 Bug 并登录禅道后会发现,很多字段都没有填写,比如 Bug 类型、严重等级、测试阶段、浏览器和操作系统等等。

所以我们需要在 MeterSphere 中配置一个提交模板,声明禅道中需要用到的字段,这样提交过去的 Bug 就是完整的。配置模板如下:

模板中分为两大块,一个是标题和内容,另外就是需要填写的字段:

2.2.1 配置模板标题与内容

推荐的内容设置如下:

[步骤]
<br/>
<br/>
<br/>

[结果]
<br/>
<br/>
<br/>

[期望]
<br/>
<br/>
<br/>

**请在自己的环境中完成自测(包括部署),自测结果请备注在 BUG 单中!**

补充:
标签是换行符。MeterSphere 平台目前还不支持回车换行,如果不加这个换行符,提交到禅道后,所有的文字信息都在一行,阅读体验不友好,所以暂时用这种方式进行换行。

2.2.2 设置自定义字段

设置自定义字段就是在模板基础上增加一些填写的字段。当字段名且值与禅道保持一致时,提交后就会自动填充禅道中的字段值。下面举个字段的例子进行演示,比如我们需要添加一个Bug类型的字段,禅道中的字段是这样的:
image

在 MeterSphere 平台中添加自定义字段:

Q:禅道中的选项值在哪里看?

A:用管理员账号登入禅道,依次进入后台→自定义→Bug,如下图:
![禅道选项值|100%x100%]

2.2.3 模板中绑定自定义字段的API字段名

当我们自定义字段准备好后,就可以添加到模板中了。这里的关键在于配置 API 字段名,如下图:

Q:API字段名从哪里获取呢?

A:在禅道安装目录:zentao/module/bug/lang下,打开zh-cn.php查看。如下图:

可以看到上图中,Bug类型对应的字段是 Type,所以在 MeterSphere 平台中配置 Type 即可。

最后可以根据你的需求,继续添加其他字段,保存最终模板即可。

2.3 设置提交人信息

上面的步骤都做完后,其实已经可以正常提交一个 Bug 至禅道了。但是在这个设置下,即使在 MeterSphere 平台上提交缺陷的是不同的账号,在禅道上Bug的创建人都是 admin(也就是对接的时候配置的用户名),我们需要进一步地设置,来分辨该 Bug 是由谁提交的。在 MeterSphere 界面右上角设置个人信息,如下图:
image

输入禅道账号密码,校验通过后保存。

如果校验失败,可以尝试在禅道中开启该用户的超级 Model 权限,就可以通过了。

效果展示

在 MeterSphere 中新增一个缺陷并保存:

保存后的界面如下:

再来看看禅道的界面:

1 个赞

1.13 是哪年的版本啊?是一直到2.10这个功能都没变化呗?

我在测试服务器中搭建了开源版MeterSphere,为什么服务集成中没有禅道的选项,只有Tapd

要在这里下载对应的插件,然后在系统设置-插件管理中上传。


集成禅道,测试连接时报错了,这个错误是什么原因导致的呢?