美文网首页
selenium grid 4.0 实现分布式自动化测试

selenium grid 4.0 实现分布式自动化测试

作者: gz_tester | 来源:发表于2022-10-17 23:42 被阅读0次

    一、什么是Selenium Grid?

    Selenium Grid是Selenium的三大组件之一,允许用户同时在不同的机器和系统上测试不同浏览器。 也就是说Selenium Grid支持分布式的测试执行。它可以让你的测试用例在一个分布式的执行环境中运行。

    由下图可见,测试脚本会通过selenium hub节点分发给不同的node节点,而不同的node节点所在的操作系统和搭载的浏览器类型可以是不同的。

    image.png

    hub节点

    • 中心节点,或总控节点
    • 管理各个node节点的注册信息和状态信息
    • 接收并转发客户端(测试脚本)请求到合适的node节点

    node节点

    • 子节点,或代理节点
    • 负责注册配置信息到hub节点(平台、浏览器、浏览器版本等)
    • 负责接收来自hub节点的转发的请求以执行测试脚本
    • 也可单独作为远程节点执行测试脚本

    二、环境准备

    1. 下载selenium-server--<version>.jar

    下载地址:http://selenium-release.storage.googleapis.com/index.html

    2. 下载chromedriver

    下载地址:https://registry.npmmirror.com/binary.html?path=chromedriver/
    配置path: sudo mv /path/to/chromedriver /usr/local/bin

    3. 启动hub

    java -jar selenium-server-4.5.0.jar hub --host 127.0.0.1 --publish-events tcp://127.0.0.1:4442 --subscribe-events tcp://127.0.0.1:4443 --port 4444
    启动成功之后,浏览器打开:http://127.0.0.1:4444

    image.png image.png

    4. 启动node

    第一个node
    java -jar selenium-server-4.5.0.jar node --host 127.0.0.1 --publish-events tcp://127.0.0.1:4442 --subscribe-events tcp://127.0.0.1:4443 --port 5555

    第二个node
    java -jar selenium-server-4.5.0.jar node --host 127.0.0.1 --publish-events tcp://127.0.0.1:4442 --subscribe-events tcp://127.0.0.1:4443 --port 6666 --driver-configuration display-name="Chrome" max-sessions=2 webdriver-path="/usr/local/bin/chromedriver" stereotype='{"browserName":"chrome", "browserVersion": "105.0.5195.52", "goog:chromeOptions":{"binary":"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"}}' --detect-drivers false

    image.png image.png

    三、代码配置

    selenium代码

    from selenium import webdriver
    
    options = webdriver.ChromeOptions()
    driver = webdriver.Remote(command_executor="http://127.0.0.1:4444", options=options)
    driver.get("https://www.baidu.com")
    print(driver.page_source)
    driver.quit()
    

    指定版本

    from selenium import webdriver
    
    options = webdriver.ChromeOptions()
    options.set_capability("browserName", "chrome")
    options.set_capability("browserVersion", "106.0")
    driver = webdriver.Remote(command_executor="http://127.0.0.1:4444", options=options)
    driver.get("https://www.baidu.com")
    time.sleep(100)
    print(driver.page_source)
    driver.quit()
    
    image.png

    相关文章

      网友评论

          本文标题:selenium grid 4.0 实现分布式自动化测试

          本文链接:https://www.haomeiwen.com/subject/isxjzrtx.html