JavaScript 覆盖率测试工具

JavaScript覆盖率测试工具

目前开源的大家常用的JS覆盖率收集工具有主要有下面两种。

  1. JsCover
  2. Istanbul

参考资料:

  • JsCover:

  • http://tntim96.github.io/JSCover/
  • https://github.com/tntim96/JSCover
  • Istanbul

   https://github.com/gotwarlost/istanbul

对比

分类 要素

JsCover

Istanbul

覆盖率 statement ×
  line coverage
  condition coverage ×
  branch coverage
  function coverage
対象 Javascript file
  html file × ×
其他工具支持情况 HtmlUnit ×
  WebDriver ×
  PhantomJS ×
  Selenium ×
  Ant ×
  Jenkins ×
单元测试工具的支持情况 Junit
  Jasmine
  Qunit
  Node.js
  Mocha
  RequireJS
license GNU BSD  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

覆盖率收集过程:

1. js文件进行注入

2.执行测试(手动,自动)

3.统计覆盖结果,并生产报告

JsCover介绍

支持两种注入方式,运行时注入(on the fly)和事前注入。

运行时注入提供了2中方式:

  1. 启动JSCover,发布在jscover服务的web应用的js都可以注入和覆盖率收集。(请参考,jscover官方资料看。)

    1)命令1:java -jar xx\xx\JSCover-all.jar -ws --document-root=doc/example --report-dir=target

2)Web浏览器里打卡:http://localhost:8080/jscoverage.html 

3)查看覆盖率结果:

 

          2.代理方式进行注入。代理方式的意思就是说,你的web可以发布在自己的服务中而不是jscover服务里。但是通过jscover服务做的代理访问你的web站点时就可以收集覆盖率。

 1)修改本地代理

 

 

 2)启动代理服务

命令:java -jar JSCover-all.jar -ws --proxy --port=3128 --report-dir=target

3)host文件修改(参考jscover资料)

4)被测试对象web服务启动(例如:http://172.1.2.3:8000/)

5)打开浏览器,输入:http://172.1.2.3:8000/jscoverage.html

6)在浏览器显示画面,url 输入框:输入实际要测试的地址。

7)【summary】画面可以看到报告

 事前注入提供了方式:可以用于web系的自动化测试,收集覆盖率

  1. 先给js文件注入 :java -jar JSCover-all.jar -fs origin dest
  2. 注入后的js发布到web服务上
  3. 测试
  4. 使用AP获取json文件。
  5. 生成的json放知道coverage报告的文件夹下。修改jscoverage.js文件。

  6.  

  7. jscoverage.html打开看结果。

istanbul

on the fly方式注入、适用于UT测试,FT测试收集覆盖率不太能用,暂时还没有找到好办法。

原理:

如何使用:

  1. 直接执行 js文件:istanbul cover xxxjs
  2. 通过执行UT测试方式: istanbul cover _mocha                    // _mocha是mocha 启动UT测试用例的UT运行工具。
  3. UT运行工具运行时顺便采集覆盖率。UT执行工具的配置文件里面配置上 istanbul的参数。具体根据UT运行工具来定。不懂百度

 

posted @ 2018-02-01 17:44  flyzfj  阅读(654)  评论(0编辑  收藏  举报