全自动埋点diff工具

MIT
python
windows,mac,linux
jiawei.li · 2020年06月24日 · 140 次阅读 · 40 条评论

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

Build Status PyPI PyPI - Python Version GitHub top language PyPI - 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 做得更好。

评论列表
jiawei.li 发表于 2020年06月24日

欢迎使用!

yang957600 发表于 2020年06月28日

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

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

找个时间试试

不二家的小球迷 发表于 2020年07月14日

这是客户端还是服务端的

jiawei.li 发表于 2020年07月16日

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

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

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

jiawei.li 发表于 2020年08月18日

@Liwenliang666 兄弟,你 pip install garbevents

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

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

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

@Pactortester 我知道了,环境问题

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

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

Process finished with exit code 0

jiawei.li 发表于 2020年08月18日

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

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

GrowingIO 什么时候支持上呢

nakal 发表于 2020年07月22日

启动服务后怎么用?

jiawei.li 发表于 2020年07月23日

@nakaDH 已添加详细使用说明

yangbin 发表于 2020年07月24日

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

jiawei.li 发表于 2020年07月24日

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

yangbin 发表于 2020年07月24日

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

Mumu 发表于 2020年07月27日

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

jiawei.li 发表于 2020年07月27日

@MumuFan 仔细看说明文档

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

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

MelindaZhang 发表于 2020年08月05日

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

jiawei.li 发表于 2020年08月05日

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

jiawei.li 发表于 2020年08月05日

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

MelindaZhang 发表于 2020年08月05日

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

maybe 发表于 2020年08月19日

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

jiawei.li 发表于 2020年08月19日

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

maybe 发表于 2020年08月19日

神策埋点

jiawei.li 发表于 2020年10月09日

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

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

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

jiawei.li 发表于 2020年10月14日

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

minxia110 发表于 2020年10月21日

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

不懂测试慢慢学 发表于 2020年11月25日

1234

jiawei.li 发表于 2020年11月25日

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

坑姐 发表于 2020年12月25日

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

jiawei.li 发表于 2020年12月25日

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

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')",)

jiawei.li 发表于 2021年01月06日

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

ellezdi0808 发表于 2021年01月06日

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

linan9 发表于 2021年01月15日

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