8.1 创建定时任务
为了让自动化测试“自动化”起来,现在我们来创建定时任务,使自动化测试脚本在指定的时间自动化运行。创建定时任务的方法有很多,比如,我们可以写一段程序让其在指定的时间运行all_test.py 文件,或者使用系统的定时任务功能在指定的时间运行all_test.py文件。
在python的os模块中提供了system()用来执行系统命令。比如要执行:UnitTest\Project\run_all.py
可以这样实现:start_run.py
#coding=utf-8
import os
os.system(".\\run_all.py")
或者先切换到相应的目录,然后通过Python 命令去执行all_test.py文件更符合我们在cmd 下面的操作顺序。
Start_run.py
#coding=utf-8
import os
os.chdir(".\\Test_project")
os.system("run_all.py")
定时任务, 通过time 模块了,要实现这个功能非常简单,获取当前时间判断是不是要执行自动化的时间。Start_run.py:start_run.py
#coding=utf-8
import os,time
k=1
while k<2:
now_time=time.strftime("%H_%M")
if now_time=="21_00":
print "start to runscritpt!"
os.chdir(".\\UnitTest\\Project")
os.system("run_all.py")
print "Finished andexit!"
break
else:
time.sleep(10)
printnow_time
首先定义变量k 的值为1,通过while 判断k 的值是否小于2,在不改变k 的值
的情况下,k 会永远小于二,然后通过strftime()方法获取当前的小时和分钟,然后通过if 判断是否等于21:00,如果不相等,休眠10 秒(这个休眠时间只要不超过60 秒即可,超过了60 秒,可能直接会从20:59 跳到21:01,从而错过了21:00),当前时间为21:00 时执行all_test.py 程序从而执行自动化测试。并且break 结束循环。如果希望想每天21:00 跑自动化测试用例,那么可以不要break ,程序继续运行,直到遇见下一个20:00,自动化测试再次被执行。
Windows添加任务计划:其实操作系统本身也提供了强大的定时任务功能。Window7 为例,Window设置定时任务:通过控制面板—管理工具—任务计划程序(或者在“开始”菜单中搜索“任务计划程序”):
选择菜单栏中的“操作”选项可以选择“创建基本任务” 和“创建任务”,前者创建过程比较简单,我选择后者进行设置:
设置任务名和任务描述,以及执行任务的用例,切换到“触发器”标签页,点击“新建”设置出发任务的条件。