zoukankan      html  css  js  c++  java
  • 使用selenium grid的hub做分发,且可查看分发后的服务器IP地址

    背景:借助selenium 的grid做分布式运行,进行分发任务,(目前不做多浏览器的操作,只对谷歌浏览器进行操作)

    目前在A服务器(http://10.40.6.24:4444)上注册了一个hub,在B和C服务器分别注册node,且都绑定在A服务器上,如图

    看很多贴子在使用grid中是指定某台服务器的IP地址运行,如下方式(我另一篇贴也有提到过)

    driver = new RemoteWebDriver(new URL("http://10.40.2.113:5555/wd/hub"), capabilities);

    而这样,就只能自己去指定IP运行,我的目的是想通过hub节点,自己去分发任务,到某台电脑去运行,那该如何操作,实现方式

    driver = new RemoteWebDriver(new URL("http://10.40.6.24:4444/wd/hub"), capabilities); 

    注hub使用时,也是使用/wd/hub,如果你在Jenkins运行时出错,请查看分发IP和你Jenkins运行的IP是否一样,如果一样,根本就没法做分发

    查看分发时运行服务服务器IP

    使用了hub做分发,你不通过服务器查看,你不知道他分配到那台服务器,所以还需要调用一个接口,

    "http://10.40.6.24:4444/grid/api/testsession?session=" + Session
    接口:hub地址/grid/api/testsession?session=

    返回“proxyId”就是运行的ip地址,关键的代码如下:

    WebDriver driver = new RemoteWebDriver(new URL("http://10.40.6.24:4444/wd/hub"), capabilities);
    				System.out.println("获取的driver:"+driver);
    				// 获取driver的session
    				String getSession = driver.toString().substring(driver.toString().indexOf("(") + 1,
    						driver.toString().indexOf(")"));				
    				// get请求,获取在hub上分发到某台电脑运行
    				Map<String, String> getIP = Pub
    						.get("http://10.40.6.24:4444/grid/api/testsession?session=" + getSession);
    				Iterator<Entry<String, String>> entries = getIP.entrySet().iterator(); 
    				while (entries.hasNext()) { 
    				  Entry<String, String> entry = entries.next(); 
    				  System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); 
    				}
    				// 从返回内容中获取到需要的内容
    				Gson gson = new Gson();
    				Map<String, Object> map = new HashMap<String, Object>();
    				map = gson.fromJson(getIP.get("Response"), map.getClass());
    				String proxyId = (String) map.get("proxyId");
    				System.out.println("获取的ip为:" + proxyId);
    

      打印内容:

  • 相关阅读:
    SHT20 IIC 寄存器概述
    代理技术简介
    Spring基于注解配置AOP
    Spring基于XML配置AOP
    如何在国内下载Eclipse及其插件
    Spring AOP理解
    idea个人配置记录
    使用Gradle自动创建Java项目结构
    Spring使用外部属性文件
    Web程序员开发App系列
  • 原文地址:https://www.cnblogs.com/chongyou/p/8658385.html
Copyright © 2011-2022 走看看