• selenium grid的使用与配置


    一、selenium grid的组成与作用:由一个集线器hub和多个客户机node组成,如果你的程序需要在不用的浏览器,不同的操作系统上测试,而且比较多的case需要多线程远程执行,那么一个比较好的测试方案就是使用 selenium grid,hub用来管理各个代理节点的注册和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令再转发给代理节点来执行。

    其结构组成:

    二、准备工作:hub集线器上安装jdk,selenium-server-standalone-xxx.jar,准备好各浏览器的驱动(主要是chromedriver和iedriver)

           node节点上也需要安装jdk,selenium-server-standalone-xxx.jar,准备好各浏览器的驱动(主要是chromedriver和iedriver)

    三、启动hub节点(在你使用的hub集线器机器上执行命令):java -jar selenium-server-standalone-2.53.0.jar -role hub (hub启动命令可做成bat文件,方便维护与使用)

    其默认监听端口4444,默认IP是localhost  如果要修改,只需要加-port 参数和-Hubhost  

    例如:java -jar selenium-server-standalone-2.53.0.jar -role hub -port 1234 -Hubhost 192.168.1.30

    四、启动node节点(在你使用的node节点机器上执行命令,也可以在hub集线器机器上执行,即把hub集线器当成node节点):java -jar selenium-server-standalone-2.53.0.jar -role node -hub http://hub集线器的ip:4444/grid/register -Dwebdriver.chrome.driver=chromedriver.exe  -browser browserName=chrome(这里指定了要启动的浏览器和对应的浏览器驱动,node启动命令可做成bat文件,方便维护与使用)

    其默认监听端口5555,如果要修改,只需要加-port 参数

    例如:java -jar selenium-server-standalone-2.53.0.jar -role node -port 6666 -hub http://hub集线器的ip:4444/grid/register -Dwebdriver.chrome.driver=chromedriver.exe  -browser browserName=chrome(这里指定了要启动的浏览器和对应的浏览器驱动)

    node节点的启动参数也可以做成json文件,json文件内容如下(文件名随意取,我这里的文件名为:node.json):
    { "capabilities":[{ "browserName": "chrome", "maxInstances": 6, "platform": "WINDOWS", "version":"52.0.2743.82 m","webdriver.chrome.driver":"chromedriver.exe" }], "configuration": { "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", "maxSession": 5, "port": 5555, "register": true, "registerCycle": 5000, "hub": "http://192.168.1.36:4444" } }

    执行配置文件node.json:java -jar selenium-server-standalone-2.53.0.jar -role node -hub http://hub集线器的ip:4444/grid/register -nodeConfig node.json,这个跟直接使用命令行是同样的效果,随个人喜好

    现在hub集线器和node节点都已经启动完毕了,意味着hub集线器已经完全控制了node节点,开始编写脚本

    public void setUpDriver() throws MalformedURLException{
            ChromeOptions options = new ChromeOptions();

      //加载chrome浏览器的配置文件,比如插件,下载设置等,个人建议先在浏览器中设置好,不要把浏览器的一些参数写在脚本里
            options.addArguments("user-data-dir=C:\Users\Administrator\AppData\Local\Google\Chrome\User Data");

      //启动chrome浏览器
            DesiredCapabilities capabilities = DesiredCapabilities.chrome();

        //将配置文件加载到chrome浏览器中
            capabilities.setCapability(ChromeOptions.CAPABILITY,options);
            //capabilities.setCapability("chromeOptions", options);

      //启动远程的node节点,注意:URL地址一定要写你的node节点的地址,端口号为你指定的端口号,若没有修改,则就是默认的5555,若修改了,就用你自己修改过后的端口号
            driver = new RemoteWebDriver(new URL("http://node节点的ip:5555/wd/hub"), capabilities);

      //打开百度主页
            driver.get("http://www.baidu.com");
            
        }

  • 相关阅读:
    【java】报错could not find the main class,program will
    CSS3——阴影
    SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析
    SSO单点登录系列3:casserver端配置认证方式实践
    [转载] jQuery Mobile 开发 Web App 系列文章目录
    SHELL基本语法2
    SHELL编程基本语法
    如何写批处理文件
    LINUX shell-快速参考[一]
    Shell中的引号,反引号,双引号,反斜杠
  • 原文地址:https://www.cnblogs.com/zw520ly/p/5995708.html
Copyright © 2020-2023  润新知