以下是使用 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 多线程执行测试用例:同时使用 Chrome、Firefox 和 IE

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

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