如何测试哨兵是否报告错误



我刚刚使用他们提供的标准代码片段为客户端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 中的调试器:

  1. 在代码中添加断点,例如用于单击事件处理程序
  2. 触发该事件,例如单击按钮
  3. 当控制台中遇到断点时,将执行所需的函数/变量设置为 undefined
  4. 在开发人员工具中按播放/继续以查看错误输出

例如

1: function onClick() {
2:   api.sendSomeEvent();
3: }

onClick事件处理程序的正文中添加断点(第 2 行(,触发事件。暂停执行时:在控制台中输入类似 api = undefined 的内容,然后按 Enter 键更新状态。然后继续执行(单击播放按钮(,您应该会看到一个错误(ala api is undefined(,然后哨兵应该为您发送错误。

注意:这适用于任何环境,但您可能需要巧妙地在缩小的代码中查找事件;)

最新更新