03 埋点测试实战之GrowingIO

简介: 03 埋点测试实战之GrowingIO

对于该论述,欢迎读者查阅之前发过的文章

01 埋点测试之质量保障

02 埋点测试实战之神策数据


前言

书接上回,今天继续进行 埋点自动化测试实战,我们搞定 神策数据 埋点之后,今天的第二个目标是 GrowingIO,干起来!


接下来撸代码!


老规矩,首先我们需要安装 garbevents python包!

pip install garbevents

分析

我们以【奈雪的茶】小程序 为例来分析 GrowingIO 埋点数据上报方式!

  • 微信小程序埋点数据上传API
https://wxapi.growingio.com/v3/{ai}/s2s/cstm?stm={sendingTime}
  • 请求参数说明与示例
  1. 单条事件发送
[      
  {            
    "cs1":"9128391",    
    "tm":1434556935000,    
    "t":"cstm",    
    "n":"BuyProduct",    
    "var":{      
      "product_name":"苹果",      
      "product_classify":"水果",      
      "product_price":14    
    }
  }
]
  1. 多条事件发送
[      
  {            
    "cs1":"9128391",    
    "tm":1434556935000,    
    "t":"cstm",    
    "n":"BuyProduct",    
    "var":{      
      "product_name":"苹果",      
      "product_classify":"水果",      
      "product_price":14    
    }
  },   
  {            
    "cs1":"9128391",    
    "tm":1434556935000,    
    "t":"cstm",    
    "n":"BuyProduct",    
    "var":{      
      "product_name":"苹果",      
      "product_classify":"水果",      
      "product_price":14    
    }
  },   
  {            
    "cs1":"9128391",    
    "tm":1434556935000,    
    "t":"cstm",    
    "n":"BuyProduct",    
    "var":{      
      "product_name":"苹果",      
      "product_classify":"水果",      
      "product_price":14    
    }
  }
]

使用

  • 启动服务

在 cmd 启动代理服务

命令

mitmdump -p 8889 -s test_script.py

GrowingIO Demo

from garbevents.growingio_events import GetData
from garbevents.settings import Settings as ST
# 埋点上传url 
ST.url = 'https://wxapi.growingio.com'
# 报告生成路径 
ST.report_path = 'report'
# 所有事件名称 
ST.all_events = ['event_name_1', 'event_name_2']
addons = [
    GetData()
]

运行截图

数据统计差异

为什么 GrowingIO 后台 统计的用户量,和我在微信小程序数据助手看到的不完全一致?

微信平台是用 openid 来统计的用户量的。GrowingIO 默认是用 cookie 来统计的,只有在集成SDK,设置使用 openid 来统计的参数,才会按照 openid 来统计。按照 cookie 来统计用户,会包含打开了小程序,但是没有授权的用户量。注:GrowingIO 也可以按照授权用户 ID 来采集用户数据,即在SDK 集成时,设置参数。但是这样,只有用户在发生授权时,才能获取到用户的数据。即如果用户没有授权,就采集不到这个访问用户了。

微信只统计线上发布版本的数据,GrowingIO 会统计所有加入了我们 SDK 的平台的用户,例如您的开发版本、体验版本中集成了 SDK,我们都会统计到用户,因为是用 cookie 来做用户标记的,所以会和正式线上版本用户有一定的差异。

GrowingIO 的新用户,是接入 GrowingIO SDK 后,第一次出现的用户。例如您某个新用户是在 8 月 1 号打开的,但是 8 月 2 号集成了 SDK,这个用户在 8 月 8 号再来,GrowingIO 第一次见这个用户,会统计为新用户,但是您内部平台和微信,一般会从最一开始到现在为止,第一次出现来统计的。

因为这些常见的情况,所以不同平台间数据可能会不完全一致。一般来讲,比较基数(例如新访问用户量)是在几百这个量级时,5% 以内的差异是正常的

用法拓展

  1. 结合UI自动化,嵌入到你的平台或者框架中,运行自动化脚本的同时,也测试了埋点。
  2. 部署到公司服务器,给测试部门的同学用,助人为乐!!!

以上便是 garbevents GrowingIO的基本用法介绍。

如果您有发现错误,或者您对 garbevents 有任何建议,欢迎到 garbevents Issues发表,非常感谢您的支持。您的反馈和建议非常宝贵,希望您的参与能帮助 garbevents 做得更好。


