2012-02-29 51 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

相关问题