接口自动化内置功能应用 - 日期的获取和计算

345 阅读4分钟

我报名参加金石计划1期挑战——瓜分10万奖池,这是我的第26篇文章,点击查看活动详情


内置的datetime模块是一个时间处理模块,这也是一个重要的模块,既可以获取当前的日期, 也可以获取当前的时间,还能计算日期和时间,在测试中用处也非常大,下面就来介绍这个模块。

datetime模块下有好几个子模块,主要的是以下2个。

  • datetime.date:表示日期的模块。

  • ·datetime.datetime:表示日期、时间的模块。

date 模块

对于日期来说,一般常用的就是date模块,通过其下面的today0函数,获取当前日期。 实例代码:

1 from datetime import* 

2 now=date.today()

3 print(now)

代码说明:

1从 datetime模块下导入所有子模块。

2 通过date模块的today0函数获取当前日期,并赋值给变量now

取日期后还可以通过获取日期的属性得到对应的值。

实例代码:

1 from datetime import

2 now=date.today() 

3 now_year =now.yea 

4 now month=now.month 

5 now date=now.day

6 now_weekday =now.isoweekday() 

7 print(now)

8 print (now_year) 

9 print (now_month) 

10print (now_date) 

11print (now_weekday)

代码说明:

3 将当前日期的年份值赋值给变量now_year。

4 将当前日期的月份值赋值给变量now_month。

5 将当前日期的日期值赋值给变量now_date。

6 将当前日期的星期值赋值给变量now_weekday。

模块能对日期做加减,以达到填入特定日期的目的,这时候需要引入 timedelta(函数,其作用在于将间隔时间做加减,这个函数可以指定间隔时间的单位,可以 是天,也可以是小时、分钟、秒等,只需要在参数中加上指定的单位以及对应的值即可对时间做计算。 实例代码:

1 from datetime import * 

2 nowte.today() now= date

3 tomorrow = now+timedelta(days=1)

4 yesterday = now-timedelta(days=1)

5 next_week = nowtimedela(days=7) 

6print (now)

7 print(tomorrow)

8 print (yesterday) 

9 print (next_week) 

代码说明:

3 将当前日期加上1天,并赋值给变量tomorrow。

4 将当前日期减去1天,并赋值给变量yesterday。

5 将当前日期加上7天,并赋值给变量next_week。

datetime 模块

date 模块只能对日期进行获取和操作,那么如果要对时间进行获取和操作呢?这时候就要用 到datetime 模块(虽然和主模块重名,但由于属于子模块,根据导入的模块层级不同是不会冲突 的),这个模块是date模块的引申,模块下也可以通过 today0函数获取时间,区别在于datetime 获取的是完整的时间,而date 获取的仅仅是日期。

实例代码:

1 from datetime import * 

2 now=datetime.today() 

3 print (now)

代码说明:

2 通过 datetime 模块的today(函数获取当前时间,并赋值给变量now。

image.png

虽然today0支持时间获取,但其命名也容易引发歧义,所以建议使用dateime下面的now0函数, 其功能和today0一样,区别只是在于可以支持不同时区的时间获取,默认可以不填,就是当前时区。

实例代码:

1 from datetime import* 

2 nowdatetime.now() 

3 print (now)

代码说明:

2 通过datetime 模块的now(函数获取当前时间,并赋值给变量now。

运行结果如图所示。

image.png

同样获取时间后也可以根据其属性获取相应的指定数据,比如只需要获取当前日期或者获取不带日期的时间。

实例代码:

1 from datetime import *

2 now=datetime.now() 

3 now_date = now.date( )

4 now_time=now.time() 

5 print (now) 

6 print (now_date)

7 print (now time)

代码说明:

3 将当前时间的日期值赋值给变量

4 将当前时间的时间值赋值给变量 now_time。

时间也可以通过 timedelta0进行加减,不同之处在于对于日期只能加减日期,即参数只能是days,而时间加减的参数还可以是hours,minutes,seconds等。

实例代码:

1 from datetime import * 

2 now=datetime.now() 

3 nexthour=now+timedelta(hours=1 )

4 print(now)

5 print (next_hour)

代码说明:

3将当前时间的下一个小时赋值给变量next_hour。

datetime 模块在自动化测试中可以用的地方非常多,除了 能获取时间,还能代替 random 模块让数据不重复,具体就要看实际情况灵活运用了。