测试平台功能
代理支持
- 通过对 Fiddler 开发自定义插件、Whistle 进行二次开发,能够无缝衔接抓包工具(Fiddler、Whistle等),无侵入的收集应用程序的埋点数据,
- 可以有效减少获取埋点数据的步骤,节约测试时间;
非代理环境上报
- 无需连接代理,便可上报埋点到测试平台,且能够实时查看埋点数据;
- 解决产品人员、开发人员等、因没有安装代理环境或不会使用代理工具等因素,而无法验收、自测埋点的问题。
漏报性检测
- 自动检测埋点是否漏报;
规则自动对比
- 根据埋点数据的需求文档生成动态的规则库,自动对应用程序上报的埋点数据进行实时、快速的一致性检测,降低了验证埋点的成本,提高了埋点测试的准确性;
历史埋点数据存储
- 进行持久化存储,方便追溯历史数据;
埋点方案规范性检测
- 活动上报的埋点数据必须满足一定的规范,才能保证埋点提数的正确性,以及活动运营数据评估的准确性。
- 在埋点测试之前,对埋点方案进行规范化检查,能够尽早揭露问题,实现了测试左移;
测试平台设计
测试平台设计原则
- 无痕获取埋点数据;
- 自动和埋点方案对比测试,失败时高亮提示;
- 记录埋点测试过程数据、一键生成报告;
- 丰富多样的规则库,能灵活配置,维护成本低;
- 图表功能直观展示,可查看实时、历史埋点数据;
测试流程
- 抓包工具(Fiddler、Whistle等)包含一个自定义插件,当测试人员连接抓包工具并触发应用程序时,会无感知的收集埋点数据并上报到服务器。
- 服务器包含一个动态规则库:通用规则和自定义规则,根据动态规则库自动检测埋点数据是否正确,并生成测试报告。
抓包工具(自定义插件)
抓包工具(自定义插件)获取埋点数据
- 抓包工具(Fiddler、Whistle等)安装自定义插件,无感知的获取应用程序的埋点数据;
自定义插件的具体实现方法
- 监听抓包工具传输的所有网络数据包的域名(HostName);
- 当网络数据包的域名(HostName)和应用程序的埋点上报的域名一致时,拷贝网络数据包的请求内容(RequestBody),并发送到服务器;
自定义插件优势
- 自定义插件只需开发实现一份、可重复利用;
- 测试人员不需要进行额外的操作;
- 学习成本低,有利于推广使用;
- 自定义插件自动监听埋点数据并发送到服务器,不需要对被测应用进行二次改造,达到了无侵入、无感知的收集埋点数据的目的。
服务器(动态规则库)
服务器(动态规则库)自动检测埋点数据
- 服务器收到埋点数据后,根据动态规则库对埋点数据进行自动检测,并生成测试报告。
- 动态规则库包括通用规则和自定义规则。
通用规则的实现方法
- 固有属性抽象通用规则
- 将需求文档中埋点数据的固有属性抽象成通用规则;
- 例如:
- 埋点数据的类型(点击、PV、曝光);
- 埋点数据的字段是否为空;
- 埋点数据字段的拼接个数等。
- 因通用规则具有普遍性,适用性广,所以只需生成一份,可重复使用,实现成本比较低。
自定义规则的实现方法
- 正则表达式
- 因触发应用程序的场景不同,导致实际上报的埋点数据存在差异性时,需对需求文档中的埋点数据的字段采用正则表达式生成自定义规则。
- 自定义规则是针对某个具体埋点数据实现的,满足了个性化的需求。
- 当埋点数据量比较庞大时,优先生成并使用通用规则,只有埋点数据的格式存在不确定性时,才利用正则表达式生成自定义规则。
- 所以动态规则库既节约了成本,同时具有灵活性、多样性的特点。