原文链接:http://www.cnblogs.com/Detector/p/7746798.html
背景
博主在写自动化的过程中,有一个指标,两小时内运行完所有的用例才算合格,所以想计算每一个用例的运行时间
思路
因为使用的POM模型,每一个用例都是一个函数,所以实际需要得到的是函数运行的时间
在每一个函数运行开始的时候打一个标记,结束的时候打一个标记可以得到结果,但是比较麻烦,所以想到了装饰器
所有的函数都是可调用对象。使用__call__()函数可以将一个类实例变成一个可调用对象
在使用装饰器的时候,遇到了各种问题,都已经一一解决,最终代码如下:
import time from logging_save import logger class time_count(object): def __init__(self): pass def __call__(self,func): def _call(*args, **kw): begintime = time.clock() func(*args, **kw) end_time = time.clock() runtime = end_time -begintime logger.info('ran %s cost %.3f s' % (func.__name__, runtime)) return _call class bss(object): @time_count() # 直接进行调用 def runfunc(self): time.sleep(3) print 'runfunc running' bs = bss() bs.runfunc()
本文介绍了一种使用Python装饰器来记录每个测试用例运行时间的方法,以确保所有用例能在规定时间内完成。通过在函数开始和结束时记录时间戳,并利用日志模块输出结果。
1万+

被折叠的 条评论
为什么被折叠?



