前言
目前大多数公司都是使用禅道,jira这些来管理缺陷,研发和测试每天站会或者周会都想知道昨天或者这周一共解决了多少个缺陷,如果每天都通过禅道上去查看可能有点麻烦且不方便,今天小编介绍一种方法,我们可以通过办公软件钉钉或者企业微信通过项目群中进行添加机器人,每天自动发送到群里,供大家参考查看。
钉钉机器人推送消息
小编目前公司用的是钉钉,就先拿钉钉来介绍了,方法都是类似的,首先我们先创建一个群聊,然后在群里添加对应的机器人,可以通过“群设置”--->“机器人”--->“添加机器人”,这里选择添加自定义的机器人服务
添加完成后,我们值需要设置机器人的名称,安全设置中,选择自定义关键词,然后设置我们的关键词,这里小编用的是缺陷名称
添加完成后,一定要记得将webhook复制,关于推送消息,主要通过这里
python发送消息
其中钉钉机器人发送消息有很多类型,文本,link链接,Markdown,图片等供我们进行使用,这里小编通过简单的文本形式进行操作。通过查看官方文档,可以看到我们如何进行发送请求
其中这里的url地址怎么好熟悉,其实这个url地址就是我们复制的webhook的地址,这里我们只需要请求这个地址,然后将对应的参数填写上去就可以了
# coding:utf-8
import requests
import json
# 这里的地址是机器人的地址webhook地址,自行申请使用
url = 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx'
headers = {'Content-Type': 'application/json'}
# 参数内容
data = {"msgtype":
"text","text":
{"content":"缺陷名称:今天你有学习吗?"},
"at": {
# 要@的人
"atMobiles": " ",
# 是否@所有人
"isAtAll": False
}
}
r = requests.post(url,headers=headers,data=json.dumps(data))
print(r.status_code)
print(r.text)
执行后,这个时候就会看到钉钉群里,已经自动发送了消息。到这里,我们的本次的内容已经完成一部分了,下面就要通过读取禅道的数据库了。
python读取禅道数据库
首先安装禅道,这里小编就不介绍了,大家可以自行百度下载禅道后并安装,安装完成后,我们需要进入到禅道中,进行创建项目和缺陷
连接数据库
先通过navicat添加禅道数据库,因为是在本地的直接添加的,如果是服务器上,请连接具体服务器的主机,需要先添加禅道的数据库zentao,然后进行查看
通过禅道官方文档查看每个表中具体表示什么,这里我们只需要找到bug表就行
查询数据
数据库也成功连接了,对应的数据表也找到了,先查看下数据是否正确,通过navicat编写查询语句进行查询,这里小编只查询到缺陷标题
python连接数据库
这里小编通过pymysql这个python的第三方库进行连接数据库
安装:pip install pymysql
这里安静就直接上代码了,思路都是一样的,通过连接数据库,然后进行查询数据
import pymysql
# 连接数据库
count = pymysql.connect(
host = '127.0.0.1', # 数据库地址
port = 3306, # 数据库端口号
user='root', # 数据库账号
password='821006052', # 数据库密码
db= 'zentao', # 数据库表名
charset = 'gbk' # 中文乱码
)
# 完成mysql数据库实例化
db = count.cursor()
# sql语句
sql = 'select title from zt_bug'
# 执行sql
a = db.execute(sql)
# 查找所以内容
result = db.fetchall()
print(result)
执行代码缺陷标题已经全部都查询出来,接下来就是将我们钉钉机器人推送消息和数据库查询到的数据进行结合,就达到了我们的需求了。
python实现钉钉机器人推送缺陷内容
上面每个模块都已经完成了,后面只需要我们一点点的调式了,小编这边直接将调试完成的代码进行运行起来
# coding:utf-8
import pymysql
import requests
import json
# 连接数据库
def MYsql(sql):
a = []
count = pymysql.connect(
host = '127.0.0.1', # 数据库地址
port = 3306, # 数据库端口号
user='root', # 数据库账号
password='821006052', # 数据库密码
db = 'zentao') # 数据库表名
# 创建数据库对象
db = count.cursor()
# 写入SQL语句
sql_ = sql
# 执行sql命令
db.execute(sql_)
# 获取全部的查询内容
restul = db.fetchall()
# 将查询的结果添加到列表中
for i in restul:
a.append(i[0])
db.close()
return a
def DingDing(text):
# 钉钉机器人的webhook的地址
url = 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxx'
headers = {'Content-Type': 'application/json'}
data = {"msgtype":
"text", "text":
{"content": "缺陷名称:以下是缺陷标题%s" %text},
"at": {
# 要@的人
"atMobiles": "",
# 是否@所有人
"isAtAll": False
}
}
r = requests.post(url, headers=headers, data=json.dumps(data))
print(r.status_code)
print(text)
result = MYsql("select title from zt_bug")
DingDing(result)
点击执行程序,并且观察钉钉群中的变化,发现钉钉机器人已经成功的将我们的数据发送到了群里。到这里小编已经实现了该功能,只不过小编这里是通过获取缺陷标题,大家可以根据未解决的缺陷和解决的缺陷,将一些缺陷标号,严重程度,一步步实现起来。方法都是类似的。
禅道连接钉钉机器人
上述方法介绍了通过python将禅道的信息和钉钉机器人连接起来了,但是有的朋友可能感觉会不会太麻烦了,那么小编在介绍一种方法,直接通过禅道将我们的信息通过链接的形式发送给钉钉微信群中。
添加钉钉群机器人
我们在刚才的群里在新建一个钉钉机器人,这次我们通过安全设置中的加签的形式进行创建,创建完成后,分别复制webhook,和加签产生的数据
禅道添加钉钉机器人
打开禅道,进入到"后台"--->“通知设置”--->“Webhook”,将上述步骤中所复制的webhook和加签的数据放入到禅道中的webhook中,其中关联产品和关联执行,可以自行获取想要接收到那些信息,如果填空,则说明均可以接收到。
创建成功后,我们直接在禅道对应的产品下,进行添加一个缺陷,缺陷成功添加后,就会发现钉钉群中已经将我们刚创建的缺陷发出来了。
总结
小编这里通过两种方法进行实现了如果将禅道上的缺陷内容和钉钉机器人联调起来,实现每天或者每周都可以很清楚的通过钉钉群了解到项目的缺陷列表。非常感谢您的阅读,希望对您有所帮助。