失败重试机制

import unittest
from time import sleep

from retrying import retry
from selenium import webdriver


class TestRetry(unittest.TestCase):
    def setUp(self) -> None:
        self.driver = webdriver.Chrome()
        self.url = 'https://www.baidu.com'

    @retry(stop_max_attempt_number=5, wait_fixed=4000)
    def test1(self):
        d = self.driver
        d.get(self.url)

        d.find_element_by_id('kw').send_keys('hello world')
        sleep(1)
        d.find_element_by_id('sus').click()
        sleep(1)

    def tearDown(self) -> None:
        self.driver.quit()


if __name__ == "__main__":
    unittest.main()
1.stop_max_attempt_number:  用来设定最大的尝试次数,超过该次数就停止重试
2.stop_max_delay:           比如设置成10000,那么从被装饰的函数开始执行的时间点开始,到函数成功运行结束或者失败报错中止的时间点,  只要这段时间超过10秒,函数就不会再执行了
3.wait_fixed:               设置在两次retrying之间的停留时间
4.wait_random_min和wait_random_max: 用随机的方式产生两次retrying之间的停留时间
5.wait_exponential_multiplier和wait_exponential_max:  以指数的形式产生两次retrying之间的停留时间,产生的值为2^previous_attempt_number * wait_exponential_multiplier,previous_attempt_number是前面已经retry的次数, 如果产生的这个值超过了wait_exponential_max的大小,那么之后两个retrying之间的停留值都为wait_exponential_max
6.我们可以指定要在出现哪些异常的时候再去retry,这个要用retry_on_exception传入一个函数对象

你可能感兴趣的:(python积累)