Selenium+WebDriver+Python 定时控制任务

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

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

时间: 2024-10-29 19:11:18

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

Selenium WebDriver + Python 环境配置

1.   下载必要工具及安装包 1.1.[Python开发环境] 下载并安装Python 2.7.x版本(当前支持2.x版本,不要下载最新的3.X的版本因为python3并非完全兼容python2) 下载地址:https://www.python.org/downloads/ 1.2.[python 的安装包管理工具]Pip pip 是python 软件包的安装和管理工具,有了这个工具,我们只需要一个命令就可以轻松的python 的任意类库. 下载地址: https://pypi.python.

【转】Selenium WebDriver + Python 环境

转自:http://www.myext.cn/webkf/a_11878.html 1. 下载必要工具及安装包 1.1 [Python开发环境] 下载并安装Python 2.7.x版本 下载地址:https://www.python.org/downloads/ 1.2 [python 的安装包管理工具]Pip pip 是python 软件包的安装和管理工具,有了这个工具,我们只需要一个命令就可以轻松的python的任意类库. 下载地址:https://pypi.python.org/pypi/

selenium webdriver python 开始

学习资料: Selenium with Python: http://selenium-python.readthedocs.org/en/latest/index.html Selenium WebDriver主要用来写 functional/acceptance tests. 当前支持Python版本: 2.7,3.2,3.3,3.4 当前支持的浏览器: Firefox, Chrome, Ie and Remote

selenium webdriver (python)大全

webdriver的简介 硒2.0的主要新功能是集成的webdriver的API.webdriver的设计除了解决一些seleniumr-RC API的一些限制,与webdriver 的整合,将提供一个更简单,更简洁的编程接口.selenium webdriver会更好地支持动态的网页,页面本身被重新加载页面元素可能更改.webdriver的目标是提供一个设计良好的面向对象的API,提供了更好的支持现代先进的web-app测试. WebDriver与Selenium-RC相比,是如何来驱动浏览器

selenium webdriver python 环境搭建

1. 安装python https://www.python.org/getit/ 选择2.7版本,下载安装即可. 验证是否安装成功:打开cmd,输入"python -V",显示python版本号即安装成功. 2. 安装setuptools https://pypi.python.org/pypi/setuptools 安装步骤 下载setuptools-18.5.zip,完成之后解压 打开cmd,进入路径setuptools-18.5 python setup.py install

Selenium WebDriver +Python讲解

1. Selenium1.0家谱: 1.1 Selenium IDE :是嵌入到浏览器中的一个插件,实现简单的浏览器操作的录制和回放功能.官方给出的定义:快速的创建bug重现脚本,在测试人员测试过程中,发现bug之后可以通过IDE将重新的步骤录制下来,以帮助开发人员更容易的重现bug. 1.2 Selenium Grid:是一种自动化的测试辅助工具,Grid通过利用现有的计算机基础设施,能加快Web-App的功能测试.利用Grid可以很方便地实现多台机器上和已购环境中运行测试用例. 1.3 Se

selenium webdriver+python基本操作

导入模块: from selenium import webdriver from selenium.common.exceptions import NoSuchElementException 选择浏览器: driver = webdriver.Firefox() 打开url: driver.get("http://www.baidu.com") 等待: driver.implicitly_wait(30) driver.set_page_load_timeout(30) driv

转:selenium webdriver+python基本操作

转自: http://blog.163.com/[email protected]/blog/static/1017337222013102310617946/ 导入模块: from selenium import webdriver from selenium.common.exceptions import NoSuchElementException 选择浏览器: driver = webdriver.Firefox() 打开url: driver.get("http://www.baid

selenium+webdriver+python 中警告框的处理方法

在自动化测试过程中,经常会遇到弹出警告框的情况,如图所示: 在 WebDriver 中处理 JavaScript 所生成的 alert.confirm 以及 prompt 是很简单的.具体做法是使用 switch_to_alert()方法定位到 alert/confirm/prompt.然后使用 text/accept/dismiss/send_keys 按需进行操做.1. 获取警告框的text消息 2. 接受消息框(确定) 3. 取消 4. 输入值 text 返回 alert/confirm/