示例python代码remote_webdriver.py如下:

# coding=utf-8import timeimport pytestfrom selenium import webdriverfrom selenium.webdriver.common.by import By
@pytest.fixturedef init_driver():    hub_url = "http://192.168.10.100:4444/wd/hub"    # 定义要使用的浏览器和版本    capabilities = {        'browserName': 'chrome',  # 指定浏览器        'version': '125.0',      # 指定版本(latest代表最新版本)    }    # 创建远程 WebDriver 实例    driver = webdriver.Remote(command_executor=hub_url, desired_capabilities=capabilities)    yield driver    driver.quit()
def test_001(init_driver):    init_driver.get("http://wwww.baidu.com")    init_driver.find_element(By.ID,'kw').send_keys("柠檬班001")    time.sleep(5)
def test_002(init_driver):    init_driver.get("http://wwww.baidu.com")    init_driver.find_element(By.ID,'kw').send_keys("柠檬班002")    time.sleep(5)
def test_003(init_driver):    init_driver.get("http://wwww.baidu.com")    init_driver.find_element(By.ID,'kw').send_keys("柠檬班003")    time.sleep(5) class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">

在控制台中执行命令:

pytest remote_webdriver.py -s -v -n 3 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">

pytest-xdist只需要指定-n参数即可设置并发数,-s、-v参数可以让控制台日志更加详细

控制台输出如下:

====================================================================== test session starts ======================================================================platform win32 -- Python 3.8.8, pytest-6.2.4, py-1.11.0, pluggy-0.13.1 -- c:\python\python38\python.execachedir: .pytest_cachemetadata: {'Python': '3.8.8', 'Platform': 'Windows-10-10.0.19041-SP0', 'Packages': {'pytest': '6.2.4', 'pluggy': '0.13.1'}, 'Plugins': {'allure-pytest': '2.13.2', 'Faker': '19.6.0', 'assume': '2.4.3', 'html': '3.1.1', 'metadata': '2.0.4', 'repeat': '0.9.1', 'xdist': '3.3.1'}, 'JAVA_HOME': 'C:\\Program Files\\Java\\jdk1.8.0_251'}rootdir: D:\workspace_pycharm\study\webplugins: allure-pytest-2.13.2, Faker-19.6.0, assume-2.4.3, html-3.1.1, metadata-2.0.4, repeat-0.9.1, xdist-3.3.13 workers [3 items]   scheduling tests via LoadScheduling
remote_webdriver.py::test_003remote_webdriver.py::test_001remote_webdriver.py::test_002[gw0] PASSED remote_webdriver.py::test_003 ================================================================ 3 passed, 30 warnings in 20.04================================================================  class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">

通过VNC可以看到node节点中同时打开了三个chrome浏览器(其中一个浏览器的页面被遮挡住了)

图片

Java并行执行测试

如果采用的是Java语言,可以使用TestNG测试框架的parallel机制,通过配置xml文件即可非常简单的实现并行测试

"1.0" encoding="utf-8" ?>suite SYSTEM "https://testng.org/testng-1.0.dtd" ><suite name="测试套件" parallel="tests" thread-count="3">
    <test name="test01">        <classes>            <class name="com.testcases.LoginTest"/>        </classes>    </test>
    <test name="test02">        <classes>            <class name="com.testcases.RegisterTest"/>        </classes>    </test>
    <test name="test02">        <classes>            <class name="com.testcases.SearchTest"/>        </classes>    </test>
</suite> class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">
@BeforeTestpublic void setup(String browserName){    // 配置对象    DesiredCapabilities capabilities = new DesiredCapabilities();    // 配置测试的浏览器    capabilities.setBrowserName("chrome");    capabilities.setVersion("125.0");    String hubUrl = "http://192.168.10.100:4444/wd/hub";    try {        driver = new RemoteWebDriver(new URL(hubUrl), capabilities);    } catch (MalformedURLException e) {        e.printStackTrace();    } class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">

拉取指定浏览器版本node节点

有些时候我们不需要使用最新版本的浏览器容器环境,想要指定对应版本的浏览器

我们可以查询docker仓库镜像的tag

https://hub.docker.com/r/selenium/node-chrome/tags

图片

docker pull selenium/node-chrome:120.0-chromedriver-120.0-20240123 class="hljs-button signin active" data-title="登录复制" data-report-click="{"spm":"1001.2101.3001.4334"}" onclick="hljs.signin(event)">

 最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】

data-report-view="{"mod":"1585297308_001","spm":"1001.2101.3001.6548","dest":"https://blog.csdn.net/weixin_57794111/article/details/142556148","extend1":"pc","ab":"new"}">> id="blogExtensionBox" style="width:400px;margin:auto;margin-top:12px" class="blog-extension-box"> class="blog_extension blog_extension_type1" id="blog_extension"> class="blog_extension_card" data-report-click="{"spm":"1001.2101.3001.6470"}" data-report-view="{"spm":"1001.2101.3001.6470"}"> class="blog_extension_card_left"> class="blog_extension_card_cont"> class="blog_extension_card_cont_l"> 软件测试小dao class="blog_extension_card_cont_r"> 微信公众号 软件测试资料共享(文档、视频、笔记源码)
注:本文转载自blog.csdn.net的yoyo小小汐~的文章"https://blog.csdn.net/weixin_57794111/article/details/142556148"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接

评论记录:

未查询到任何数据!