python数据统计之禅道bug统计
背景
通过定期输出 每条产品的 BUG 情况,以此来反馈开发解决问题、测试跟进问题的情况;钉钉群推送提醒开发及时解决
以此我这边开始着手准备编写一个小工具,最终达到目的:自动定期发送统计报告,报告维度(数据 + html展示)。
技术选型
python + markdown + pymysql + html + jenkins + 钉钉机器人
实现思路
python主要用到sshtunnel,pysql库跳板机连接mysql数据库,loguru库日志记录,yaml记录项目参数,request调取钉钉接口
- 读取禅道数据库数据及状态,封装sql类,把各维度统计数据通过dic格式返回
- 禅道bug汇总数据进行进行拼接,生成模板写入markdown文件。(钉钉会支持简单markdown格式,表格等等不支持)
- 禅道bug明细数据,生成html页面(没找到合适的三方库只能手动撸)
- 调取钉钉自定义接口,进行数据请求。
- jenkins实现定期推送+html页面展示
主要代码
1、禅道sql封装
ps.公司服务国外的所以时区+8H
2、钉钉接口推送
3、bug明细转html文件
另外功能基类以及调用发送代码比较简单就不展示了。
业务统计
按周统计(月份统计同理):
新增,新增日期为本周内的(包括本周内被解决或关闭的 BUG)
已解决,解决日期为本周内的。被开发设定为已解决的。其中可能有部分是上周遗留下来的,体现了开发在本周的变化情况(包括设计如此、重复 BUG、外部原因、无法重现、不予解决、转为需求),不包含延期处理
已关闭,关闭日期为本周内的。是测试验证过,确实已经解决的,包括其中有的是上周遗留下来的
未解决,当前显示 BUG 状态为未解决的。包含当前还没被解决的、之前遗留的未解决、以及 reopen 的 BUG(累计数据)
延期解决,当前显示 BUG 状态为 延期处理的。BUG 状态中新增一个延期解决 (累计数据)
应用截图
钉钉通知
明细数据展示