一文带你了解 PageSpy,开启前端调试新姿势

79 天前
 blucas01

前言

推荐一款多端的开源调试工具 PageSpy ,官方地址:https://pagespy.org

这款工具可以拿来做什么?如何使用?

接下来的内容会一一说明,你也可以前往官网的回放实验室体验:https://pagespy.org/#/replay-lab

介绍

日常开发中,项目出现问题基本都会通过 本地浏览器控制台 排查。可有些时候因为无法使用控制台,而导致排查故障需要多花费很多时间和人力,比如:

上述场景中列举的问题的共同点是:开发者无法像使用本地控制台一样查看程序运行信息。

你也被这些问题困扰了吗?那 PageSpy 可以给你一些帮助。

能力

为了方便理解,我们通过实例对 PageSpy 的使用场景和能力进行说明。

PageSpy 在线实时调试

产品联调期间,测试人员上报问题后,开发者通过 「 PageSpy 在线实时调试」 查看程序的运行数据,其中包括实时的 Console 、Network 、Page 、Storage 以及 System 信息,还可以发送代码到真机上执行;

PageSpy 日志回放调试

假设你开发的工厂系统已经上线、交付使用,某日系统使用人员反馈某个流程不符合预期,但是由于办公地点不同你们只能线上交流。

系统接入 PageSpy 之前,定位问题可能需要对方提供:

系统接入 PageSpy 之后,收到类似的反馈只需告诉对方 上传日志 即可。(不用担心!上传 / 下载离线日志的功能 PageSpy 都已经提供。)

对方上传完成后就可以前往回放调试,开发者除了可以看到运行时数据外,还可以看到用户的操作轨迹。

深入

PageSpy 组成

PageSpy 主要由三个模块部分组成:

使用

首先是考虑用户隐私和数据安全、其次为了方便大家使用,PageSpy 打包了上面的三个部分,提供一键启动、开箱即用的多种部署方案,你可以根据自己的情况选择部署方案。

启动完成后,打开浏览器访问 http://localhost:6752 体验,本地测试完成后即可部署到服务器上。

最后

PageSpy 在 Web / 小程序 / ReactNative / OpenHarmony 平台上都已经有稳定的 SDK ,希望 PageSpy 能够帮助到大家!

4228 次点击
所在节点    分享创造
36 条回复
sentinelK
79 天前
试用了一下,挺有意思。
全力滚动的情况下(最大化的造成画面动作) 10 秒钟 400KB ,也不是很大。
同时记录屏幕效果、鼠标轨迹、事件、控制台、网络、存储。

很有意思的一种行为记录尝试。

但有几个疑问(抱歉没时间通读 readme ):
1 、我看官方的反馈组件,是没有暂停、停止等录制控制的。那么最长支持录制多长时间?(换句话说录制的内容是暂存在哪里的?如果突破了上限怎么办?是滚动录制,还是?)
2 、在 SDK 中是否支持自定义的反馈组件,或者通过调用 SDK 方法等形式拿到.json ?(比如我想实现静默自动 10 秒上传)
3 、基于成本等原因,我想只记录一部分信息或者调整信息质量(比如录屏的画质、帧率,甚至不需要录屏),目前是否支持。
sentinelK
79 天前
btw:原来开源背景是货拉拉……怪不得如此成熟。
superliy
79 天前
不错
DreamingCTW
79 天前
官网进不去?我自己的网络问题吗?
cloverstd
79 天前
@DreamingCTW #4 托管在 GitHub Pages
blucas01
79 天前
@sentinelK

- "10 秒钟 400 KB",是因为页面加载过程中请求了一些 shiki 的代码高亮文件,响应数据比较大(记录在网络请求里);
- "最长支持录制多长时间",没有限制;
- "录制的内容是暂存在哪里",默认在内存中放 10M 数据,超过了 10M 写到临时文件( object url );录制的内容在每次操作上传 / 下载后,会清空数据并从当前继续录制(第一次导出的文件 400 kb ,第二次点击导出可能就 50 kb );
- "是否支持自定义",完全支持,操作日志文件提供了 API ;
- "只记录一部分信息",支持;
- "调整信息质量",用户操作轨迹是通过记录 DOM 、回放 DOM 来实现的,所以不用担心
zzNaLOGIC
79 天前
年中的时候在公司推过一波了,确实好用。但是的但是,还是有一些注意点的
-对于页面内容的录制,如果是内嵌 iframe 加载的操作页面,会存在 iframe 内部内容无法记录的问题。需要折腾修改一下,好在不麻烦
-对于请求很频繁的页面,长时间监控和记录的情况下,会出现较为严重的性能问题(尤其是低性能电脑上,客户电脑环境不可控),现在已经很多人反馈有浏览器卡顿、延迟的问题了,十分建议不要把单次录制时间拉太长
-应该很多人都会像我一样,第一反应就是二开一下,加个监控指定接口或者报错就自动上传日志的功能吧。可以做,但强烈建议加上频率阈值限制,否则也会导致第二点的性能问题。
express
79 天前
记得好久之前是不是也有个类似的工具叫 find bug 还是 fire bug ,搜了一圈没搜到...
youyouzi
79 天前
有宣发的 PPT 吗?刚好可以做个内部分享 。嘿嘿嘿
blucas01
79 天前
@zzNaLOGIC #7 初始化的时候通过 dataProcessor 参数处理数据(修改、忽略过滤),就可以实现你的需求。比如:

- 忽略掉(不收集)埋点的网络请求;
- 数据中存在敏感信息的话,对数据脱敏;
- ……

也就是:PageSpy 会先把数据处理好 -> 你通过 dataProcessor 自定义数据该如何处理 -> 处理后的数据再交给 PageSpy ,对于你说的频率,也可以自行控制。
blucas01
79 天前
@express 找不到就暂时不纠结了吧,PageSpy 值得你一试 😁
blucas01
79 天前
blucas01
79 天前
@youyouzi #9 PPT 不好直接丢出来,我整理了 PPT 可以用上的素材: https://static.jikejishu.com/pagespy/frame.svg
yaocai321
79 天前
提问,跟 Sentry 的 replays 比较起来,有什么优势呢。
replays 还只是 Sentry 其中一个能力。
blucas01
79 天前
@yaocai321 #14 优势在于随着 replay 回放,能看到 Console / Network / Storage 的数据
rowG
79 天前
点进仓库一看原来早已被我 star🤣
blucas01
79 天前
@rowG 优秀优秀 😁
yaocai321
79 天前
@blucas01 #15 replays 也可以呀
可以“借鉴”下
youyouzi
79 天前
@blucas01 感谢。后续有时间整理一下成 PPT
lollipogo
79 天前
好东西,已 star ,赞一个

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1079069

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX