JSCover与Selenium初步结合
在已使用Selenium作为自动化测试后需要加入JSCover以检测Javascript的使用情况,通过运行Selenium程序得到JSCover生成的报表。
因为是依靠Selenium为主线程程序而无需用到JSCover提供的Web UI,所以用到的是JSCover的File System模式。首先将需要检测的Javascript代码进行注解。
命令如:java -jar JSCover-all.jar -fs [OPTIONS] SOURCE-DIRECTORY DESTINATION-DIRECTORY
运行此命令后会生成已注解后的Javascript文件和JSCover提供的Web UI文件,结构如:
-jscover.log
-jscoverage.css
-jscoverage.html
-jscoverage.js
-jscoverage-highlight.css
-jscoverage-ie.css
-jscoverage-throbber.gif
上面标黑的jscoverage.js是我们需要用到的文件,打开此文件将变量jscoverage_isReport设置为true(默认为false)。接下来就可以编写selenium代码了,一个简单的示例如下:
import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class SeleniumTester{ @Test public
void testJsCover() { WebDriver driver = new
FirefoxDriver(); driver.findElement(By.id( "radio1" )).click(); String json = (String)((JavascriptExecutor) driver).executeScript( "return jscoverage_serializeCoverageToJSON();" ); driver.quit(); } } |
String json = (String)((JavascriptExecutor) driver).executeScript("return jscoverage_serializeCoverageToJSON();"); 此行代码取到的json字符串需要保存到名为jscoverage.json文件中,位置与jscoverage.js保持在同一目录,当然你也可以通过修改jscoverage.js读取jscoverage.json的目录进行修改,缺省情况下是在同级目录。
运行完上面的unit test,打开jscoverage.html就可以看到所生成的报表了。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。