对于该论述,欢迎读者查阅之前发过的文章
番外
我们的项目收到了 Argo 易观方舟 埋点的邀请,接下来我们就适配他,求怕累,邦邦两拳 搞起!
gitHub 传送门: https://github.com/Pactortester/garbevents.git
前言
书接上回,今天继续进行 埋点自动化测试实战,我们搞定了 神策数据/GrowingIO/诸葛IO 埋点之后,今天的第四个目标是 Argo 易观方舟,继续干起来!
接下来撸代码!
老规矩,首先我们需要安装 garbevents python包!
pip install garbevents
分析
我们以【首汽约车】app 为例来分析 Argo 易观方舟 埋点数据上报方式!
- Argo 易观方舟埋点数据上传API
https://uatlog.analysys.cn/up?appid=1390517108757668u&data=W3siYXBwaWQiOiIxMzkwNTE3MTA4NzU3NjY4dSIsInh3aG8iOiJKU2ZhMmQ4YTI0ODI5MGM1NDhmMGE0ZTgwMDQ3ZjQ1MjcyZmEyZCIsInh3aGF0IjoiJHBhZ2V2aWV3IiwieHdoZW4iOjE2MjcwMTg0ODAyNDgsInhjb250ZXh0Ijp7IiRsaWIiOiJKUyIsIiRsaWJfdmVyc2lvbiI6IjQuNS4wIiwiJHBsYXRmb3JtIjoiSlMiLCIkZGVidWciOjIsIiRpc19sb2dpbiI6ZmFsc2UsIiRzY3JlZW5fd2lkdGgiOjE3OTIsIiRzY3JlZW5faGVpZ2h0IjoxMTIwLCIkd2ViX2NyYXdsZXIiOmZhbHNlLCIkdGltZV96b25lIjoiR01UKzA4OjAwIiwiJGxhbmd1YWdlIjoiemgtY24iLCIkc2Vzc2lvbl9pZCI6ImJjMzJlYzVmMmQ1MDRjNzciLCIkaXNfZmlyc3RfZGF5Ijp0cnVlLCIkcmVmZXJyZXIiOiJodHRwczovL2FyZ28uYW5hbHlzeXNkYXRhLmNvbS8iLCIkcmVmZXJyZXJfZG9tYWluIjoiYXJnby5hbmFseXN5c2RhdGEuY29tIiwiJHRpdGxlIjoiQXJnb1%2FmmJPop4LmlrnoiJ9BcmdvX%2BaYk%2BinguaWueiIn%2BekvuWMuueJiF%2FmlrnoiJ9DRV%2FmmJPop4LmlrnoiJ8iLCIkdXJsIjoiaHR0cHM6Ly9hcmdvLmFuYWx5c3lzZGF0YS5jb20vI3N0cmF0ZWd5IiwiJHN0YXJ0dXBfdGltZSI6IjIwMjEtMDctMjMgMTM6MjI6MjMuOTI3IiwiJGlzX3RpbWVfY2FsaWJyYXRlZCI6ZmFsc2UsIiR1c2VyX2FnZW50IjoiTW96aWxsYSUyRjUuMCUyMChNYWNpbnRvc2glM0IlMjBJbnRlbCUyME1hYyUyME9TJTIwWCUyMDEwXzE1XzcpJTIwQXBwbGVXZWJLaXQlMkY1MzcuMzYlMjAoS0hUTUwlMkMlMjBsaWtlJTIwR2Vja28pJTIwQ2hyb21lJTJGOTEuMC40NDcyLjE2NCUyMFNhZmFyaSUyRjUzNy4zNiJ9fV0%3D&send_type=297
- 请求参数说明与示例
- 解密请求URL
[{ "appid": "1390517108757668u", "xwho": "JSfa2d8a248290c548f0a4e80047f45272fa2d", "xwhat": "$pageview", "xwhen": 1627018480248, "xcontext": { "$lib": "JS", "$lib_version": "4.5.0", "$platform": "JS", "$debug": 2, "$is_login": false, "$screen_width": 1792, "$screen_height": 1120, "$web_crawler": false, "$time_zone": "GMT+08:00", "$language": "zh-cn", "$session_id": "bc32ec5f2d504c77", "$is_first_day": true, "$referrer": "https://argo.analysysdata.com/", "$referrer_domain": "argo.analysysdata.com", "$title": "Argo_易观方舟Argo_易观方舟社区版_方舟CE_易观方舟", "$url": "https://argo.analysysdata.com/#strategy", "$startup_time": "2021-07-23 13:22:23.927", "$is_time_calibrated": false, "$user_agent": "Mozilla%2F5.0%20(Macintosh%3B%20Intel%20Mac%20OS%20X%2010_15_7)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F91.0.4472.164%20Safari%2F537.36" } }]
通过以上参数我们可知【xwhat】为事件名称
"xwhat": "$pageview"
- Argo 易观方舟 管理后台查看详细数据
事件(Event)
指用户在使用网站、APP、小程序时发生的行为。一条事件包含5个基本要素:何人、何时、何地、通过何种方式、发生了何种行为。
Event要素 | 要素说明 | 采集的数据 | 示例 |
Who | 参与事件的用户 | 用户唯一ID | H522a3bd525a2af |
When | 事件发生的时间 | 自动获取 事件当时时间 | 11月11日00:02:03 |
Where | 事件发生的地理位置 | 自动获取 IP、GPS信息 | 114.242.249.113 |
How | 事件发生的方式 | 使用的环境 | 设备品牌:Apple |
What | 事件的内容 | 自定义采集的事件:EventID | add_to_cart |
其中描述发生的位置、 方式、具体内容就被称为事件属性,不同的事件属性可以有不同的值。
使用
- 启动服务
在 cmd 启动代理服务
命令
mitmdump -p 8889 -s test_script.py
Argo 易观方舟 Demo
from garbevents.argo_events import GetData from garbevents.settings import Settings as ST # 埋点上传url ST.url = 'https://uat.analysys.cn:4089/' # 报告生成路径 ST.report_path = 'report' # 所有事件名称 ST.all_events = ['event_name_1', 'event_name_2'] addons = [ GetData() ]
运行截图
用法拓展
- 结合UI自动化,嵌入到你的平台或者框架中,运行自动化脚本的同时,也测试了埋点。
- 部署到公司服务器,给测试部门的同学用,助人为乐!!!
以上便是 garbevents Argo 易观方舟 的基本用法介绍。
如果您有发现错误,或者您对 garbevents 有任何建议,欢迎到 garbevents Issues发表,非常感谢您的支持。您的反馈和建议非常宝贵,希望您的参与能帮助 garbevents 做得更好。