当前位置:   article > 正文

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

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```
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

封装用例

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

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

封装多线程

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

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

完整代码

# 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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/1012680
推荐阅读
相关标签
  

闽ICP备14008679号