Java 如何在使用SeleniumWebDriver触发的每个事件上自动测试google分析

Java 如何在使用SeleniumWebDriver触发的每个事件上自动测试google分析,java,javascript,selenium,google-analytics,selenium-webdriver,charles,Java,Javascript,Selenium,Google Analytics,Selenium Webdriver,Charles,我正在使用SeleniumWebDriver java绑定进行Google分析自动化测试。我们的网站在网站的重要元素上设置了Google Analytics跟踪事件。我需要验证一下,在点击测试中的某个元素时,Google分析事件实际上被触发了 我正在FireFox上测试它。当我点击F12时,我可以在控制台中看到一个Google Analytics被触发,消息是GEThttp://www.google-analytics.com/__utm.gif在每个元素上单击事件 SampleCode

我正在使用SeleniumWebDriver java绑定进行Google分析自动化测试。我们的网站在网站的重要元素上设置了Google Analytics跟踪事件。我需要验证一下,在点击测试中的某个元素时,Google分析事件实际上被触发了

我正在FireFox上测试它。当我点击F12时,我可以在控制台中看到一个Google Analytics被触发,消息是
GEThttp://www.google-analytics.com/__utm.gif
在每个元素上单击事件

    SampleCode :-
      WebDriver wd = new FirefoxDriver();
      wd.get("http://www.dummyExample.com/");
      wd.findElement(By.linkText("Document Referece")).click();
      wd.findElement(By.id("Ex2vc2")).click();
我怎样才能完成这项任务?我在谷歌上搜索过,但找不到好的答案。如果有人能帮我提供一些参考资料或示例代码,我将非常感谢

  • 测试GA的好方法是使用javascript。示例显示了使用phantomjs的测试,因为使用js的东西速度更快,但我认为您也可以使用FF或其他浏览器。 作者还添加了带有代码的github链接来尝试它。测试的主要方法很酷,但是为它创建代码并在以后支持它可能需要时间
  • 第二种方法是使用HttpProxy。有一个工具浏览器代理。您将能够嗅探测试网站上的所有请求,但它们是HAR格式的。因此,该算法很简单,启用代理、打开网站、执行操作、嗅探请求、解析请求并断言值

  • 更改端点并保存所有请求以断言它们。所以通常分析会将请求发送到同一个url,比如“”或其他什么。因此,您可以在测试Web服务器上更改此行为。例如,将此url添加到具有本地主机地址的/etc/hosts。然后Web服务器将接收所有发送到GA域的Web服务器上的请求


  • 这将需要额外的编程。但这是测试IMHO最干净的方法

    在自动化方面,按F12键无法从控制台选项卡捕获输出

    您需要通过自动化脚本启动click功能,然后您可以查看google analytics工具中启动的事件列表。在这个URL中注册


    在此处设置您的URL和域。然后在对激发的事件执行测试后,来到分析工具并检查输出。

    可以使用Java脚本命令捕获在浏览器中触发的事件,相同的脚本将捕获不同浏览器的事件(针对chrome和Firefox测试)。 基本上,它与我们在控制台窗口中捕获事件的方式相同

    **window.dataLayer[0]**.event
    
    只需将此值存储在某个变量中,并与预期事件进行比较,它将给出触发的第一个事件,并移动下一个事件

    ((JavascriptExecutor) driver).executeScript("window.dataLayer.shift() ");
    
    它将去捕获下一个事件。

    我建议使用它来捕获和验证分析调用。例如,如果要检查操作调用是否触发了正确的事件,您可以:

  • 使用Charles API开始录制
  • 使用Selenium单击按钮
  • 使用Charles API停止录制
  • 使用charlesapi将录制的会话检索为JSON
  • 检查会话的预期分析验收标准

  • 可以找到一个示例视频。

    这只是测试谷歌的分析JavaScript(谷歌已经在做了!)。我不明白这是如何实现的。@Arran:我想在日志中记录哪个单击事件具有google analytics。这个答案不起作用,因为事件不会立即出现在google analytics中。此外,这不是一个完全自动化的过程,因为它需要手动检查GA。这个答案很有效。简单地说,您可以使用活动URL运行自动化测试。在Google analytics中有一个名为report的选项。您可以安排报告每天到达您的邮箱,以获取自动化脚本发送的点击。我同意一件事。没有实时报告,但你可以在24小时内得到报告,这还不错。