Selenium:是否有任何JS(JavaScript)代码覆盖工具可以与Selenium Server / RC集成

时间:2012-02-29 08:15:23

标签: selenium selenium-rc code-coverage

Selenium:是否有任何JS(JavaScript)代码覆盖工具可以与Selenium Server / RC集成

您好,

我希望我的Selenium Test Suite完成JS代码覆盖

是否有任何代码覆盖工具可以与我现有的selenium rc框架集成?

6 个答案:

答案 0 :(得分:5)

理论上,您可以使用任何覆盖工具来检测JavaScript代码以收集覆盖数据。

例如,您可以在代理模式(用于实时检测)或静态检测中使用JSCoverage从已检测的代码中运行Selenium测试。

一个技术障碍可能是设计一种在多个页面上累积覆盖率数据的方法。您选择的覆盖工具可能已经支持从多个页面运行中累积数据。如果没有,你可能必须自己处理这一点,但这可能不是一件小事。

答案 1 :(得分:2)

不知道Selenium的工具,但是JsTestDriver的设计与Selenium RC非常相似(可以从命令行启动测试,它们在无头驱动浏览器的服务器上运行)并提供代码覆盖率信息。

IntelliJ与JsTestDriver集成并提供visual display of coverage information

答案 2 :(得分:2)

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

我刚刚在Selenium测试中集成了这个工具。在页面更改之前,您需要一些工作来收集覆盖信息(在任何情况下,js都会触发页面重新加载,链接等...)

一旦你设置了所有内容,它将完全覆盖Selenium加载和测试你的网站页面时执行的任何js。

PS:即使它特别适合YUI测试,也可以与硒一起使用。

答案 3 :(得分:2)

我找到了满足我需求的解决方案,有多种工具可供使用,但我想要一种可以轻松与现有自动化集成的工具

工具是JSCover http://tntim96.github.io/JSCover/

只需运行服务器

  1. 运行服务器 java -cp JSCover-all.jar jscover.server.SimpleWebServer。 8080
  2. 运行代理服务器  java -jar target / dist / JSCover-all.jar -ws --proxy --port = 3128 --report-dir = target

  3. 在Webdriver中为指定的端口添加代理,在我的情况下为3128

  4. 执行测试后使用

    生成报告
    ((JavascriptExecutor) driver).executeScript("jscoverage_report();");
    
  5. 您可以在退出WebDriver或测试用例

    的位置添加此行

答案 4 :(得分:1)

我不知道你想要达到的目的,但是:

  • Selenium正在测试最终输出,如页面本身所示。

因此,如果它的PHP,HTML,JSP,ASP或.NET真的无关紧要 - Selenium旨在模仿最终用户并单击最终应用程序 - 最终的HTML代码由任何内幕生成。< / p>

Selenium对于代码覆盖率测试来说也不是那么好 - 一个代码可以在很多页面上 - 所以更好的方法是使用selenium进行“用户”覆盖 - 尝试覆盖人类可能做的所有可能的操作与您的页面

答案 5 :(得分:0)

没有特定的工具可以与Selenium集成来进行JS覆盖。但是,有很多工具可以在每个页面上测试JS,它可以判断在您的网页上执行的JS是否有任何错误。这可能不是理想的解决方案,但是在每个页面上,您将获得在测试的网页上正确执行JS的uptil的度量。有两种解决方案:

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

找到