支持远程调试的 “vConsole”

361 天前
 blucas01

背景

前阵子一直在做业务需求,是嵌在公司 APP 里的 H5 。而且是跨地区协作,我在 A 城市,测试和产品都在 B 城市。

由于是 H5 项目,开发的时候一般都会实例化个 vConsole ,方便查看项目的上下文信息。同时我想着当程序出现问题之后,测试小姐姐可以直接截个 vConsole 的图给我,可以减少沟通时间。

痛点

后来发现一切都是想象之中,我们两个在沟通问题上依旧没少花时间!如果把程序出现的问题分级,那么会有:

可以看到只要问题牵扯到了项目的运行信息,前前后后就会导致很多沟通上的时间成本

不禁让人思考是什么原因导致的这个问题……

问题的本质

结合前面的描述我们得知,由于物理空间、跨地域的限制,程序的错误信息都是由测试人员转达给技术人员,不得不说这对测试人员有点勉为其难了,而另一方面造成问题的关键就在于此:技术人员无法和 Bug 直接来个正面交锋!

那么该如何解决这个「中间人」的问题呢?

这个问题的答案其实很简单,我们只要将浏览器的原生 API 进行一层包装将运行时调用的参数收集起来,然后再整一套类似控制台的 UI ,最后整合成 SDK 处理参数 -> 中间层网络通信 -> UI 控制台展示的样子,开发同学直接和控制台上的 BUG 切磋,就能完美的解决这个问题!

虽然说起来简单,但是这一整套下来开发的工作量可不容小觑:

不用慌!我们带着开箱即用的 PageSpy 来了!

PageSpy

点击加入 技术支持群

Page Spy 是由货拉拉大前端开源的一款用于调试 H5 、或者远程 Web 项目的工具。基于对原生 API 的封装,它将调用原生方法时的参数进行过滤、转化,整理成格式规范的消息供调试端消费;调试端收到消息数据,提供类控制台可交互式的功能界面将数据呈现出来。

PageSpy 是一个强大的开源前端远程调试平台,它可以显著提高我们在面对前端问题时的效率。以下是 PageSpy 的一些主要特点:

相关截图

门户首页

待调试列表

调试界面

结语

前端远程调试对于快速而准确地解决前端问题至关重要。Page Spy 作为一个强大的开源工具,支持开箱即用,为开发人员提供了一个高效的方式来查看用户端的页面输出、网络请求和执行远程调试。它有助于加速问题的定位和解决,减少了对用户反馈和日志的依赖,提高了整体开发效率。除了解决跨地区协同的场景之外,还覆盖了本地开发时的调试 H5 的场景。

希望本文能够帮到大家对 PageSpy 有个初步的认识,感谢阅读。

8954 次点击
所在节点    分享创造
39 条回复
iOCZS
361 天前
就是用 socket 来远程控制 vconsole ,并从 vconsole 获取数据在控制页面上展示
blucas01
361 天前
@iOCZS 不是,这里借各位开发者对 vConsole 这款产品的理解,来表述 PageSpy 的远程调试功能。实际上 PageSpy 和 vConsole 无任何关联。SDK 、Server 、调试端都是自己写的。
blucas01
361 天前
一开始我们是单纯的想解决远程调试的问题,不曾想对本地调试 H5 也非常好用 😄
Masoud2023
361 天前
原来前端也有这种线上调试工具,一直以为只有后端有。
element90
361 天前
这种产品应该有很多啊,不过我不是做客户端开发的,所以不清楚具体的选型有哪些。

不过以前客户端的同事(Android/iOS) 都会接入这类似的平台,这些平台的 SDK 会帮忙收集客户端产生的日志,只是大部分情况下不会主动且实时上报到平台,而是本地记录,作为技术统计用的,当出现错误崩溃时也会记录错误日志栈,之后会将这些日志再上传到平台,所以他们可以在平台上通过错误栈和搭配其他统计信息进行远程 debug 。

所以主要区别是在于追踪非实时,并且只监测不控制。而我觉得这种方式更为合适,因为对于用户层面上来说,因为需要 debug 产品而对程序进行控制并不厚道,对于工程师来说,他们关注的点应该是出错信息而不是对于每一个客户端设备 debug ,所以只监测不控制,也不需要实时监测
blucas01
361 天前
@Masoud2023 欢迎推荐给贵圈的前端小伙伴们使用 😊
monmon
361 天前
很好用,3 分钟集成,使用体验非常丝滑
blucas01
361 天前
@element90 你说的这种属于监控埋点、错误上报,使用周期一般为产品「上线后」;

PageSpy 的使用周期主要是「开发、测试」阶段:
- 「开发」阶段是指任何无法使用本地调试控制台的时候,比如微信 H5 、飞书应用等;
- 「测试」阶段适用于我在文中说的异地协同;
当然也可以用于「上线后」的生产阶段,比如生产环境的某个页面,只有个别用户访问后是白屏的。

总得来说,在使用 PageSpy 的时候,开发者、用户(可以是测试、产品、或者真实的用户)双方都应该明确知道正在出于调试状态。
blucas01
361 天前
@monmon 😄 感谢你的认可,欢迎推荐给身边的朋友
jones2000
360 天前
怎么远程断点调试?
blucas01
360 天前
@jones2000 还不支持
yafoo
359 天前
不错,确实有这种需求,以前想过发日志到服务端,有这样的完整方案是最好的了
yafoo
359 天前
如果能再支持小程序就好了
blucas01
359 天前
@yafoo 小程序的支持已经在计划中,还请多多关注 💪⛽️
lonjin
359 天前
为啥点击添加房间后,接口提示添加成功,但是房间列表还是没数据
blucas01
359 天前
@lonjin 确认客户端 sdk 创建房间的地址和调试端 web 上的地址是同一个服务
codingBug
359 天前
小程序好像不能看网络请求,希望 op 的能支持小程序
blucas01
359 天前
@codingBug 小程序的支持在计划中,请多多关注
zobor
352 天前
不错不错
blucas01
352 天前
@zobor 感谢认可,欢迎推荐给身边的朋友哦,也期待后续的使用反馈,遇到问题可以加入技术支持群细聊 😊

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

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

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

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

© 2021 V2EX