以下是使用selenium多线程的方式,同时使用谷歌,火狐,IE执行一份测试用例的代码:

from selenium import webdriver
import threading

class TestThread(threading.Thread):
    def __init__(self, browser):
        threading.Thread.__init__(self)
        self.browser = browser

    def run(self):
        if self.browser == "chrome":
            driver = webdriver.Chrome()
        elif self.browser == "firefox":
            driver = webdriver.Firefox()
        elif self.browser == "ie":
            driver = webdriver.Ie()
        else:
            print("Invalid browser name")
            return

        driver.get("https://www.google.com")
        print(driver.title)
        driver.quit()

# create threads for each browser
chrome_thread = TestThread("chrome")
firefox_thread = TestThread("firefox")
ie_thread = TestThread("ie")

# start threads
chrome_thread.start()
firefox_thread.start()
ie_thread.start()

# wait for threads to finish
chrome_thread.join()
firefox_thread.join()
ie_thread.join()

如果要把TestThread单独封装起来,可以将上面的代码封装成一个类:

from selenium import webdriver
import threading

class TestThread(threading.Thread):
    def __init__(self, browser):
        threading.Thread.__init__(self)
        self.browser = browser

    def run(self):
        if self.browser == "chrome":
            driver = webdriver.Chrome()
        elif self.browser == "firefox":
            driver = webdriver.Firefox()
        elif self.browser == "ie":
            driver = webdriver.Ie()
        else:
            print("Invalid browser name")
            return

        driver.get("https://www.google.com")
        print(driver.title)
        driver.quit()

class TestRunner:
    def __init__(self):
        self.chrome_thread = TestThread("chrome")
        self.firefox_thread = TestThread("firefox")
        self.ie_thread = TestThread("ie")

    def start(self):
        self.chrome_thread.start()
        self.firefox_thread.start()
        self.ie_thread.start()

    def join(self):
        self.chrome_thread.join()
        self.firefox_thread.join()
        self.ie_thread.join()

# create TestRunner object
runner = TestRunner()

# start threads
runner.start()

# wait for threads to finish
runner.join()

这样,就可以通过TestRunner类来启动和等待测试线程的执行。

selenium多线程的方式使用谷歌火狐IE同时执行一份测试 用例的代码如何把TestThread单独封装起来

原文地址: https://www.cveoy.top/t/topic/bHsk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录