全自动埋点diff工具

MIT
python
windows,mac,linux
Pactortester · 2020年06月24日 · 11462 次阅读 · 48 条评论

garbevents(埋点自动化测试工具)

Build Status PyPI PyPI - Python Version GitHub top language Downloads GitHub stars https://blog.csdn.net/flower_drop

适配计划

平台 状态
诸葛 IO
神策数据
GrowingIO 埋点数据
易观方舟 Argo
友盟
C4J
Mixpanel
GA
Ptmind Ptengine
国双 WebDissector
谷歌分析 Google Analytics

安装

pip install garbevents

仓库地址:

适用场景

  1. 使用 以上厂商 作为埋点收集工具的 。
  2. 需要回归验证大批量埋点是否丢失的。
  3. 使用本工具 自动抓取解析埋点信息数据校验埋点是否 丢失。

功能

  1. 自动解析 移动端桌面端 h5 页面 触发的埋点信息,解密后生成 now_data.txt
  2. 去重后和已知埋点信息 diff,保存文件 lost_data.txt

使用

  • 启动服务
  • 在 cmd 启动代理服务

    mitmdump -p 8889 -s <you_test_script.py>
    
  • 连接代理

  • cmd 中运行 ipconfig 找到自己的 ip 地址

  • 手机 wifi 高级选项,代理选择手动,添加代理服务器

ip:你的电脑ip, 端口:8889
  • 下载证书
  • 在手机浏览器中打开网址 mitm.it
  • 选择对应的证书下载安装

    mitm.it
    
  • 开始使用

  • 此时便可以在手机端操作触发埋点,控制台实时打印当前触发的埋点

  • 如果想查看丢失的埋点需要先在 ST.all_events 全局变量中传入全部埋点信息

  • 例如:ST.all_events = ['event_name_1', 'event_name_2']

命令

mitmdump -p 8889 -s <you_test_script.py>

诸葛 IO Demo

from garbevents.events import GetData
from garbevents.settings import Settings as ST

# 埋点上传url 
ST.url = 'https://datain.zhuge.com'
# 报告生成路径 
ST.report_path = 'report'
# 所有事件名称 
ST.all_events = ['event_name_1', 'event_name_2']
# 接口地址
ST.interface_url = ['apipool', 'APIPOOL']

addons = [
    GetData()
]

神策数据 Demo

from garbevents.sensors_events import GetData
from garbevents.settings import Settings as ST

# 埋点上传url 
ST.url = 'http://sensor.wodidashi.com'
# 报告生成路径 
ST.report_path = 'report'
# 所有事件名称 
ST.all_events = ['event_name_1', 'event_name_2']

addons = [
    GetData()
]

GrowingIO Demo

from garbevents.growingio_events import GetData
from garbevents.settings import Settings as ST

'mitmdump -p 8889 -s test_growingio_events.py'
# 埋点上传url 
ST.url = 'https://wxapi.growingio.com'
# 报告生成路径 
ST.report_path = 'report'
# 所有事件名称 
ST.all_events = ['event_name_1', 'event_name_2']
addons = [
    GetData()
]

运行截图

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

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

评论列表
发表于 2023年01月16日

为啥要适配这些平台,是触发监控到埋点,然后上报到对口的平台上去录入数据吗

lemonfree 发表于 2022年06月30日

这个只能获取埋点的事件名吗,对应的 value 解析不了

潘潘 发表于 2022年06月06日

自建的埋点 SDK 可以抓取吗

哪里不会点哪里 发表于 2021年09月02日

脚本只得新建的这个文件么

from garbevents.sensors_events import GetData
from garbevents.settings import Settings as ST

# 埋点上传url 
ST.url = 'http://sensor.wodidashi.com'
# 报告生成路径 
ST.report_path = 'report'
# 所有事件名称 
ST.all_events = ['event_name_1', 'event_name_2']

addons = [
    GetData()
]

Kori 发表于 2021年05月22日

请问现在支持友盟了吗

leaf1225 发表于 2021年03月01日

@ellezdi0808 我也遇到这种问题,如何解决?

leaf1225 发表于 2021年03月01日

神测 app 的入口文件是哪个?ST.url 这个 url 是指什么?

老中医 发表于 2021年01月29日

web 的怎么用呀,虚心求教

阿楠 发表于 2021年01月15日

web 端的 怎么用 能不能写详细一些 you_test_script.py 这是指什么文件 怎么做代理 怎么连接代理

ellezdi0808 发表于 2021年01月06日

您好,您发在 github 的回复图片我这边打不开呀,这个怎么能私信聊下呢,我现在也能抓到包,但是抓不到传给神策接口加密的数据

Pactortester 发表于 2021年01月06日

@ellezdi0808 学而思的 能抓呢!你看看 github 给你回复了

