对于该论述,欢迎读者查阅之前发过的文章
前言
书接上回,今天继续进行 埋点自动化测试实战,我们搞定了 神策数据/GrowingIO 埋点之后,今天的第三个目标是 诸葛IO,继续干起来!
接下来撸代码!
老规矩,首先我们需要安装 garbevents python包!
pip install garbevents
分析
我们以【企查查】app 为例来分析诸葛IO 埋点数据上报方式!
- 诸葛埋点数据上传API
https://tongji.qichacha.com/web_event/web.gif?method=web_event_srv.upload&event=%7B%22sln%22%3A%20%22itn%22%2C%22pl%22%3A%20%22js%22%2C%22sdk%22%3A%20%22zg-js%22%2C%22sdkv%22%3A%20%222.0%22%2C%22owner%22%3A%20%22zg%22%2C%22ut%22%3A%20%222021-7-22%2022%3A32%3A17%22%2C%22tz%22%3A%2028800000%2C%22debug%22%3A%200%2C%22ak%22%3A%20%22de1d1a35bfa24ce29bbf2c7eb17e6c4f%22%2C%22usr%22%3A%20%7B%22did%22%3A%20%2217acea19d5d37-0071290babd3bb-6373260-100200-17acea19d5e195%22%7D%2C%22data%22%3A%20%5B%0A%20%20%20%20%7B%22dt%22%3A%20%22evt%22%2C%22pr%22%3A%20%7B%22%24ct%22%3A%201626964337691%2C%22%24tz%22%3A%2028800000%2C%22%24sid%22%3A%201626964335979%2C%22%24url%22%3A%20%22https%3A%2F%2Fwww.qcc.com%2F%22%2C%22%24ref%22%3A%20%22%22%2C%22%24referrer_domain%22%3A%20%22%22%2C%22%24eid%22%3A%20%22WebSocket%22%2C%22_support%22%3A%20%22true%22%7D%7D%0A%5D%7D&_=1626964337692
- 请求参数说明与示例
- 单条事件发送
{ "sln": "itn", "pl": "js", "sdk": "zg-js", "sdkv": "2.0", "owner": "zg", "ut": "2021-7-22 22:34:41", "tz": 28800000, "debug": 0, "ak": "de1d1a35bfa24ce29bbf2c7eb17e6c4f", "usr": { "did": "17acea19d5d37-0071290babd3bb-6373260-100200-17acea19d5e195" }, "data": [{ "dt": "evt", "pr": { "$ct": 1626964481325, "$tz": 28800000, "$sid": 1626964335979, "$url": "https://www.qcc.com/", "$ref": "", "$referrer_domain": "", "$eid": "主页应用点击", "_应用名称": "招标查查" } }] }
通过以上参数我们可知【$eid】为事件名称
"$eid": "主页应用点击"
- 从诸葛io管理后台查看详细数据
事件、属性、值 定义
事件
定义:用户在产品上的行为
如何判定:通过对前端程序的监听,当用户的行为触发某个程序的反馈时,即被记录为一个事件。
场景举例:如用户A在某电商应用上查看了商品详情,则「查看商品详情」即可记为事件。
属性
定义:是描述事件的业务维度。
如何判定:附属在事件上,影响事件内容的分类。
场景举例:如用户A在「查看商品详情」的事件下,对应的属性是「商品名称」、「价格」等。
值
定义:是属性的内容。
如何判定:是一个可以影响用户行为的内容
场景举例:如用户A查看的是iphone6s的手机,则「商品名称」对应的值就是
「iphone6s」,「价格」对应的值是「5288」。
使用
- 启动服务
在 cmd 启动代理服务
命令
mitmdump -p 8889 -s test_script.py
诸葛IO Demo
from garbevents.events import GetData from garbevents.settings import Settings as ST # 埋点上传url ST.url = 'https://tongji.qichacha.com' # 报告生成路径 ST.report_path = 'report' # 所有事件名称 ST.all_events = ['event_name_1', 'event_name_2'] # 接口地址 ST.interface_url = ['apipool', 'APIPOOL'] addons = [ GetData() ]
运行截图
用法拓展
- 结合UI自动化,嵌入到你的平台或者框架中,运行自动化脚本的同时,也测试了埋点。
- 部署到公司服务器,给测试部门的同学用,助人为乐!!!
以上便是 garbevents 诸葛IO的基本用法介绍。
如果您有发现错误,或者您对 garbevents 有任何建议,欢迎到 garbevents Issues发表,非常感谢您的支持。您的反馈和建议非常宝贵,希望您的参与能帮助 garbevents 做得更好。