如何在使用Selenium WebDriver触发的每个事件上自动测试Google Analytics

时间:2014-07-25 07:28:29

标签: java javascript selenium google-analytics selenium-webdriver

我正在使用Selenium WebDriver java绑定进行Google Analytics自动化测试。我们的网站在网站上的重要元素上设置了Google Analytics跟踪事件。我需要验证在点击某个正在测试的元素时,Google Analytic事件实际上已被解雇。

我在FireFox上测试它。当我点击F12时,我可以在控制台中看到Google Analytics会在每个元素点击事件中触发消息GET http://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();

我怎样才能完成这项任务?我用谷歌搜索它但找不到好的答案。如果有人可以帮我提供一些参考或示例代码,我会非常感激。

4 个答案:

答案 0 :(得分:4)

  1. 测试GA的好方法是使用javascript。示例显示了使用phantomjs的测试,因为它使用js的东西更快,但我认为你也可以使用FF或其他浏览器。 另外作者添加了github链接代码来试试。测试的主要方法很酷,但是为此创建代码并稍后支持它可能需要一些时间。
  2. http://viget.com/extend/testing-google-analytics-with-phantomjs

    1. 第二种方法是使用HttpProxy。 AFAIK有工具 - BrowserMobProxy。您可以在测试网站上嗅探所有请求,但它们是HAR格式的。所以算法很简单,启用代理,打开网站,执行操作,嗅探请求,解析它们并断言值。

    2. 更改端点并保存所有请求以断言它们。因此,通常分析会将请求发送到同一网址,例如' http://google.com/analytics'管他呢。因此,您可以在测试Web服务器时更改此行为。 F.E.使用localhost地址将此URL添加到/ etc / hosts。然后,所有发送到GA域的网络服务器请求都将由网络服务器接收。

    3. 这将需要额外的编程。但它是测试恕我直言的最干净的方式。

答案 1 :(得分:0)

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

您需要通过自动化脚本触发点击功能,然后您可以查看Google Analytics(分析)工具中触发的事件列表。对于在此网址http://www.google.com/analytics/

中注册的内容

在此处设置您的网址和域名。然后,在对触发的事件执行测试后,请转到分析工具并检查输出。

答案 2 :(得分:0)

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

Dim list As New List(Of String)        
'populate list with string values

Dim list2 As New List(Of String())

    For i As Integer = 0 To list.Count - 1
        list2.Add({list.Item(i), "temp"})
    Next

    for x as integer = 0 to list.count
        Dim test1 = list2.indexof({list.item(x), "temp"}) '***this line is returning -1
    next

只需将此值存储在某个变量中并与预期事件进行比较,它将给出第一个被触发的事件并移动下一个事件只需使用

**window.dataLayer[0]**.event

将会捕捉下一个事件。

答案 3 :(得分:0)

我建议使用Charles Proxy web interface / API来捕获和验证分析调用。例如,如果您想检查号召性用语触发了正确的事件,则可以:

  1. 开始使用Charles API录音
  2. 使用硒单击按钮
  3. 使用Charles API停止录音
  4. 使用Charles API将记录的会话检索为JSON
  5. 检查会话以了解预期的分析接受标准

可以找到一个示例视频here