ellezdi0808 发表于 2021年01月05日

ipad 抓不到啊, win 的客户端也抓不到,报错

x:X:X:X:xx: CONNECT sensorsdata.x x.com:8080
<< Cannot establish TLS with client (sni: sensorsdata.xx.com): TlsException("(-1, 'Unexpected EOF')",)

Pactortester 发表于 2020年12月25日

@Lotuszhao 可以,需要自己改一下抓取逻辑,根据你们埋点的请求链接,进行分割参数

坑姐 发表于 2020年12月25日

如果埋点没有借助第三方工具可以用这个库吗?

Pactortester 发表于 2020年11月25日

@minxia110 欢迎在 guthub 提个 pr, 帮助优化下,神策的埋点抓取,多谢

心意已决 发表于 2020年11月25日

1234

minxia110 发表于 2020年10月21日

self.gzip_decompress 神策埋点解析这个用不上,改了些代码完美兼容

Pactortester 发表于 2020年10月14日

@Leonlyou 完全校验,你可以试用看看,点个 star !

这不给点? 发表于 2020年10月14日

这个是不是只能判断埋点是否存在,但是对埋点格式是否符合规范没有校验

Pactortester 发表于 2020年10月09日

@meihaoyidian 你们的 app 或者网页地址是 啥啊,我下载一个调试一下,最近就放出来!

美好一点 发表于 2020年10月02日

GrowingIO 什么时候支持上呢

maybe 发表于 2020年08月19日

神策埋点

Pactortester 发表于 2020年08月19日

@zhuxiumei-github 你是抓哪个平台的埋点啊?诸葛 还是 神策?

maybe 发表于 2020年08月19日

request_content = str(flow.request.content).split('&')[2].split('=')[1]
IndexError: list index out of range
小白上手 ,请教下 楼主,这个报错需要修改哪里哇,

MelindaZhang 发表于 2020年08月05日

不是使用这个工具遇到的问题,我之前也用 mitm 去抓取数据进行打点校验,iOS 手机由于证书问题,抓不到数据,后来只能通过越狱解决

Pactortester 发表于 2020年08月05日

@MelindaZhang GrowingIO 埋点抓取,马上就会兼容了,本周会更新,请在 github 点个关注!

Pactortester 发表于 2020年08月05日

@MelindaZhang 是使用我这个工具遇到的问题吗?啥报错,去提个 issue,贴图看看

MelindaZhang 发表于 2020年08月05日

还有两个问题,第一个我们使用 GrowingIO,所以是不是需要二次开发了,还有就是如何进行点位传值准确性校验呢

MelindaZhang 发表于 2020年08月05日

使用 mitmproxy 的时候,遇到一个问题,证书问题导致抓不到包,请问你这边有这样的问题吗

Pactortester 发表于 2020年07月27日

@MumuFan 仔细看说明文档

  1. 自动解析 移动端\桌面端\h5 页面 触发的埋点信息,解密后生成 now_data.txt
  2. 去重后和已知埋点信息 diff,保存文件 lost_data.txt
Mumu 发表于 2020年07月27日

这东西就是用来打印埋点用的?

yangbin 发表于 2020年07月24日

主要是我从头看到底没明白要干啥,可能是我对埋点这个没啥概念

Pactortester 发表于 2020年07月24日

@AnndyTsou 哪个地方不清楚呢,我又补充了一下文档

yangbin 发表于 2020年07月24日

东西很好,就是文档太粗糙了,想要尝试被阻挡在门外啊

Pactortester 发表于 2020年07月23日

@nakaDH 已添加详细使用说明

向上 发表于 2020年07月22日

启动服务后怎么用?

Pactortester 发表于 2020年08月18日

@Liwenliang666 仔细看看说明文档,readme.md,要是看不明白就不用了吧。。。

李文良 发表于 2020年08月18日

用不起来,执行 demo 啥都没有
F:\python3\python.exe E:/PycharmProjects/garbevents/BuryingPoint.py

Process finished with exit code 0

李文良 发表于 2020年08月18日

@Pactortester 我知道了,环境问题

李文良 发表于 2020年08月18日

@Pactortester 我用的虚拟环境,安装了

Pactortester 发表于 2020年08月18日

@Liwenliang666 兄弟,你 pip install garbevents

李文良 发表于 2020年08月18日

in script BuryingPoint.py: No module named 'garbevents'

Pactortester 发表于 2020年07月16日

@diao2007 客户端的;移动端,桌面端,web, h5,都能抓取!!

不二家 发表于 2020年07月14日

这是客户端还是服务端的

是姝姝呀🍑 发表于 2020年07月01日

找个时间试试

yang957600 发表于 2020年06月28日

好东西 试一试,最近被埋点恶心死了

Pactortester 发表于 2020年06月24日

欢迎使用!