GrowingIO 大数据多维分析自动化测试实践

作者:郝阔君 GrowingIO QA Lead,曾任职于中国惠普、奇虎 360。带领 QA 团队负责 GrowingIO
全产品线质量保证工作,目前专注于 DevOps 实践,帮助团队提升质量和效率。

1.问题背景

「事件分析」是 GrowingIO 为用户提供的一个非常灵活、强大的基于大数据平台的交互式多维分析工具,下面是一个简单的单指标、单维度、带过滤条件的事件分析图表:

在这里插入图片描述

如何对事件分析产生的图表进行测试呢?经过分析,我们发现一个事件分析图表包含指标、维度、目标用户、过滤条件、时间范围、粒度、排序多个因素,这些因素会影响其查询结果。

在这里插入图片描述

而每个因素又有多个取值,有的取值多达几十种,即使每个因素都使用等价类划分取最小值,其组合产生的测试用例数为:

指标数(23) * 维度数(9) * 目标用户数(6) * 过滤条件(无过滤条件(1) + 维度数(9) * 过滤类型(6)=55) * 时间范围(14) * 粒度(4) * 排序(5) = 22314600。

即使仅选取其中最关键的指标、维度、目标用户、过滤条件 4 个因素,其组合数也高达 23 * 9 * 7 * 55 = 79695 。如此多的测试用例数量,如何测试呢?

2.寻找测试方案

显然,通过手工测试的方式是无法完成如此海量的测试任务的,必然需要使用自动化测试的方式。但如果采用 UI 自动化方式,其实现成本高,执行慢,不稳定,结果判定难, API 测试显然更合适。

GrowingIO 的可视化图表数据都来自 Charts 服务,Charts 服务定义了一种强大灵活的被称为 GQL(GrowinIO Query Language) 的 DSL,用于描述图表查询(可以类比 SQL)。以上面事件分析图表为例其 GQL 简化的表达如下:

{
    "metrics": [
        {
            "id": "pv",
            "name": "页面浏览量"
        }
    ],
    "dimensions": [
        "city"
    ],
    "granularities": [
        {
            "id": "tm",
            "interval": 86400000
        }
    ],
    "filter": {
        "op": "a
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值