首页 > 技术文章 > 使用钉钉对接禅道的bug系统,实现禅道提的bug实时在钉钉提醒并艾特对应的开发人员处理

jsondai 2018-09-18 11:28 原文

  现在公司测试中有一个痛点是每次测试人员提完bug后,需要定期去提醒开发人员查看禅道的bug记录及修复bug。 导致测试人员在项目测试中不仅要测试整个软件,还要负起实时监督提醒功能的“保姆角色”,身心疲惫 。    公司现在使用的是钉钉办公沟通工具,发现此问题后进行了一些列的优化

一、创建钉钉机器人 

在钉钉群设置那里创建一个机器人 

记录下来机器人的webhook,后续对外接口调用均需要使用此webhook。使用python调用联调,看是否能实现消息发送及艾特人员功能,代码如下:

# -*- coding:UTF-8-*-
# Author: dx
from urllib import request
import json

access_token = "xxx"


def send_msg(mobile, item_name):
    """
     钉钉机器人API接口地址:
     https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.karFPe&treeId=257&articleId=105735&docType=1
     :param mobile:
     :param itemName:
     :return:
    """
    url = "https://oapi.dingtalk.com/robot/send?access_token=" + access_token      # 钉钉中webhook的值进行拼接
    data = {
        "msgtype": "text",
        "text": {
            "content": item_name
        },
        "at": {
            "atMobiles": [
                mobile
            ],
            "isAtAll": "false"
        }
    }
    # 设置编码格式
    json_data = json.dumps(data).encode(encoding='utf-8')
    print(json_data)
    header_encoding = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko',
                       "Content-Type": "application/json"}
    req = request.Request(url=url, data=json_data, headers=header_encoding)
    res = request.urlopen(req)
    res = res.read()
    print(res.decode(encoding='utf-8'))


if __name__ == "__main__":
    mobile = "*******"     # 需要艾特的人员钉钉对应的手机号码
    item_name = "test"
    send_msg(mobile, item_name)

 

二、禅道设置

1、在禅道中设置对应的项目,进入消息页面设置webhook及对应的消息触发策略

2、将禅道项目与钉钉绑定

 

 

 

 3、设置完成后,在禅道对应项目下提交bug时,会触发禅道对应钉钉的接口,实现禅道将bug信息推送到钉钉的项目组群中,并艾特对应的开发人员

 

这样整体就完成了,开发人员实时能在群中收到bug消息提醒。 解决效率有了明显提升

推荐阅读