GrowingIO 数据采集 iOS SDK 测试实践

本文介绍了GrowingIO在iOS SDK测试方面的实践,重点是数据采集部分,特别是无埋点数据采集。测试包括理解业务逻辑、选择KIF框架进行自动化测试、覆盖率统计和持续集成。GrowingIO的数据采集SDK支持多种平台和开发框架,测试过程中需要考虑兼容性和效率,自动化测试能有效提高质量和生产率。
摘要由CSDN通过智能技术生成

作者:吕雨强

GrowingIO iOS 测试工程师,主要负责 iOS SDK 功能测试、自动化测试 。

GrowingIO 是基于用户行为数据的增长平台,精准采集用户行为数据是公司业务的基石,只有及时、准确、可靠的采集到数据,才能支撑上层的数据分析,用户画像,运营等业务,所以公司一直非常注重数据采集 SDK(Software Development Kit) 的质量保证工作。

为了满足客户的各种业务与技术的需求,GrowingIO 提供了 Web、Android、 iOS、Hybrid、各种小程序(微信、支付宝、头条、QQ 等 )、微信内嵌页等多种平台,以及 React Native、Flutter 、Cordova、Weex 、API Cloud 、AppCan 众多开发框架的 SDK,这无疑为 SDK 的测试工作带来的巨大的挑战。

本文主要介绍 GrowingIO 在 iOS SDK 测试方面的具体实践,希望对从事 iOS 测试的同学提供一些参考。

1. 数据采集 SDK 是如何工作的?

要测试一个软件或系统首先必须要先了解其业务逻辑和技术实现,接下来我们简单看下数据采集 SDK 是如何工作的。

GrowingIO 的数据采集 SDK 支持无埋点(全埋点)数据采集以及埋点数据采集,以满足不同的业务需求,其简易结构如下:
在这里插入图片描述
在用户打开 App ,浏览不同的页面,点击不同的元素(如按钮,文本框,图片),关闭 App 时,无埋点事件采集模块会将用户的具体行为自动采集并保存到手机的本地存储(关于无埋点数据采集的具体实现,欢迎关注 GrowigIO 后续的文章分享,这里不再详述)。

埋点事件采集与之类似,不同之处是埋点事件是由 App 主动调用 SDK 的埋点 API 触发事件采集,当然不同事件的具体数据格式有所不同。

接下来是数据发送模块,其主要负责将数据通过 HTTP API 上报到数据接收服务。

需要说明的是,为了节约用户的数据流量和电量,发送程序并不是实时上报的,它会根据设备的电量、网络类型、以及数据量进行发送时机的选择,而且发送前还会对数据进行压缩和混淆以降低传输数据量并提升数据安全性。

当然数据发送程序还会处理数据上报中的各种数据发送失败,网络异常等错误,采取适当的重试机制。

2. 如何测试?

通过以上结构分析,可以看出数据发送模块跟核心的数据采集业务关系不大,并且很稳定,几乎不会改动,因此我们测试的重点主要是数据采集部分,尤其是无埋点数据采集。

要测试数据采集首先需要有一个包含各种页面和元素的 Demo App,然后切换不同的页面,操作页面上的元素或触发埋点事件,然后检查采集到的事件数据是否正确。
在这里插入图片描述
检查事件数据有两种方式,一种是将事件详细数据通过日志打印出来观察日志检查;一种是通过抓包程序获取数据发送然后检查。

后者一般需要配置复杂的代理工具,而且数据量多,还需要考虑数据的解压缩、解密,比较难以精准定位到事件数据。所以在实际测试中一般使用前者。
在这里插入图片描述
上图是一个采集数据的日志截图,通过图中的事件数据我们发现,其字段众多,且一些字段可读性不高,人工检查耗时较长。

此外 SDK 数据采集的主要逻辑基本不变,但是每次修改都必须进行足够的回归覆盖,以免遗漏错误。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值