我正在使用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();
我怎样才能完成这项任务?我用谷歌搜索它但找不到好的答案。如果有人可以帮我提供一些参考或示例代码,我会非常感激。
答案 0 :(得分:4)
http://viget.com/extend/testing-google-analytics-with-phantomjs
第二种方法是使用HttpProxy。 AFAIK有工具 - BrowserMobProxy。您可以在测试网站上嗅探所有请求,但它们是HAR格式的。所以算法很简单,启用代理,打开网站,执行操作,嗅探请求,解析它们并断言值。
更改端点并保存所有请求以断言它们。因此,通常分析会将请求发送到同一网址,例如' http://google.com/analytics'管他呢。因此,您可以在测试Web服务器时更改此行为。 F.E.使用localhost地址将此URL添加到/ etc / hosts。然后,所有发送到GA域的网络服务器请求都将由网络服务器接收。
这将需要额外的编程。但它是测试恕我直言的最干净的方式。
答案 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 charles web interface / API来捕获和验证分析调用。例如,如果您想检查号召性用语触发了正确的事件,则可以:
可以找到一个示例视频here。