我正在使用selenium(python)测试,我需要每10秒自动测试一次我的应用程序。
我该怎么做?
答案 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” - 它的界面可能有点令人生畏,但它很容易使用。
任务计划程序具有多种用途 - 您希望计算机自动执行的任何操作,您可以在此处进行配置。例如,您可以使用任务计划程序在特定时间自动唤醒计算机。