为了更对得起“自动化测试”的名号,我们可以设置定时任务,使我们自动化脚本在某个时间点自动运行脚本,这样就可以让测试在夜间进行,减少了时间成本。通过程序来控制test case在什么时候执行是最简单的方式了。 
借用http://blog.csdn.net/liujingqiu/article/details/50518776关于HTMLTestResult的脚本,然后写SetTime_AutoRun.py来实现定时执行任务。 
SetTime_AutoRun.py脚本如下:

import unittest
import HTMLTestRunner
import os
import time listaa='C:\\Python34\\test_case' #设置脚本所在的绝对路径
def createsuitel():
testunit=unittest.TestSuite()
discover=unittest.defaultTestLoader.discover(listaa, pattern='UnitTestHtml_*.py', top_level_dir=None)
for test_suite in discover:
for test_case in test_suite:
testunit.addTests(test_case)
print (testunit)
return testunit
alltestnames=createsuitel()
#now=time.strftime('%Y-%m-%M-%H_%M_%S',time.localtime(time.time())) #时间格式有错误
now=time.strftime('%Y-%m-%d-%H_%M_%S',time.localtime(time.time())) #设置时间格式
fp = open(now+'result.html','wb')
runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title='test result',description=u'result:') #调用HTMLRestRunner k=1
while k<2:
timing=time.strftime('%H_%M',time.localtime(time.time()))
if timing == '17_35': #17_35指17:35,这个可以根据需要设定时间
print ('start to run scripts')
runner.run(alltestnames) #运行所有的case
print ('Finish runing scripts')
break
else:
time.sleep(3)
print (timing)
fp.close()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

F5,运行得到: 
1)pythonIDLE 如图所示: 
 
从上图可以看到17_34还没有到我们设置的时间点17_35,于是会等待。 
2)C:\Python34 路径下,有Result.html如图: 

2016-03-34-17_34_59result.html即为我们这次的测试result.html 
3)打开上述文件得到如图所示: 

上面的三个结果截图,即为运行后得到的结果。这里偷懒, 其中使用pattern=’UnitTestHtml_*.py’, 采用的是不同文件名的.py脚本,但是里面内容是相同的,于是同样的,得到了6个case的结果。

附: 
1.pattern=’UnitTestHtml_*.py’ 表示在当前目录下,文件名为UnitTestHtml_*.py的脚本都会被批量执行。 
在实施过程中,遇到的issue: 
1.第一次输出,在C:\Python34目录下的 2016-03-34-17_34_59result.html的文件大小为0kb,这是因为忘记加上fp.close()了。 
2.以上脚本还有点小问题我们得到的2016-03-34-17_34_59result.html文件名,可以看到文件名中的设置时间没有正确。根据以下的修改,再次运行,显示正确。 
脚本改动如下:

以前的脚本:
now=time.strftime('%Y-%m-%M-%H_%M_%S',time.localtime(time.time()))
改动后的脚本:
now=time.strftime('%Y-%m-%d-%H_%M_%S',time.localtime(time.time())) #设置时间格式
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

就这样使用脚本完成了定时控制任务,实现定时自动化测试。

随机推荐

  1. IOS

    网上课程:http://www.zhijieketang.com/ edu.51cto.com 码云:http://git.oschina.net/名字 Gesture:https://www.osc ...

  2. phpmyadmi 上传大文件

    最近自己想通过phpmyadmin上传大的文件,找了很多方法都没搞定,今天特意静下心来,终于搞定了. 需求:将480M大小的sql文件通过phpmyadmin进行导入 1.首先修改php.ini文件, ...

  3. sublime 使用快捷记录

    1.sublime 中有一个htmlprettify 插件 这个插件 可以用来格式化 html css js 使我们的代码看着比较美观 ctrl + shift + h 这个快捷方式是美化代码间距的 ...

  4. Android+NDK+OpenGLES开发环境配置

    1.资源 (1).Android的eclipse开发环境 我用adt-bundle-windows-x86.官方主页就能下载.这是一个打包的版本号,直接执行eclipse.exe你可以开始 (2).N ...

  5. OpenGL------版本历史

    到今天为止,正式的OpenGL已经有九个版本.(1.0, 1.1, 1.2, 1.2.1, 1.3, 1.4, 1.5, 2.0, 2.1)每个OpenGL版本的推出,都增加了一些当时流行的或者迫切需 ...

  6. windows下nodejs安装及配置

    1)在 http://nodejs.org/download/下载一个window的安装包 2)运行安装包,设置安装路径,如安装到D:\nodejs,安装后会自动将d:\nodejs添加到系统变量pa ...

  7. MongoDB入门系列(三):查询(SELECT)

    一.概述 mongodb是最接近关系型数据库的NOSQL数据库,它的存储方式非常的灵活:以至于你会将它看成是一个经过冗余过的关系型数据库的表,这也是Mongodb原子性的一个特征.由于没有关系型数据库 ...

  8. Python求解啤酒问题(携程2016笔试题)

    问题描述:一位酒商共有5桶葡萄酒和1桶啤酒,6个桶的容量分别为30升.32升.36升.38升.40升和62升,并且只卖整桶酒,不零卖.第一位顾客买走了2整桶葡萄酒,第二位顾客买走的葡萄酒是第一位顾客的 ...

  9. 【Linux】阿里云服务器部署--禅道

    Xshell部署环境 回到Xshell界面,连上阿里云服务器,参考上一篇[linux学习1-Xshell连接阿里云ECS服务器](https://www.cnblogs.com/yoyoketang/ ...

  10. python 函数私有方法

    #coding:utf-8 class A(object): def _test1(self): print('this is _test1') def test2(self): print('thi ...