python考试时间_自动化测试之Python时间处理

前言

在自动化测试过程中会出现一种情况,就是对某种订单的时间进行校验。例如:七天无理由退货的请求,云服务续费后的到期时间……这些情况如果要实行自动化测试校验就必须获取订单时间,然后推算出7天后、1个月后、甚至更长的时间点,从而正确的完成自动化测试的断言。

接下来就以Python为示范例子,简单讲解下云服务器包年包月计费逻辑时间的处理。

功能逻辑简明,当前时间为2020年1月,续费一个月则续费时长为31天,如续费两个月则续费时长为60天。

依赖库及方法

from datetime import timedelta, datetime

代码详情

自定义初始所需处理时间

首先定义一个类,默认time的输入参数为‘now’。在time为‘now’的情况下就会获取当前时间来定义self.tiem的时间,若自定义时间根据’%Y-%m-%d %H:%M:%S’

如:2020-05-06 16:52:27。

class GetNewTime:

def __init__(self, time='now'):

'''

默认为now当前时间,

若自定义时间根据'%Y-%m-%d %H:%M:%S'

如:2020-05-06 16:52:27

:param time:

'''

if time == 'now':

time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')

Stime = datetime.strptime(time, '%Y-%m-%d %H:%M:%S')

self.time = Stime

天数获取

根据self.time及num输出所需日(day), 如自定义的时间为2019年1月1日,num输入参数为1(表示顺延1个月),则输出31天。num输入参数为2(表示顺延2个月),则输出59天。

def day_mount_sum(self, num=1):

'''

根据self.time及num输出所需日,

如2019年1月,输出31

:param num: 月数

:return:

'''

day = 0

Mlist = []

y = self.time.year

for i in range(0, num):

if i == 0:

m = self.time.month

Mlist.append(m)

else:

m = self.time.month + i

while m >= 13:

m = m - 12

Mlist.append(m)

max = [1, 3, 5, 7, 8, 10, 12]

min = [4, 6, 9, 11]

for j in range(len(Mlist)):

if j != 0:

if Mlist[j] == 1 and Mlist[j - 1] == 12:

y = y + 1

if (Mlist[j] in max):

day = 31 + day

elif (Mlist[j] in min):

day = 30 + day

else:

if y % 400 == 0 or (y % 4 == 0 and y % 100 != 0):

day = 29 + day

else:

day = 28 + day

return day

云服务器包年包月计费处理方法

该方法的输入参数有5个,分别对应月、日、时、分、秒。可以为正负数情况。最后输出最后确认到期时间。

def new_times(self, month=0, day=0, hours=0, minutes=0, seconds=0):

'''

计算后的时间

:param month:

:param day:

:param hours:

:param minutes:

:param seconds:

:return:

'''

day += self.day_mount_sum(num=month)

new_time = self.time + timedelta(days=day, hours=hours, minutes=minutes, seconds=seconds)

return new_time

使用及输出情况。

if __name__ == "__main__":

T1 = GetNewTime()

T2 = GetNewTime('2019-08-17 17:14:39')

# 月 天 时 分 秒

test1 = T1.new_times(month=1, day=0, hours=0, minutes=0, seconds=0)

test2 = T2.new_times(month=1, day=2, hours=1, minutes=0, seconds=0)

print(test1)

print(test2)

输出:

2020-07-01 22:10:28

2019-09-19 18:14:39

总结

以上是云服务器包年包月的简单例子,它可以根据云服务器创建、续费等情况进行到期时间的校验。如有特别需求可在此基础上增加方法来实现,如:根据创建、续费时长赠送不同的时间优惠等……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值