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
  • 相关阅读:
    Django的form表单
    Django的组件
    django组件的forms组件
    调用函数的时候参数全部变成了基名
    bash:/usr/bin/mogod/:connot execute binary:exec fotmat error
    脚本实现显示服务启动成功与否
    ./vi: line 2: mkdir: command not found
    chroot: cannot run command `/bin/bash': No such file&nbs
    脚本(复制命令及依赖库到另一个根文件系统)
    matlab安装教程
  • 原文地址:https://www.cnblogs.com/tim2016/p/15622673.html
Copyright © 2011-2022 走看看