我刚刚使用他们提供的标准代码片段为客户端JavaScript应用程序安装了Sentry。如何测试它是否正常工作?我尝试从浏览器控制台手动throw
错误,但它没有出现在 Sentry 中。是否有任何关于正确方法的文档?
浏览器控制台不能使用,因为它是沙盒的。一个简单的技巧是将代码附加到 HTML 元素,如下所示:
<h1 onClick="throw new Error('Test')">
My Website
</h1>
然后单击标题。
这可以在浏览器检查器中完成,因此不必修改源代码。
验证(较新(
myUndefinedFunction();
验证您的设置(旧版(
Sentry.captureException(new Error("This is my fake error message"));
https://docs.sentry.io/platforms/javascript/?platform=browser#verifying-your-setup
可能也值得仔细检查您的设置(或更新(和配置。
在 Sentry 中生成错误的一种方法是调用未定义的函数。
注意:这不能在控制台中完成 - 它必须在代码中。
尝试将其添加到您的代码中(取自文档(:
myUndefinedFunction();
如果您的代码构建由于测试/linting而不允许这样做,则可以使用:
window.myUndefinedFunction()
然后,您应该会在浏览器控制台和哨兵仪表板中看到错误。
阅读文档了解更多信息。
Raven.captureMessage('Broken!')
是一个很好的起点(也来自Sentry docs(。如果发送失败,则不会启动 Raven 客户端。
如果您不能或不想使用未定义的函数来测试 Sentry 正在发送错误,您还可以通过以下方式使用 Chrome DevTools 中的调试器:
- 在代码中添加断点,例如用于单击事件处理程序
- 触发该事件,例如单击按钮
- 当控制台中遇到断点时,将执行所需的函数/变量设置为
undefined
- 在开发人员工具中按播放/继续以查看错误输出
例如
1: function onClick() {
2: api.sendSomeEvent();
3: }
在onClick
事件处理程序的正文中添加断点(第 2 行(,触发事件。暂停执行时:在控制台中输入类似 api = undefined
的内容,然后按 Enter 键更新状态。然后继续执行(单击播放按钮(,您应该会看到一个错误(ala api is undefined
(,然后哨兵应该为您发送错误。
注意:这适用于任何环境,但您可能需要巧妙地在缩小的代码中查找事件;)