searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

python函数默认参数的初始化

2024-11-14 09:41:52
0
0
遇到问题:

在运行自动化测试用例脚本的时候,单个脚本执行时,测试通过,但整体执行的时候,会出现报错。

寻找原因:

在排错的过程中,发现整体执行脚本的时候,出错的用例时间参数比预期拿到的要早半个小时。 找到时间参数的生成函数定义如下:

def time_format(now=datetime.now(), type=1):
    '''
    根据指定格式生成当前时间的字符串。
​
    参数:
    - now: 指定的时间点,默认为当前时间(datetime.now())。
    - type: 时间格式类型,1代表年月日格式,2代表时分秒格式。
​
    返回值:
    - r_time: 根据指定类型格式化后的时间字符串。
    '''
    if type == 1:
        r_time = now.strftime("%Y%m%d")
    elif type == 2:
        r_time = now.strftime("%H%M%S")
    return r_time

多个脚本调用该函数时,非必传参数now没有传参,该函数使用默认参数datetime.now()。由于datetime.now()本身是函数,所以仅在第一次调用时初始化,导致所有脚本生成的时间参数都是第一次调用时的时间生成的参数,导致测试脚本的时间参数错误。

解决方案:

now非必传参数为必传参数,在调用函数时传入所需时间。

0条评论
0 / 1000
杨****静
2文章数
0粉丝数
杨****静
2 文章 | 0 粉丝
杨****静
2文章数
0粉丝数
杨****静
2 文章 | 0 粉丝
原创

python函数默认参数的初始化

2024-11-14 09:41:52
0
0
遇到问题:

在运行自动化测试用例脚本的时候,单个脚本执行时,测试通过,但整体执行的时候,会出现报错。

寻找原因:

在排错的过程中,发现整体执行脚本的时候,出错的用例时间参数比预期拿到的要早半个小时。 找到时间参数的生成函数定义如下:

def time_format(now=datetime.now(), type=1):
    '''
    根据指定格式生成当前时间的字符串。
​
    参数:
    - now: 指定的时间点,默认为当前时间(datetime.now())。
    - type: 时间格式类型,1代表年月日格式,2代表时分秒格式。
​
    返回值:
    - r_time: 根据指定类型格式化后的时间字符串。
    '''
    if type == 1:
        r_time = now.strftime("%Y%m%d")
    elif type == 2:
        r_time = now.strftime("%H%M%S")
    return r_time

多个脚本调用该函数时,非必传参数now没有传参,该函数使用默认参数datetime.now()。由于datetime.now()本身是函数,所以仅在第一次调用时初始化,导致所有脚本生成的时间参数都是第一次调用时的时间生成的参数,导致测试脚本的时间参数错误。

解决方案:

now非必传参数为必传参数,在调用函数时传入所需时间。

文章来自个人专栏
bug退散
1 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0