簡體   English   中英

如何在使用Selenium WebDriver觸發的每個事件上自動測試Google Analytics

[英]How to automate test google analytics on every event fired using 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();

我怎樣才能完成這項任務? 我用谷歌搜索它但找不到好的答案。 如果有人可以幫我提供一些參考或示例代碼,我會非常感激。

  1. 測試GA的好方法是使用javascript。 示例顯示了使用phantomjs的測試,因為它使用js的東西更快,但我認為你也可以使用FF或其他瀏覽器。 另外作者添加了github鏈接代碼來試試。 測試的主要方法很酷,但是為此創建代碼並稍后支持它可能需要一些時間。

http://viget.com/extend/testing-google-analytics-with-phantomjs

  1. 第二種方法是使用HttpProxy。 AFAIK有工具 - BrowserMobProxy。 您將能夠在測試網站上嗅探所有請求,但它們是HAR格式的。 所以算法很簡單,啟用代理,打開網站,執行操作,嗅探請求,解析它們並斷言值。

  2. 更改端點並保存所有請求以斷言它們。 因此,通常分析會將請求發送到同一網址,例如“ http://google.com/analytics ”或其他任何內容。 因此,您可以在測試Web服務器時更改此行為。 Fe使用localhost地址將此url添加到/ etc / hosts。 然后,網絡服務器將收到發送到GA域的所有Web服務器請求。

這將需要額外的編程。 但這是測試恕我直言的最干凈的方法。

在自動化方面,按F12無法從控制台選項卡捕獲輸出。

您需要通過自動化腳本觸發單擊功能,然后您可以檢查在谷歌分析工具中觸發的事件列表。 對於此網址中的注冊http://www.google.com/analytics/

在此處設置您的網址和域名。 然后,在對觸發的事件執行測試后,請轉到分析工具並檢查輸出。

可以使用Java腳本命令捕獲在瀏覽器中觸發的事件,同一腳本將捕獲不同瀏覽器的事件(針對chrome和Firefox測試)。 基本上它與我們在控制台窗口中捕獲事件的方式相同

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

只需將此值存儲在某個變量中並與預期事件進行比較,它將給出觸發的第一個事件並移動下一個事件

((JavascriptExecutor) driver).executeScript("window.dataLayer.shift() ");

它會去捕捉下一個事件。

我建議使用Charles Proxy 使用它的Web界面/ API捕獲和驗證分析調用。 例如,如果您想檢查一個號召性用語是否正在觸發正確的事件,您將:

  1. 使用Charles API開始錄制
  2. 單擊使用Selenium的按鈕
  3. 使用Charles API停止錄制
  4. 使用Charles API將記錄的會話檢索為JSON
  5. 檢查會話以獲取預期的分析驗收標准

可以在此處找到示例視頻。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM