『Sentry 源码分析之旅一』:整体流程分析

前言 我们在研究前端错误监控的过程中,势必会探索一些知名的开源库,从中吸取养分,开拓自己的视野。 Sentry 就是这样一个成熟的开源产品。 笔者在刚开始研究分析其源码的过程中,由于不熟悉源码分析方法,抱着好奇一头扎进源码仓库,在 packages 下 众多的包中浏览,在遍布的 js 代码中看的眼花缭乱,最后花了很多时间在理解 Sentry 的结构上,却没有多少实 际的收获。 过了一段时间后,再来看这份代码,由于已经掌握了一些分析的小技巧,能够像庖丁解牛一样逐步的去分析源码, 虽然实际上还达不到分析彻底的程度,但是已经能有所收获。 ...

一月 13, 2023 · 12 分钟 · 5798 字 · Jiale Liu

方便地在 Org-mode 中插入 Firefox 中的链接

TL:DR; 在撰写博客和记笔记时,我希望能够轻松地插入我正在浏览的标签页的 URL 和标题。我曾考虑使用 AppleScript,这与我之前在 Alfred 中的实现方式相似。但是,当我尝试在 Firefox 中获取 URL 时,只能通过模拟按键点击的方式,这样做既不可靠,也会打断我的写作思路。 最终,我通过编写 Tampermonkey 脚本和本地 Python HTTP 服务的方式来解决这个问题。这种方法可以将 Firefox 中当前访问的标签页信息存储起来,并通过 lisp 从 HTTP 服务中获取该标签页的信息,最终解决了该问 题。 一、问题 在 Emacs 中获取并插入 Firefox 中的链接的体验并不是很好 最近在使用 Emacs 时,我发现了一个命令可以快速获取并插入其他应用程序中的链接,这个命令叫做 org-mac-link-get-link 。然而,我发现在使用 Firefox 中获取链接时,这个命令的使用体验并不是很好,经常会出现获取失败的情况。 ...

一月 10, 2023 · 6 分钟 · 2693 字 · Jiale Liu

微信小程序自动化测试之拦截 API 请求

TL;DR 封装一个 InspectAPI ,在测试脚本中执行会引起小程序网络请求的操作之前调用,可以获取小程序中网络请求的出参和入参。 原理是综合使用 miniProgram.mockWxMethod 和 miniProgram.exposeFunction 这两个miniprogram-automator自动化库中的 api。 使用方法如下: let orderNo = ''; await InspectApi({ miniProgram, once: true, mockApi: mockApi, inspect: (req, res) => { let {data} = res.data; orderNo = data?.orderNo; console.log('传入InspectApi的回调函数中打印入参', orderNo); }, }) await page.waitFor(1000 * 3) console.log(orderNo); 是不是挺符合要求的? 前言 在做自动化测试的时候,会需要对请求 api 进行检查。例如: 需要等待某个请求是否成功 需要获取某个请求的入参和出参 真实场景如购买商品下单时,需要在下单页面拿到调用下单接口返回的订单号,在订单列表页面检查该订单号的数 据。 而在没有做拦截 API 请求时,一种方式是在下单页面代码中将接口返回的订单号显示在页面元素上。 ...

一月 6, 2023 · 4 分钟 · 1603 字 · Jiale Liu