40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
|
#!/usr/bin/env python
|
|||
|
# -*- coding: utf-8 -*-
|
|||
|
|
|||
|
import time
|
|||
|
from tools.log_control import ERROR
|
|||
|
|
|||
|
|
|||
|
def execution_duration(number: int):
|
|||
|
"""
|
|||
|
封装统计函数执行时间装饰器
|
|||
|
:param number: 函数预计运行时长
|
|||
|
:return:
|
|||
|
"""
|
|||
|
# 判断参数类型是否是 int 类型
|
|||
|
if isinstance(number, int):
|
|||
|
def decorator(func):
|
|||
|
def swapper(*args, **kwargs):
|
|||
|
# 定义开始时间
|
|||
|
start_time = int(round(time.time() * 1000))
|
|||
|
res = func(*args, **kwargs)
|
|||
|
end_time = int(round(time.time() * 1000))
|
|||
|
run_time = end_time - start_time
|
|||
|
# 计算时间戳毫米级别,如果时间大于number,则打印 函数名称 和运行时间
|
|||
|
if run_time > number:
|
|||
|
ERROR.logger.error(
|
|||
|
"\n=================================================================================\n"
|
|||
|
"测试用例执行时间较长,请关注.\n"
|
|||
|
"函数运行时间:{0} ms\n"
|
|||
|
"测试用例相关数据: {1}\n"
|
|||
|
"================================================================================="
|
|||
|
.format(run_time, func(*args, **kwargs)))
|
|||
|
|
|||
|
return res
|
|||
|
|
|||
|
return swapper
|
|||
|
|
|||
|
return decorator
|
|||
|
else:
|
|||
|
raise TypeError("参数类型不正确")
|