Selenium python每10秒进行一次测试

时间:2011-11-25 09:37:38

标签: python testing selenium automation

我正在使用selenium(python)测试,我需要每10秒自动测试一次我的应用程序。

我该怎么做?

4 个答案:

答案 0 :(得分:3)

您可以使用threading.Timer

import threading
import logging

def print_timer(count):
    if count:
        t = threading.Timer(10.0, print_timer,args=[count-1])
        t.start()
    logger.info("Begin print_timer".format(c=count))
    time.sleep(15)
    logger.info("End print_timer".format(c=count))

def using_timer():
    t = threading.Timer(0.0, print_timer,args=[3])
    t.start()

if __name__=='__main__':
    logging.basicConfig(level=logging.DEBUG,
                        format='%(threadName)s: %(asctime)s: %(message)s',
                        datefmt='%H:%M:%S')    
    using_timer()

产量

Thread-1: 06:46:18: Begin print_timer  --
                                         | 10 seconds
Thread-2: 06:46:28: Begin print_timer  --
Thread-1: 06:46:33: End print_timer      | 10 seconds
Thread-3: 06:46:38: Begin print_timer  --
Thread-2: 06:46:43: End print_timer      | 10 seconds
Thread-4: 06:46:48: Begin print_timer  --
Thread-3: 06:46:53: End print_timer
Thread-4: 06:47:03: End print_timer

请注意,这将在10秒内产生一个新线程。在线程数变得无法容忍之前,请务必为线程生成提供一些方法。

答案 1 :(得分:1)

这取决于你拥有什么资源。 要自动运行某个脚本,您应该查看cron程序

您可以做的最好的事情是使用Jenkins CI,这是一个自动构建的工具

我将它用于自动测试 - 我构建应用程序并运行测试,它提供了许多其他工具,如图形,检测回归等。

编辑:如果你想每10秒测试一次,那么我认为你的应用程序非常小,所以不需要Jenkins,我会看一下cron

答案 2 :(得分:0)

我知道也许这不是最好的解决方案,但如果你想做一些简单快捷的事情:

import time

def my_function():#my function
    do_something
    .......

try:
    while True:
        my_function()#call my function
        time.sleep(10)#wait 10 second
except KeyboardInterrupt:#execute the while loop until you don't press CRTL+C, when you press it the execution is going to stop after 10 sec
    pass

答案 3 :(得分:-1)

如果您想在Windows机器上每10秒自动测试一次应用程序并提醒您某些事情,甚至自动发送电子邮件?使用Windows附带的“Task Scheduler” - 它的界面可能有点令人生畏,但它很容易使用。

任务计划程序具有多种用途 - 您希望计算机自动执行的任何操作,您可以在此处进行配置。例如,您可以使用任务计划程序在特定时间自动唤醒计算机。