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");
        
    }

 

转载于:https://www.cnblogs.com/zw520ly/p/5995708.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Selenium Grid是用于管理多个Selenium节点的工具,可以通过它来并行运行多个测试用例,提高测试效率。下面是一个简单的Selenium Grid使用示例: 1. 首先,需要安装和配置Selenium Grid。可以通过以下命令来安装Selenium Grid: ``` npm install -g selenium-grid ``` 安装完成后,可以通过以下命令来启动Selenium Grid: ``` selenium-grid start ``` 2. 在测试脚本中,需要将WebDriver的RemoteWebDriver实例化,指定Selenium Grid的URL和所需的浏览器配置。例如: ```python from selenium.webdriver.remote.webdriver import RemoteWebDriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities # 指定Selenium Grid的URL和所需的浏览器配置 browser = RemoteWebDriver( command_executor='http://localhost:4444/wd/hub', desired_capabilities=DesiredCapabilities.CHROME ) ``` 3. 运行测试脚本时,需要启动多个Selenium节点,并将它们注册到Selenium Grid上。可以通过以下命令来启动Selenium节点: ``` selenium-node start ``` 启动Selenium节点时,需要指定所需的浏览器配置。例如: ``` selenium-node start --capabilities browserName=chrome,maxInstances=5 ``` 上述命令表示启动5个Chrome浏览器实例作为Selenium节点。 4. 运行测试脚本时,测试用例会被分配到空闲的Selenium节点上运行,从而实现并行运行多个测试用例的效果。 以上是一个简单的Selenium Grid使用示例,具体的使用方法可以根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值