背景:借助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);

  打印内容:

使用selenium grid的hub做分发,且可查看分发后的服务器IP地址的更多相关文章

  1. [Selenium Grid] 搭建Hub和Node环境

    Note : 先在Hub和Node的机器上安装好JDK,  IE浏览器,Chrome浏览器,Firefox浏览器 准备好红色框标示的东西: Hub.bat :启动Hub AllNodes.bat  : ...

  2. 服务器使用nginx做代理,通过HttpServletRequest获取请求用户真实IP地址

    首先,在nginx配置中添加如下配置 server { listen ; server_name www.wenki.info; #要访问的域名 charset utf8; location / { ...

  3. selenium grid用法

    一,selenium grid是什么? selenium是一个用于UI自动化测试的工具. selenium grid是selenium家族中的三大组件的一员.selenium grid有两个版本,gr ...

  4. selenium grid的使用与配置

    一.selenium grid的组成与作用:由一个集线器hub和多个客户机node组成,如果你的程序需要在不用的浏览器,不同的操作系统上测试,而且比较多的case需要多线程远程执行,那么一个比较好的测 ...

  5. selenium grid的使用

    Selenium grid是用来分布式执行测试用例脚本的工具,比如测试人员经常要测试多浏览器的兼容性,那就可以用到grid了. selenium grid的hub相当于一个接收脚本并分发脚本的角色,n ...

  6. Selenium Grid 的使用

    简介 Selenium Grid 是 selenium 的三大组件之一,允许用户同时在不同的机器和系统上测试不同的浏览器,可以分布式的来执行我们的自动化测试,也可以测试不同浏览器的兼容性. Selen ...

  7. Selenium Grid分布式测试入门详解

    本文对Selenium Grid进行了完整的介绍,从环境准备到使用Selenium Grid进行一次完整的多节点分布式测试. 运行环境为Windows 10,Selenium版本为 3.5.0,Chr ...

  8. 配置selenium grid

    本文对Selenium Grid进行了完整的介绍,从环境准备到使用Selenium Grid进行一次完整的多节点分布式测试. 运行环境为Windows 10,Selenium版本为 3.5.0,Chr ...

  9. Python+Selenium笔记(十一):配置selenium Grid

    (一) 前言 Selenium Grid可以将测试分布在若干个物理或虚拟机器上,从而实现分布方式或并行方式执行测试. 这个链接是官方的相关说明. https://github.com/Selenium ...

随机推荐

  1. MessageFormat 格式化String

    public static String buildFailureString(AtomicInteger count, String cause) { return MessageFormat.fo ...

  2. args 、kwargs不定参数通过列表、元组、字典传递

    *args .**kwargs是不定参数的表达方法,一般用于函数形参.*args .**kwargs 作为传递参数的函数,在使用过程中,可对*args .**kwargs多个输入,但是效率或者比较麻烦 ...

  3. Launch iCar Scan Android Scanner Support Bluetooth X431 iDiag Update Version

    Autonumen.com release new Launch iCar Scan for Android,Launch iCarScan Bluetooth Scanner is update v ...

  4. 13-----BBS论坛

    BBS论坛(十三) 13.1点击更换图形验证码 (1)front/signup.html <div class="form-group"> <div class= ...

  5. LeetCode 441.排列硬币(C++)

    你总共有 n 枚硬币,你需要将它们摆成一个阶梯形状,第 k 行就必须正好有 k 枚硬币. 给定一个数字 n,找出可形成完整阶梯行的总行数. n 是一个非负整数,并且在32位有符号整型的范围内. 示例 ...

  6. MATLAB特殊矩阵以及矩阵转置

    特殊矩阵 通用特殊矩阵 zeros函数:产生全0矩阵,即零矩阵. ones函数:产生....1矩阵,即幺矩阵. eye函数:产生对角线为1的矩阵,当矩阵是方正时,得到单位矩阵. rand函数:产生(0 ...

  7. verilog if语句

    a.基本形式 1) if(表达式) 语句1: 2)if(表达式) 语句1: else 语句1 3) if(表达式1) 语句1: else   if(表达式2) 语句2: else   if(表达式3) ...

  8. schema中属性声明

    <attribute name="属性名"   default="默认值"  fixed="固定值" use="option ...

  9. Win10 手工安装.netframework3.5

    1.装载win10/win8...等镜像文件 2.cmd命令管理员身份运行 3.输入命令:C:\Windows\system32>dism.exe /online /enable-feature ...

  10. ArrayList、Vector、HashMap、HashSet

    1. list  和 set 的有序无序是否可重复 List是有序可重复的: Set是无序不可重复的: 2.ArrayList.Vector.HashMap.HashSet的默认初始容量.加载因子.扩 ...