unittest的将不同模块的测试用例放在不同的线程中 并使用beautifulreporter生成测试报告将测试报告合在一起为什么执行的时候两个浏览器执行的同一个测试用例怎么使用并发来执行
- 将不同模块的测试用例放在不同的线程中可以使用Python内置的threading模块来实现。具体操作可以参考以下代码:
import threading import unittest from module1 import TestModule1 from module2 import TestModule2
if name == 'main': thread1 = threading.Thread(target=unittest.TextTestRunner().run, args=(unittest.TestLoader().loadTestsFromTestCase(TestModule1),)) thread2 = threading.Thread(target=unittest.TextTestRunner().run, args=(unittest.TestLoader().loadTestsFromTestCase(TestModule2),)) thread1.start() thread2.start() thread1.join() thread2.join()
- 使用beautifulreporter生成测试报告可以参考以下代码:
import unittest from BeautifulReport import BeautifulReport from module1 import TestModule1 from module2 import TestModule2
if name == 'main': suite = unittest.TestSuite() suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestModule1)) suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestModule2)) result = BeautifulReport(suite) result.report(filename='test_report', description='测试报告', log_path='./')
- 如果两个浏览器执行的同一个测试用例,可能是因为测试用例中没有指定使用哪个浏览器进行测试。可以在测试用例中添加如下代码来指定使用哪个浏览器进行测试:
from selenium import webdriver
class TestModule(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() # 使用Chrome浏览器进行测试 self.driver.maximize_window() self.driver.implicitly_wait(10)
def tearDown(self):
self.driver.quit()
- 使用并发来执行可以使用Python内置的multiprocessing模块来实现。具体操作可以参考以下代码:
import multiprocessing import unittest from module1 import TestModule1 from module2 import TestModule2
if name == 'main': process1 = multiprocessing.Process(target=unittest.TextTestRunner().run, args=(unittest.TestLoader().loadTestsFromTestCase(TestModule1),)) process2 = multiprocessing.Process(target=unittest.TextTestRunner().run, args=(unittest.TestLoader().loadTestsFromTestCase(TestModule2),)) process1.start() process2.start() process1.join() process2.join()
原文地址: https://www.cveoy.top/t/topic/bJET 著作权归作者所有。请勿转载和采集!