2012-02-29 30 views

回答

2

我已經找到了我需要的解決方案,有多個可用的工具,但我希望能與我現有的自動化容易

工具集成的工具,是JSCover http://tntim96.github.io/JSCover/

只要運行服務器

  1. 運行服務器 java -cp JSCover-all.jar jscover.server.SimpleWebServer。 8080
  2. 運行代理服務器 Java的罐子目標/距離/ JSCover-all.jar在-ws --proxy --port = 3128 --report-DIR =目標

  3. 在你的webdriver添加代理服務器端口在我的情況說明,3128

  4. 測試的執行使用

    ((JavascriptExecutor) driver).executeScript("jscoverage_report();"); 
    

生成報告後,您可以加入這一行,你退出的webdriver或測試案例

1

我不知道你想達到什麼目的,但:

  • 硒測試最終輸出的頁面本身所看到。

因此,如果它的PHP,HTML,JSP,ASP或.NET - Selenium設計爲模仿最終用戶並單擊最終應用程序 - 最終的HTML代碼生成的最終HTML代碼引擎蓋。

硒對於代碼覆蓋率測試也不是很好 - 一個代碼可以在很多頁面上 - 所以硒的更好方法是做「用戶」覆蓋率 - 嘗試覆蓋所有可能的活動

+1

我的錯誤我在談論JS(Javascript)的報道。我想知道我的硒測試用例包含多少JS。它可以幫助我驗證我是否覆蓋了大部分的案例,並幫助我報告是否存在未使用的JS文件。可能有一個情況,一個或兩個JS文件從不使用,所以使用硒代碼覆蓋我可以報告這些JS文件沒有被使用,可能是垃圾。 – 2012-02-29 09:11:29

+0

我不知道這種可能性 - 當然,Selenium點擊和用戶交互會觸發一些JavaScript操作。您可以監控這些,但可能沒有工具可以告訴您「這些accounts.js從來沒有使用」 – 2012-02-29 09:46:21

+0

雅可能沒有工具,可以告訴我哪些JS從未使用過,但我認爲有工具,如聲納,可以告訴哪些JS使用和使用百分比,所以我也可以確定哪些JS從不使用。我只想要有代碼覆蓋率的任何工具,可以很容易地與硒集成 – 2012-02-29 09:57:26

2

不知道用於Selenium的工具,但JsTestDriver的設計與Selenium RC非常相似(可以從命令行啓動測試,並且它們在無服務器驅動瀏覽器的服務器上運行)並提供代碼覆蓋信息。

IntelliJ與JsTestDriver集成並提供visual display of coverage information

5

從理論上講,您可以使用任何涵蓋JavaScript代碼的覆蓋率工具來收集覆蓋率數據。

例如,您可以在代理模式(用於實時檢測)或靜態檢測中使用JSCoverage來運行您的Selenium測試。

一個技術障礙可能是設計一種方法來在多個頁面上累積覆蓋率數據。您選擇的覆蓋工具可能已經支持從多個頁面運行中累積數據。如果沒有,你可能必須自己處理這一點,但這可能不是一件小事。

0

沒有特別的工具可以與Selenium集成來做JS覆蓋。但是,有很多工具可以在每個頁面上測試JS,這些工具可以判斷在您的網頁上執行的JS是否有任何錯誤。這可能不是理想的解決方案,但是在每個頁面上,您都可以測量JS的正確執行情況。有兩種解決方案:

1.)JSErrorCollector API:它將直接與Selenium集成並讓您知道頁面是否有任何錯誤。 http://mguillem.wordpress.com/2011/10/11/webdriver-capture-js-errors-while-running-tests/

2)羽翼豐滿的JS覆蓋工具:可以在這裏找到有這裏的工具,這將主要幫助您覆蓋在您的網頁上JS的優秀名單。可以發現在:JavaScript unit test tools for TDD

+1

問題是關於http://en.wikipedia.org/wiki/Code_coverage – 2012-05-18 23:54:31

1

https://github.com/yui/yuitest/wiki/Code-Coverage

看看我已經集成了這個工具,我Selenium測試時間前。你需要一些工作來收集頁面更改前的覆蓋範圍信息(無論如何,js會觸發頁面重新加載,鏈接等)。

一旦設置完所有內容,它將完全覆蓋在Selenium加載時執行的任何js,測試你的網站頁面。 PS:即使它專門適用於YUI測試,您也可以將其與硒一起使用。

+0

您可以提供一些關於如何記錄js覆蓋率的更多細節,而硒在跑? – carambir 2014-07-11 13:22:03

+0

在每次測試結束前,請求selenium在當前頁面上運行JS:YUITest.TestRunner.getCoverage(YUITest.CoverageFormat.JSON)。這將返回硒可以存儲在某處的覆蓋數據。然後使用yui report jar,您可以爲所有測試的所有數據生成覆蓋率報告。爲了獲得完整和準確的報道,您必須注意頁面更改(例如由頁面上的事件觸發)。在每次頁面更改之前,在js上執行某種代碼檢測以調用yui coverage函數。 – Fabien 2014-07-25 09:25:04

相關問題