Selenium:是否有任何JS(JavaScript)代码覆盖工具可以与Selenium Server / RC集成
您好,
我希望我的Selenium Test Suite完成JS代码覆盖
是否有任何代码覆盖工具可以与我现有的selenium rc框架集成?
答案 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/
只需运行服务器
运行代理服务器 java -jar target / dist / JSCover-all.jar -ws --proxy --port = 3128 --report-dir = target
在Webdriver中为指定的端口添加代理,在我的情况下为3128
执行测试后使用
生成报告((JavascriptExecutor) driver).executeScript("jscoverage_report();");
您可以在退出WebDriver或测试用例
的位置添加此行答案 4 :(得分:1)
我不知道你想要达到的目的,但是:
因此,如果它的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
找到