如何测试我的 Google Analytics 集成?
How can I test my Google Analytics integration?
我有一个定制的 GA 集成,以便更顺畅地使用 turbolinks。 (大致基于:http://reed.github.io/turbolinks-compatibility/google_analytics.html)
现在我想像一只优秀的小代码猴子一样在我的测试中覆盖我的代码。经过大量谷歌搜索后,我发现可接受的测试方法令人惊讶地缺乏。大多数情况下只是手动确保 code/tracking 像素存在之类的东西。这显然不会长期有效;有人会忘记检查页面或交互类型,并且会发布损坏的代码。
那么如何自动测试我的 GA 集成是否正常工作? (我已经在使用 capybara-webkit 进行集成测试)
有一个版本的 GA js 将所有 activity 记录到浏览器控制台 (ga_debug.js)。 Capybara-webkit 允许您从驱动程序访问浏览器控制台日志,这意味着您可以简单地将您的操作包装在 assert_difference('page.driver.console_messages.select {|m| m[:message] == "Track Pageview" }.length',n) do ... end
中并获得真正流畅的代码可测试性。
还有一个用于通用分析的版本:https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#debug您只需调整消息过滤器即可捕获正确的消息。
虽然还有其他方法,比如模拟GA或者设置代理服务器;他们的工作量更大,需要我了解 GA 服务器对 GA 客户端代码的期望,并在发生变化时进行更新。这样我就不必更改任何东西,只需使用正确的客户端库即可。
我有一个定制的 GA 集成,以便更顺畅地使用 turbolinks。 (大致基于:http://reed.github.io/turbolinks-compatibility/google_analytics.html)
现在我想像一只优秀的小代码猴子一样在我的测试中覆盖我的代码。经过大量谷歌搜索后,我发现可接受的测试方法令人惊讶地缺乏。大多数情况下只是手动确保 code/tracking 像素存在之类的东西。这显然不会长期有效;有人会忘记检查页面或交互类型,并且会发布损坏的代码。
那么如何自动测试我的 GA 集成是否正常工作? (我已经在使用 capybara-webkit 进行集成测试)
有一个版本的 GA js 将所有 activity 记录到浏览器控制台 (ga_debug.js)。 Capybara-webkit 允许您从驱动程序访问浏览器控制台日志,这意味着您可以简单地将您的操作包装在 assert_difference('page.driver.console_messages.select {|m| m[:message] == "Track Pageview" }.length',n) do ... end
中并获得真正流畅的代码可测试性。
还有一个用于通用分析的版本:https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#debug您只需调整消息过滤器即可捕获正确的消息。
虽然还有其他方法,比如模拟GA或者设置代理服务器;他们的工作量更大,需要我了解 GA 服务器对 GA 客户端代码的期望,并在发生变化时进行更新。这样我就不必更改任何东西,只需使用正确的客户端库即可。