• selenium---多线程启动浏览器


      在做web网页测试的时候,功能测试阶段不仅仅只使用一种浏览器,需要拿多个浏览器进行测试,这就是我们常说的网页版的兼容性测试,那么我们在做web自动化的时候,如何使用多个浏览器呢?有的朋友说直接改启动浏览器类型,这种要求太慢,如果在公司这样干,肯定会被公司请回家的,那么我们考虑通过多线程的方法进行启动浏览器,然后来帮助我们执行用例。

    多线程启动浏览器

    这里简单的列举下安静如何启动多个浏览器,这里先把思路进行列出来,根据思路进行一步步写

    1、先把浏览器驱动单独封装起来,调用时,直接选取对应的驱动

    2、把想要执行的用例进行也单独封装起来。

    3、通过多线程进行调用封装的用例,每启动1次线程,就运行一次用例。

    4、把多个浏览器的名称列举出来,通过循环的方式把浏览器参数传入到用例中。从而进行执行用例

    封装浏览器驱动

    这里安静对简单的几种浏览器驱动进行了封装,通过传参为浏览器的名称进行选择浏览器类型。然后把对应的驱动进行返回出去

    def Browser(browser):
        driver = None
        if browser == "ie":
            driver = webdriver.Ie()
        elif browser == "firefox":
            driver = webdriver.Firefox()
        elif browser == "chrome":
            driver = webdriver.Chrome()
        else:
            print('输入的正确的浏览器信息')
        return driver

    封装用例

    这里为了简单,安静也只是简单的封装了百度查询的用例

    def test_baidu(browser_name):
        driver = Browser(browser_name)
        driver.get('https://www.baidu.com')
        driver.find_element_by_id('kw').send_keys('测试-安静')
        driver.find_element_by_id('su').click()
        print(driver.title)
        print('通过浏览器:%s'%browser_name)

    封装多线程

    封装了一个线程,通过传入参数来获取浏览器的类型

    def run_case(name):
        thread_list = []
        for i in range(1):
            appium_server = threading.Thread(target=test_baidu,args=(name,))
            thread_list.append(appium_server)
        for j in thread_list:
            j.start()

    完整代码

    # coding:utf-8
    
    from selenium import webdriver
    import threading
    
    def Browser(browser):
        driver = None
        if browser == "ie":
            driver = webdriver.Ie()
        elif browser == "firefox":
            driver = webdriver.Firefox()
        elif browser == "chrome":
            driver = webdriver.Chrome()
        else:
            print('输入的正确的浏览器信息')
        return driver
    
    def test_baidu(browser_name):
        driver = Browser(browser_name)
        driver.get('https://www.baidu.com')
        driver.find_element_by_id('kw').send_keys('测试-安静')
        driver.find_element_by_id('su').click()
        print(driver.title)
        print('通过浏览器:%s'%browser_name)
    
    def run_case(name):
        thread_list = []
        for i in range(1):
            appium_server = threading.Thread(target=test_baidu,args=(name,))
            thread_list.append(appium_server)
        for j in thread_list:
            j.start()
    
    if __name__ == '__main__':
        a = ('chrome','firefox')
        for i in a:
            run_case(i)

    安静这里就不放动图了,大家可以自己去尝试下,封装的并不是很好地代码,如果你有更好的方法,可以在下方留言,共同学习

  • 相关阅读:
    一些坑爹的错误
    鼠标键盘钩子捕获(初版)
    【Win10】我们无法更新系统保留的分区
    实验一:c++简单程序设计(1)
    《Java 8 in Action》Chapter 1:为什么要关心Java 8
    《Java 8 in Action》Chapter 2:通过行为参数化传递代码
    Java集合类综合
    Java内存模型
    你真的会阅读Java的异常信息吗?
    Java常用异常整理
  • 原文地址:https://www.cnblogs.com/qican/p/14031639.html
Copyright © 2020-2023  润新知