暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【测试管理】基于Grafana的平台化迭代功能测试报告发布

ERGOisTESTING 2021-09-03
2139

【背景】

    之前搭了grafana平台,做了测试组工作量负荷查看面板。考虑平台现成的,面板颜值也高,干脆把平时用Excel/PDF发布的功能测试报告也搞到这个平台上去,方便随时查看。



【正文】

一、原文本型报告展示

    使用excel对需求和缺陷分布进行统计,并生成图形,最后导出PDF进行发布,依赖文件。主要对缺陷的终端分布、严重程度、功能模块进行了统计,暂时未加入缺陷类型(功能、数据、界面等等),还包括不修复清单、总结等信息。


二、平台化后台表结构设计

    一共5张表,2张统计缺陷分布,1张统计需求分布,1张记录不修复缺陷明细,1张记录测试总结信息。(正式缺陷分布暂不统计)

    创建mysql数据库建表(所有id自动递增),并导入历史的报告数据。

1、需求分布表t_requests_distribution

2、缺陷模块终端分布表t_bugs_distributionA

3、缺陷终端严重程度分布表t_bugs_distributionB

4、测试总结评语表t_report_sum

5、不修复缺陷清单表t_bugs_wontfix


三、Grafana报告展示配置

1、变量配置

将迭代号设置为变量,可以实现切换变量来查看不同迭代的报告内容。

变量取值:

select distinct iteration from t_bugs_distributionA ORDER BY iteration desc;

变量引用:

$变量名

在面板通过切换变量实现查看不同迭代的报表内容。

2、计算指标仪表板展示

    我们设定了一个指标,每个平均需求产生多少个缺陷,即缺陷总数/需求总数。

计算SQL:($Iteration为引用的变量值,下同)

select ( (select sum(num) from t_bugs_distributionA where iteration='SIteration')/(select sum(num) from t_requests_distribution where iteration='SIteration') ) as "需求缺陷比", now() as time;

    并配置了一个仪表盘Gauge,并设置指标达到不同值范围时给出不同颜色展示;

3、计算总数展示

    使用一个STAT类型的图表展示迭代的缺陷总数

计算SQL:

select sum(num) from t_bugs_distributionA where  iteration='$Iteration';

    同样做了一个颜色阶梯的区分。


4、饼图分布展示

    将模块分布和终端分布做一个饼状分布统计Pie Chart。

SQL取值:

select sum(num)  as '模块A' from t_bugs_distributionA where iteration="$Iteration" and module = '模块A'' GROUP BY module;

select sum(num)  as '终端类型X' from t_bugs_distributionA where iteration="$Iteration" and terminal = '终端类型X' GROUP BY terminal

5、环形图分布展示

    将需求分类做环形分布统计,基本跟饼图一样,设置的时候从Pie切换到Donut。

6、柱状分布展示

    将需求所属模块进行柱状统计,图表类型Graph,注意X轴默认是时间轴需要切换成系列名。

SQL取值:

select *, now() as time from

(select sum(num) as '模块A' from t_requests_distribution  where iteration="$Iteration" and module='模块A') a,

(select sum(num) as '模块B' from t_requests_distribution  where iteration="$Iteration" and module='模块B') b,

…………


7、柱状簇形图分布

    将各终端的严重程度分布和各模块的终端分布做一个柱状簇形图分布Bar Chart。(由于部分迭代中轻微和一般一起统计,部分迭代是分开统计的,故增加“一般+轻微”类别,方便历史数据显示)

SQL取值:

SELECT
    b.terminal_group '终端分布',
    sum( CASE WHEN b.level = '一般+轻微' THEN num END ) '一般+轻微',
    sum( CASE WHEN b.level = '致命' THEN num END ) '致命',
    sum( CASE WHEN b.level = '严重'  THEN num END ) '严重',
    sum( CASE WHEN b.level = '一般' THEN num END ) '一般',
sum( CASE WHEN b.level = '轻微' THEN num END ) '轻微'
FROM
    (
    SELECT
    CASE
        WHEN terminal = 'Terminal' THEN 'Terminal' 
        WHEN terminal ='TV' THEN 'TV' 
        WHEN terminal = 'IOS' THEN 'IOS' 
        WHEN terminal = 'Android' THEN 'Android' 
ELSE 'WEB' 
     END terminal_group,
    a.* 
FROM
    t_bugs_distributionB a 
    where iteration="$Iteration"
    ) b 
GROUP BY
    b.terminal_group
order by terminal_group

8、表格清单展示

    将不修复的缺陷清单以表格形式展示,图表类型Table。

SQL取值:

select taskid as '缺陷编号',reason as '不修复原因',developer as '开发人员' from t_bugs_wontfix where iteration= "$Iteration" order by taskid;

9、文本内容展示

      将测试总结配置STAT类型的图表展示,注意需要切换显示内容为“all fields”,因为默认是显示数字类型,不切换的话文本内容是不会展示出来的。此外还可以配置显示文本的展示字体颜色。

SQL取值:

select summary from t_report_sum where iteration="$Iteration" limit 1;

select comment from t_report_sum where iteration="$Iteration" limit 1;

10、最终展示效果



【结语】

      目前报告数据化的实现是通过手动导入数据到mysql中,后续将考虑做一个报告导入功能(抓一个幸运的前端小哥),直接选中excel格式的报告,点击导入后将对应内容拆分后写入数据库,简化维护工作。

      这个测试报告平台化导入页面可以加入到现有的测试人员日报周报提交平台,方便测试工作一体化开展。

❤  周   末   愉   快~  ❤

文章转载自ERGOisTESTING,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论