前言
我们在做自动化时,当自动化测试用例编写完成后,都会想着将其自动执行程序,或者说通过定时的形式进行执行我们的自动化测试程序,这样才能真正意义上实现自动化测试。哪么大家知道都有哪些方法可以帮助我们实现这个功能吗?接下来小编就简单介绍下集中如何定时执行我们的自动化测试用例程序。
Jenkins
说到定时任务,肯定有人想到jenkins,没错,jenkins是一款持续集成的工具,其中里面就有一个小功能构建定时器,可以很好的帮助我们实现这个功能。
使用方法
1.通过进入到对应的测试项目内中,然后点击configure(配置)进入其页面中。
2.配置页面中的Build Triggers(构建触发器),先勾选Build periodcally,这里表示的是定时构建任务,输入框内表示需要构建的规则内容
3.构建规则表格中一共可以书写5个*, * * * * * 其中每个*之间需要通过空格或者tab键进行隔离开
第一个*表示分钟,取值0~59
第二个*表示小时,取值0~23
第三个*表示一个月的第几天,取值1~31
第四个*表示第几月,取值1~12
第五个*表示一周中的第几天,取值0~7,其中0和7代表的都是周几
举例:如定时5分钟一次 H/5 * * * *?
构建完成后,我们就等待5分钟,查看任务触发器,发现每5分钟进行构建一次。
schedule
schedule属于python的第三方库,可以按照秒,分,小时,日期,或者自定义时间执行时间。
安装:pip install schedule
使用方法
小编先介绍下这个库的使用方法,后面继续介绍如何通过我们的自动化测试用例结合使用该库:
# coding:utf-8 import schedule import time def add(): a = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) print('add函数每5秒运行一次::%s' %a) def foo(): b = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) print('foo函数每10秒运行一次::%s'%b) # 通过schedule设置定时任务 schedule.every(5).seconds.do(add) # 每5秒执行一次 schedule.every(10).seconds.do(foo) # 每10秒执行一次 while True: schedule.run_pending() # 运行所有可运行的任务 time.sleep(1)
通过执行该运行该脚本,可以通过下面的打印信息可以看到,已经按照我们设定好的规则进行运行。
当然schedule不仅仅可以设置秒,也可以进行对分,时,星期进行设置,这里小编不在展示,只列出对应的方法,感兴趣的小伙伴们可以自行尝试。
schedule.every(10).minutes.do(执行程序函数名) # 每10分钟执行一次
schedule.every().hour.do(执行程序函数名) # 每小时执行一次
schedule.every().day.at("11:30").do(执行程序函数名) # 每天11点半执行
schedule.every().monday.do(执行程序函数名) # 每周一执行
schedule.every().wednesday.at("15:15").do(执行程序函数名) # 每周三15点15执行
自动化测试案例
小编这里通过编写几个简单的测试用例,然后通过schedule进行调用,其实方法和上述方法差不多,这里加入了通过schedule实现传入参数的方法。
# coding:utf-8 import requests url = 'http://apis.juhe.cn/simpleWeather/query' def test_01(): data = { "city": '上海', "key": 'xxxxxxxxx' } r = requests.post(url, data=data) assert r.json()['reason'] == '查询成功!' def test_02(): data = { "city": '北京', "key": 'xxxxxxxxx' } r = requests.post(url, data=data) assert r.json()['result']['city'] == '北京'
小编这里简单的编写了接口自动化测试用例,测试用例存储在test_01.py的文件中,我们在新创建执行文件main.py文件,在文件中通过os模块进行执行程序pytest的程序。
# coding:utf-8 import schedule import os import time def start(cmd): os.system(cmd) print('自动化测试用例执行完成:%s' % time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) # 设置每5秒执行一次程序 schedule.every(5).seconds.do(start, 'pytest -vs test_01.py') while True: schedule.run_pending() # 运行所有可运行的任务 time.sleep(1)
通过命令行中,执行对应的程序,然后就可以看到,我们的自动化测试用例,每间隔5秒钟,就正常的执行一次。
任务计划程序
上述已经简单的介绍两种方法了,在介绍一种关于通过windows帮助我们实现定时任务的操作。
使用方法
1.在windows中搜索出来“任务计划程序”
2.在当前页面中,右键点击“任务计划程序库”,然后进入到创建基本任务向导页面中,在这里可以设置我们任务的名称和任务的描述内容,方便查看。
3.点击下一步后,进入到触发器页面中,这里可以设置我们的触发时间,这个可以自行根据项目进行设置。
4.点击下一步后,在每日页面中,可以进行设置每日程序自动运行的时间和几天触发一次。
5.执行操作就是执行我们的程序,这里可以直接选择执行程序。
6.点击下一步后,进入到启动程序这里,这里需要设置我们需要执行的程序。
7.点击下一步后,终终终于设置完成了,我们只要看下信息是否正确,然后就可以点击完成,这样我们的定时任务就已经设置完成了。
总结
小编通过三个方法介绍了如何定时执行我们的自动化测试用例,可能中间存在大家使用过的,也存在没有使用过的方法,但大家都可以进行了解下,当然小编这里定时任务的方法可能不止这些,如果有其他更好的方法,大家也可以进行留言一起学习。好了,非常感谢您的阅读,希望本篇文章对您有所帮助。
作者:测试安静