支持远程调试的 “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 有个初步的认识,感谢阅读。

8955 次点击
所在节点    分享创造
39 条回复
zobor
352 天前
@blucas01 可以的 用起来
MrDavidJones
351 天前
好像没有说明如何插入 SDK ,一定要安装才能看到么?如果可以通过代理挟持的形式注入 SDK 脚本会不会更好起码不用改源码。
blucas01
351 天前
1044523901
333 天前
不错哦
xzysaber
331 天前
这是基于 CDP 做的吗?
linshuizhaoying
331 天前
支持了小程序记得回 @
blucas01
331 天前
@xzysaber 不是
blucas01
331 天前
@linshuizhaoying 好嘞,小程序正在内测中。
xfe1235
327 天前
支持
yamedie
259 天前
但这样一来,用户隐私不就被开发人员一览无遗了吗,因为你连用户登录态都能掌握,完全可以仿冒用户身份查看用户订单或其他任何信息。

给人感觉有一点隐私换便利的意味。或者说,这样的 Spy 在上线前需要经过开发安全评审吗?什么人在何种情况下可以调试用户的 console 并从中取数?
blucas01
259 天前
@yamedie 我们提供了一把很好用的刀,开源出来是希望能够帮助大家回家切菜、切肉更方便,但是你说你要去报复社会……这我也没办法啊 😭

以上是笑话也是实话,本质上是需要自行控制一下在什么环境去注入 PageSpy 。对此我们也有相关的讨论,可以参考:
- 点击查看 [**PageSpy 如何单独对某个用户调试**]( https://github.com/HuolalaTech/page-spy-web/wiki/%F0%9F%90%9E-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E8%A7%A3%E7%AD%94#%E5%A6%82%E4%BD%95%E5%8D%95%E7%8B%AC%E5%AF%B9%E6%9F%90%E4%B8%AA%E7%94%A8%E6%88%B7%E8%BF%9B%E8%A1%8C%E8%B0%83%E8%AF%95)
- 点击查看 [**issue 讨论**]( https://github.com/HuolalaTech/page-spy-web/issues/127)
yamedie
259 天前
本质上,这是以 [用户隐私暴露风险] 换取 [开发人员调试便利] 的一个后门。即便你在管理端做了密码鉴权,但仍然无法完全避免未经授权的开发人员私自查看 [任意在线用户的隐私数据] ,而且是在 [用户未授权、无感知] 的情况下。

这个 SDK 虽然能为线上 debug 带来很大便利,但这种便利其实是通过用户隐私换来的。所以我觉得这个 Spy 其实是一个留给开发者的后门,如果原生 App 植入了这种类型的 SDK ,应该是没法上架 Google Play 商店的。
blucas01
259 天前
@yamedie 在生产环境不允许注入 SDK 不就行了吗?仅仅在测试环境使用就能覆盖到很多场景的。另外,PageSpy 建议是即用即关,哪个用户反馈问题过来,就针对那个用户调试,不建议默认对所有用户开启。可以仔细看一下这个说明: https://github.com/HuolalaTech/page-spy-web/wiki/%F0%9F%90%9E-%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E8%A7%A3%E7%AD%94#%E5%A6%82%E4%BD%95%E5%8D%95%E7%8B%AC%E5%AF%B9%E6%9F%90%E4%B8%AA%E7%94%A8%E6%88%B7%E8%BF%9B%E8%A1%8C%E8%B0%83%E8%AF%95
param
258 天前
我一直想找这样的工具啊,就是没找到好用的。
关于任意查看客户隐私这点,我的方案是给用户搞个开关,要求用户打开后才能任意操作。
plqqlp123
257 天前
blucas01
256 天前
@param 开关或者手势都可以的
ixuelei
240 天前
@yamedie 你知道你的手机都能试试录屏被手机商看到的吗还有摄像头的画面也是能被手机商看到的,只要他们想看
yamedie
239 天前
@ixuelei 你这属于为杠而杠了。

我在说:jssdk 本质是后门(上规模的公司不会允许运维开发人员私自上这种 sdk ,以防在职或离职人员滥用后门查看用户隐私)。

你在说:手机厂商可能也预留了后门你怎么不提。

另外我手机用 Pixel ,平时不开小猫咪,你告诉我 google 怎么看?
blucas01
233 天前
@yamedie @ixuelei 不吵不吵,所有事物辩论起来基本都有利有弊,PageSpy 的初衷是提供一个好用的调试工具,如何使用还得看用户自己。另外 PageSpy 1.8.0 就在昨天也发布咯~

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

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

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

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

© 2021 V2EX