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.get("http://localhost/example-fs/index.html");
        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就可以看到所生成的报表了。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。