若无法直观掌握缺陷随时间波动规律,需启用趋势分析视图:一、用禅道“质量→缺陷统计→趋势图”,按日期筛选并渲染折线图;二、直查数据库执行sql聚合后用python清洗导出csv绘图;三、导出bug数据至excel,用透视表按openeddate分组计数并生成折线图。

如果您在禅道中已积累大量缺陷数据,但无法直观掌握各项目缺陷随时间变化的波动规律,则可能是由于未启用或未正确配置趋势分析视图。以下是实现缺陷趋势可视化统计的具体操作路径:
一、使用禅道内置“质量”模块趋势图
禅道专业版及部分高版本开源版在“质量”菜单下集成轻量级趋势图表,直接调用预置SQL聚合逻辑,自动过滤deleted='1'记录并按openedDate归档,避免手动处理空值与软删除干扰。
1、登录禅道系统,确保当前账户具备“质量”模块访问权限(通常需拥有“测试经理”或“管理员”角色)。
2、点击左侧导航栏【质量】→【缺陷统计】→【趋势图】。
3、在趋势图页面顶部选择时间范围(支持“最近7天”“最近30天”“自定义时间段”),注意自定义起止日期须符合YYYY-MM-DD格式且openedDate非空。
4、勾选目标项目或产品,系统将自动渲染折线图,横轴为日期,纵轴为当日新增Bug数;鼠标悬停可查看单日明细。
二、通过数据库直查+Python脚本生成趋势数据
当内置趋势图缺失、版本不支持或需对接外部BI系统时,可绕过Web界面,直连MySQL数据库执行带时间分组的聚合查询,并用Python完成清洗与结构化输出,规避status/resolution语义歧义导致的计数偏差。
1、确认禅道数据库连接参数:host、port、user、password、database名称(默认zentaopms或zentaodb)。
2、编写Python脚本,导入MySQLdb或pymysql库,执行如下SQL:
SELECT DATE(openedDate) AS day, COUNT(*) AS bug_count FROM zt_bug WHERE deleted = '0' AND openedDate IS NOT NULL AND openedDate != '0000-00-00 00:00:00' GROUP BY day ORDER BY day;
3、运行脚本,将结果保存为CSV文件,字段为day,bug_count。
4、使用Excel或matplotlib读取CSV,绘制折线图,确保X轴日期连续——对缺失日期补零,防止趋势断裂。
三、利用禅道“导出+Excel透视表”手动构建趋势图
该方法无需编程与数据库权限,适用于仅拥有普通测试员权限的用户,依赖禅道导出功能获取原始缺陷列表,并通过Excel内置时间分组能力还原趋势,但需人工校验openedDate有效性。
1、进入【测试】→【Bug】列表页,点击右上角【导出】→【导出数据】。
2、在导出设置中,勾选字段包括:id, product, project, module, status, resolution, openedBy, openedDate, assignedTo,取消勾选“附件”“备注”等非趋势相关字段以提升导出效率。
3、下载CSV文件后,用Excel打开,选中openedDate列,右键→【设置单元格格式】→确认为日期类型(格式如2026/3/15)。
4、插入→数据透视表→将openedDate拖入“行”区域(Excel将自动分组为“年/月/日”),将id拖入“值”区域并设为“计数”,即可生成每日缺陷数量汇总表。
5、基于透视表数据插入折线图,右键图表→【选择数据】→编辑水平(分类)轴标签,确保日期序列无跳空。










