[百度分享]Python脚本覆盖率分析方法介绍(一),该怎么解决
发布时间:2011-06-29 20:08:24 文章来源:www.iduyao.cn 采编人员:星星草
[百度分享]Python脚本覆盖率分析方法介绍(一)
背景
Python凭借其面向对象的特点,清晰简洁的语法以及丰富而强大的类库,已经在越来越多的应用领域中获得了青睐。测试工作中涉及的Python脚本也越来越多,这就产生了通过统计的覆盖率来衡量测试效果的需求,二进制程序可以使用BullseyeCoverage进行覆盖率分析,Python脚本是否也有比较好的工具来进行覆盖率分析呢,这里介绍一个针对python脚本的覆盖率分析工具。
Coverage3.3.1基本功能介绍
Coverage是一个用于统计python代码覆盖率的工具,支持HTML报告生成,最新版本支持对分支覆盖率进行统计。
获取地址:http://pypi.python.org/pypi/coverage
官方站点:http://nedbatchelder.com/code/coverage/
安装
Coverage支持Python2.5/2.6/3.1,和其他python第三方module安装方式相同, 获获取后python setup.py install即可。
运行
Coverage支持两种运行方式:一种是命令行的方式,另一种方式是通过在脚本中调用Coverage的API来控制覆盖率的统计,下面一一介绍。
(1)命令行方式
这种方式比较简单,只需要指定被测脚本,不用对被测代码进行任何修改。
安装好Coverage后,会在python/bin/生成一个coverage脚本,通过调用coverage run <被测脚本>进行覆盖率分析。
Example:
coverage run test.py foo bar这样就完成了一次覆盖率分析,其中run是coverage的参数,test.py是被测脚本,foo、bar是test.py的调用参数。
(2)API方式
除了命令行方式,coverage提供了更灵活的API调用方式来进行覆盖率分析。
API方式需要在被测代码前后嵌入,举一个最简单的例子:
from coverage import coverage
cov = coverage() #生成coverage对象
cov.start() #开始分析
function_to_be_tested() #待测函数
cov.stop() #分析结束
cov.save() #将覆盖率结果保存到数据文件
这样就通过在代码中调用API完成了对目标函数的覆盖率分析。
这种统计方式的好处在于可以灵活的控制覆盖率分析start和stop的代码段,可以满足不同的需求。
查看覆盖率结果
通过(2)中介绍的方法完成覆盖率分析后,就可以查看覆盖率分析的结果了。Coverage提供了几种覆盖率结果的展现方式:
(1)简单文本方式
使用命令行coverage report,或者在代码中调用coverage对象的report方法可以获取简单文本格式的覆盖率结果:
Name Stmts Exec Branch BrExec Cover
--------------------------------------------------
Agent 261 101 104 29 35%
Async 497 247 114 39 46%
DNS 67 28 8 1 38%
FIFOLogMonitor 53 21 12 0 32%
MachineMonitor 108 81 28 10 66%
RPC 269 94 64 12 31%
Settings 30 22 4 3 73%
TaskCommon 69 24 24 0 25%
Thread 54 33 10 2 54%
WDBDLogMonitor 221 53 90 1 17%
common 323 77 108 9 19%
--------------------------------------------------
TOTAL 1952 781 566 106 35%
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
能不能找到支持 python 2.6 2.7 3.x 版本的 mod_python 呢?
http://archive.apache.org/dist/httpd/modpython/win/3.3.1/
我在...
-
windows下安装apache + python + django + mod_wsgi.so
对应版本:
Apache:Apache HTTP Server (httpd) 2.2.19
Python:Python2.7
Dja...
-
手工执行python3程序没问题,放在cron里面就不执行有中文的代码,高手帮忙啊。急!
先介绍下基本情况
环境: redhat Python3.2
目的:定...
-
PYTHON用什么编辑器?
是用自带的IDLE不?
------解决方案--------------------
看下国外的Python用户都用什么吧:
http://jobs.pyth...
-
为什么在python25中输入下面的代码是错误的??求大神!
if 1 < 0:
print '”x” must be atleast 0!'
------解决方案-----...
-
pyhthon zipfile获取压缩文件列表后怎样打开其中某个文件?
如题。似乎ZipFile没有open操作..
zCmfile = zipfile.ZipFile(target...
-
本人菜鸟一个,哪位大神帮我解释一下下面两段
import sys
print >> sys.stderr, 'Fatal error: invalid input!'
import sys
...
-
老王的python学习网站!推荐!
http://blog.csdn.net/hendom/article/details/7173207
很不错的python学习网站。
http://www.cnpyt...
-
myeclipse里导入python项目
初学python,我在myeclipse里导入已有项目,选择路径后为什么没出现该项目,这项目不应该有问题啊,我用的是m...
-
安装PyQt的问题?
今天在ubuntu下安装了PyQt-x11-gpl-4.9,但是我按照《getting started with PyQt》上的一个例子
import sys
from ...