zoukankan      html  css  js  c++  java
  • unittest 参数化parametrize结合多线程

    • 对unittest进行改造,以使能实现传参功能:
    #大牛测试:qq2574674466
    #coding=utf-8
    import unittest
    class ParaCase(unittest.TestCase):
       #unittest增加参数化
        def __init__(self, methodName='Tests', param=None):
            super(ParaCase, self).__init__(methodName)
            self.driver = param
        def setUp(self):
            self.driver.maximize_window()
    •  以下方法是为了创建测试套件,此套件可以在被继承子类调用并在子类中设置需要运行的方法,只需通过param参数
    @staticmethod
    
        def parametrize(testcase, param=None):
            testloader = unittest.TestLoader()
            testnames = testloader.getTestCaseNames(testcase)
            suite = unittest.TestSuite()
            for name in testnames:
                suite.addTest(testcase(name, param=param))
            return suite

    #大牛测试:qq 2574674466
    #
    coding=utf-8 from thred_unit.basic_unit import ParaCase import time class DetailCase(ParaCase): #以下函数是为了测试携程网登录功能。 def test_login(self): time.sleep(2) self.driver.get('https://passport.ctrip.com/user/login?') self.driver.find_element_by_id('nloginname').send_keys("TimTest") self.driver.find_element_by_id('npwd').send_keys("TimTest") self.driver.find_element_by_id('nsubmit').click()

    
    
    #大牛测试:qq 2574674466

    #
    coding=utf-8 import unittest import threading from thred_unit.basic_case import ParaCase from thred_unit.basic_case import DetailCase from selenium import webdriver #本例实现本地多个浏览器对同一脚本并发操作 #继承父类threading.Thread class myThread (threading.Thread): def __init__(self, device): threading.Thread.__init__(self) self.device=device def run(self): print ("Starting " + self.name) print ("Exiting " + self.name) run_suite(self.device) #定义多线程实际要执行的操作 def run_suite(device): suite = unittest.TestSuite() suite.addTest(ParaCase.parametrize(DetailCase, param=device)) unittest.TextTestRunner(verbosity=1).run(suite) if __name__ == '__main__': #以下代是在本地通过同时访问多浏览器 dr = [webdriver.Firefox(executable_path='需要输入正确的firefox webdriver路径'), webdriver.Chrome('需要输入正确的Chrome webdriver路径’)] for i in range(len(dr)): print(dr[i]) th = myThread(dr[i]) th.start() th.join()

    运行结果:

    欢迎加入交流群:Selenium学习群: 628908894
  • 相关阅读:
    LeetCode 295. Find Median from Data Stream (堆)
    LeetCode 292. Nim Game(博弈论)
    《JavaScript 模式》读书笔记(4)— 函数2
    《JavaScript 模式》读书笔记(4)— 函数1
    《JavaScript 模式》读书笔记(3)— 字面量和构造函数3
    《JavaScript 模式》读书笔记(3)— 字面量和构造函数2
    《JavaScript 模式》读书笔记(3)— 字面量和构造函数1
    《JavaScript 模式》读书笔记(2)— 基本技巧3
    《JavaScript 模式》读书笔记(2)— 基本技巧2
    《JavaScript 模式》读书笔记(2)— 基本技巧1
  • 原文地址:https://www.cnblogs.com/tim2016/p/15622673.html
Copyright © 2011-2022 走看看