相关文章
|
2月前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
1月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【9月更文挑战第5天】性能测试是确保应用在高负载下稳定运行的关键。本文介绍Apache JMeter和Locust两款常用性能测试工具,帮助识别并解决性能瓶颈。JMeter适用于测试静态和动态资源,而Locust则通过Python脚本模拟HTTP请求。文章详细讲解了安装、配置及使用方法,并提供了实战案例,帮助你掌握性能测试技巧,提升应用性能。通过分析测试结果、模拟并发、检查资源使用情况及代码优化,确保应用在高并发环境下表现优异。
47 5
|
2月前
|
前端开发 关系型数据库 测试技术
django集成pytest进行自动化单元测试实战
在Django项目中集成Pytest进行单元测试可以提高测试的灵活性和效率,相比于Django自带的测试框架,Pytest提供了更为丰富和强大的测试功能。本文通过一个实际项目ishareblog介绍django集成pytest进行自动化单元测试实战。
30 3
django集成pytest进行自动化单元测试实战
|
29天前
|
测试技术 Apache 数据库
从慢如蜗牛到飞一般的感觉!Python性能测试实战,JMeter&Locust助你加速🏃‍♂️
【9月更文挑战第6天】你的Python应用是否曾因响应缓慢而让用户望而却步?借助JMeter与Locust,这一切将迎刃而解。JMeter作为Apache基金会的明星项目,以其强大的跨平台和多协议支持能力,成为性能测试领域的魔法师;而Locust则以Python的简洁与高效,让性能测试更加灵活。通过实战演练,你可以利用这两款工具轻松识别并解决性能瓶颈,优化数据库查询、网络配置等,最终使应用变得敏捷高效,轻松应对高并发挑战。
15 1
|
2月前
|
测试技术 API 开发者
.NET单元测试框架大比拼:MSTest、xUnit与NUnit的实战较量与选择指南
【8月更文挑战第28天】单元测试是软件开发中不可或缺的一环,它能够确保代码的质量和稳定性。在.NET生态系统中,MSTest、xUnit和NUnit是最为流行的单元测试框架。本文将对这三种测试框架进行全面解析,并通过示例代码展示它们的基本用法和特点。
68 7
|
1月前
|
Kubernetes Linux API
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
该博客文章详细介绍了在CentOS 7.6操作系统上使用kubeadm工具部署kubernetes 1.17.2版本的测试集群的过程,包括主机环境准备、安装Docker、配置kubelet、初始化集群、添加节点、部署网络插件以及配置k8s node节点管理api server服务器。
62 0
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
|
2月前
|
IDE Java 测试技术
揭秘Java高效编程:测试与调试实战策略,让你代码质量飞跃,职场竞争力飙升!
【8月更文挑战第30天】在软件开发中,测试与调试对确保代码质量至关重要。本文通过对比单元测试、集成测试、调试技巧及静态代码分析,探讨了多种实用的Java测试与调试策略。JUnit和Mockito分别用于单元测试与集成测试,有助于提前发现错误并提高代码可维护性;Eclipse和IntelliJ IDEA内置调试器则能快速定位问题;Checkstyle和PMD等工具则通过静态代码分析发现潜在问题。综合运用这些策略,可显著提升代码质量,为项目成功打下坚实基础。
48 2
|
2月前
|
NoSQL Java Linux
Redis6入门到实战------ 六、Redis_Jedis_测试
这篇文章介绍了如何使用Jedis客户端连接Redis,并进行基本的数据类型操作测试,包括字符串、列表、集合、哈希和有序集合的相关API使用示例。
Redis6入门到实战------ 六、Redis_Jedis_测试
|
2月前
|
API 开发者 Java
API 版本控制不再难!Spring 框架带你玩转多样化的版本管理策略,轻松应对升级挑战!
【8月更文挑战第31天】在开发RESTful服务时,为解决向后兼容性问题,常需进行API版本控制。本文以Spring框架为例,探讨四种版本控制策略:URL版本控制、请求头版本控制、查询参数版本控制及媒体类型版本控制,并提供示例代码。此外,还介绍了通过自定义注解与过滤器实现更灵活的版本控制方案,帮助开发者根据项目需求选择最适合的方法,确保API演化的管理和客户端使用的稳定与兼容。
73 0
|
2月前
|
监控 测试技术 数据库
从慢如蜗牛到飞一般的感觉!Python性能测试实战,JMeter&Locust助你加速🏃‍♂️
【8月更文挑战第4天】曾几何时,Python应用响应缓慢,用户体验大打折扣。但有了JMeter与Locust,一切迎刃而解!JMeter,跨平台的性能魔法师,助你轻松模拟高并发场景,揪出性能瓶颈。Locust,则是Python世界的性能小能手,以简洁的Python代码实现高效测试。两者联手,让你的应用摆脱蜗牛速度,迎接流畅体验的新篇章!
22 0
下一篇
无影云桌面