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
  • 相关阅读:
    Spring Batch 之 Sample(XML文件操作)(五)
    Spring Batch 之 Spring Batch 简介(一)
    Spring Batch 之 Sample(固定长格式文件读写)(六)
    Spring Batch 之 Sample(复合格式文件的读、多文件的写)(七)
    bat调用jar包的两个典型问题
    Spring Batch 之 Sample(Hello World)(三)
    开园大吉
    js中createElement方法的兼容性
    Struts2中关于"There is no Action mapped for namespace / and action name"的总结
    Spring Batch 之 框架流程简单介绍(二)
  • 原文地址:https://www.cnblogs.com/tim2016/p/15622673.html
Copyright © 2011-2022 走看看