注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网易杭州 QA Team

务实 专注 分享 做有态度的QA

 
 
 
 
 

日志

 
 

关于用EMMA进行代码覆盖率测试的原理  

来自丰羽   2011-12-01 17:38:06|  分类: 自动化测试 |举报 |字号 订阅

  下载LOFTER 我的照片书  |
    EMMA是纯java实现的一个代码覆盖率测试的包。源代码地址:http://emma.sourceforge.net/  最新是版本2.1.5320
    他有两种工作方式:
1,用java启动emma,将真正要执行的程序作为参数传给他,相当于他作为一个容器来运行真正要运行的程序。在这种方式下,程序的一举一动都被emma监控,自然可以进行代码覆盖率测试了。
2,修改.class文件,添加emma监控代码。有时候我们要运行的程序需要在别的容器中运行,比如tomcat,这时候第一种方法就不管用了。所以第二种方法里面,emma通过修改字节码文件,让程序自己多执行一段监控代码,来达到效果。

     这里对我们有用的,一般就是第二种方法。因为我们目前测试的大部分内容,都是在tomcat里面运行的。

     当我们用emma的instr命令给我们的class文件添加好监控代码时,会同时生成一个meta数据文件,然后我们照常运行tomcat。
     接着,当我们让程序运行了一段时间后,关闭程序,这时候emma会把监控记录生成一个记录文件。
     最后。我们运行emma的report命令,将监控记录、meta数据文件以及源代码交给他。他会输出成非常漂亮的报表,将源代码中哪些行执行了,哪些行没执行到,哪些行执行了一半等统统用不用的颜色标注出来。

     除了上面这些基本功能外,我们还可以:
1,在程序运行中,马上远程获取监控记录,或者将监控记录dump到程序所在机器
2,在程序运行中,马上清空监控记录
3,指定监控哪些类
4,除了HTML格式,还可以生成txt或者xml格式的报告
5,将多次获取的监控记录合并
  评论这张
 
阅读(1756)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016