• 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

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

  • 相关阅读:
    [转载]链接 构造最全的java面试题整理
    [转载]面试技巧问题:面试典型问题回答技巧
    [转载]工作面试时最难的25个问题
    [转载][转]tomcat server.xml配置详解
    [转载]链接 构造最全的java面试题整理
    [转载]转 构造最全的java面试题整理(线程篇)
    [转载]C++ 面试
    [转载]转 构造最全的java面试题整理(线程篇)
    [转载][转]tomcat server.xml配置详解
    [转载]面试技巧问题:面试典型问题回答技巧
  • 原文地址:https://www.cnblogs.com/my-blogs-for-everone/p/6058379.html
Copyright © 2020-2023  润新知