selenium多线程的方式使用谷歌火狐IE同时执行一份测试 用例的代码如何把TestThread单独封装起来
以下是使用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类来启动和等待测试线程的执行。
原文地址: https://www.cveoy.top/t/topic/bHsk 著作权归作者所有。请勿转载和采集!