为了更对得起“自动化测试”的名号,我们可以设置定时任务,使我们自动化脚本在某个时间点自动运行脚本,这样就可以让测试在夜间进行,减少了时间成本。通过程序来控制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

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

Selenium+WebDriver+Python 定时控制任务的更多相关文章

  1. 【转】Selenium WebDriver + Python 环境

    转自:http://www.myext.cn/webkf/a_11878.html 1. 下载必要工具及安装包 1.1 [Python开发环境] 下载并安装Python 2.7.x版本 下载地址:ht ...

  2. selenium webdriver (python) 第二版

    前言 对于大多软件测试人员来讲缺乏编程经验(指项目开发经验,大学的C 语言算很基础的编程知识)一直是难以逾越的鸿沟,并不是说测试比开发人员智商低,是国内的大多测试岗位是功能测试为主,在工作时间中,我们 ...

  3. selenium webdriver (python) 第三版

    感谢 感谢购买第二版的同学,谢谢你们对本人劳动成果的支持!也正是你们时常问我还出不出第三版了,也是你们的鼓励,让我继续学习整理本文档. 感谢乙醇前辈,第二版的文档是放在他的淘宝网站上卖的,感谢他的帮忙 ...

  4. Selenium WebDriver + Python 环境配置

    1.   下载必要工具及安装包 1.1.[Python开发环境] 下载并安装Python 2.7.x版本(当前支持2.x版本,不要下载最新的3.X的版本因为python3并非完全兼容python2) ...

  5. selenium webdriver (python)2

    selenium webdriver (python) 第二版 前言  对于大多软件测试人员来讲缺乏编程经验(指项目开发经验,大学的C 语言算很基础的编程知识)一直是难以逾越的鸿沟,并不是说测试比开发 ...

  6. selenium webdriver (python)

    selenium webdriver (python) 第一版PDF Posted on 2013-08-30 22:59 虫师 阅读(221) 评论(0) 编辑 收藏 前言 如果你是一位有pytho ...

  7. Selenium WebDriver + python 自动化测试框架

    目标 组内任何人都可以进行自动化测试用例的编写 完全分离测试用例和自动化测试代码,就像写手工测试用例一下,编写excel格式的测试用例,包括步骤.检查点,然后执行自动化工程,即可执行功能自动化测试用例 ...

  8. selenium webdriver (python) 第一版PDF

    前言 如果你是一位有python语言基础的同学,又想通过python+ selenium去实施自动化,那么你非常幸运的找到了这份文档,我也非常荣幸能为你的自动化学习之路带来一丝帮助. 其实,我在sel ...

  9. selenium webdriver python 开始

    学习资料: Selenium with Python: http://selenium-python.readthedocs.org/en/latest/index.html 乙醇的python se ...

随机推荐

  1. GNU make规则的命令④书写命令

    命令回显 通常, make 在执行命令行之前会把要执行的命令行输出到标准输出设备.我们称之为"回显",就好像我们在 shell 环境下输入命令执行时一样. 如果规则的命令行以字符& ...

  2. JProfiler

    1  前言 回答之前先让我们来看看什么是jProfiler:JProfiler是一个商业授权的Java剖析工具,由EJ技术有限公司,针对Java EE和Java SE应用程序开发的.它允许两个内存剖面 ...

  3. poj[1185]炮兵阵地

    Description 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可能是平原(用&quo ...

  4. Linux打包压缩.md

    Linux下打包压缩命令 下面学习一下压缩和打包的相关命令,首先得先明确两个概念,即:压缩和打包 .我们实际使用中一般是打包和压缩结合的使用,为了学习下面简要的介绍一下压缩文件或目录的命令. 压缩:将 ...

  5. Kali linux渗透测试常用工具汇总2-渗透攻击

    渗透攻击的思路一般是扫描漏洞,然后利用不同的漏洞,才有针对的渗透攻击. 漏洞扫描的工具有Nessus,该工具可同时在本地或远端遥控,对系统的漏洞分析扫描.Nessus通过新建扫描策略,并添加对应的插件 ...

  6. 使用bootstrap-table简化CRUD

    1. 引入bootstrap-table资源包, 页首引用css, 页脚引用js 2. table 参数说明 data-toggle="table" data-toolbar=&q ...

  7. Codevs 1229 数字游戏

    1229 数字游戏  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver     题目描述 Description Lele 最近上课的时候都很无聊,所以他发明了 ...

  8. 截取视图某一段另存为部分视图(Partial View)

    在做ASP.NET MVC后台管理程序时,根据程序需要,Isus.NET需要实现一个功能,就是动态截取视图某一段另存为部分视图Partial View. 思路为在视图中,使用jQury的程序截图以及P ...

  9. [转]使用URLDecoder和URLEncoder对中文进行处理

    一 URLEncoder HTML 格式编码的实用工具类.该类包含了将 String 转换为 application/x-www-form-urlencoded MIME 格式的静态方法.有关 HTM ...

  10. codevs 2651 孔子教学——同桌

    2651 孔子教学--同桌 题目描述 Description 孔子是我国古代著名的教育家.他有先见之明,可以判断学生出师以后给他带来的声望.声望共有三种"G""M&quo ...