[Selenium]Grid模式下运行时打印出当前Case在哪台node机器上运行

当Case在本地运行成功,在Grid模式下运行失败时,我们需要在Grid模式下进行调试,同时登录远程的node去查看运行的情况。

Hub是随机将case分配到某台node上运行的,怎样知道当前的case是运行在哪台node上呢?

可以通过这段代码获取node的信息:

public void getComputerNameOfNode(WebDriver driver){
		String hub = "SZAUTOTEST1";
		int port = 4444;
		HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
		CloseableHttpClient closeableHttpClient = httpClientBuilder.build(); 

		String sessionUrl = "http://" + hub + ":" + port+ "/grid/api/testsession?session="+((RemoteWebDriver) driver).getSessionId();
		HttpPost httpPost = new HttpPost(sessionUrl);
		System.out.println("Http post request is : "+httpPost.getRequestLine());
		try{
			//Execute HTTP request
            HttpResponse httpResponse = closeableHttpClient.execute(httpPost);
            //Get HTTP response
            HttpEntity entity = httpResponse.getEntity();
            //Response status
            System.out.println("HTTP status:" + httpResponse.getStatusLine());
            //Check if response is null
            if (entity != null) {
            	System.out.println("Content encoding:" + entity.getContentEncoding());
            	String jsonString = EntityUtils.toString(entity);
            	System.out.println("Response content:" + jsonString);
            	JSONObject jsonObject = JSONObject.fromObject(jsonString);
            	String proxyID=jsonObject.getString("proxyId");
            	String node = (proxyID.split("//")[1].split(":")[0]);
            	System.out.println("The case is running on this node :" + node);
            }
		}
		catch(IOException e){
			e.printStackTrace();
		}
		finally{
			try{
				closeableHttpClient.close();
			}
			catch(IOException e){
				 e.printStackTrace();
			}
		}
    }
时间: 2024-07-28 12:33:30

[Selenium]Grid模式下运行时打印出当前Case在哪台node机器上运行的相关文章

关于GTID模式下备份时 --set-gtid-purged=OFF 参数的实验【转】

刚刚听了吴老师是复制章节课程,对于GTID模式下备份数据--set-gtid-purged=OFF 参数有些不理解,于是乎做了实验,加深理解,得出些结论,如有错漏请批评指正! 部分备份: [[email protected] mysql]# /usr/local/mysql/bin/mysqldump -uroot -p -S /data/mysql3306/data/mysql3306.sock lyh2 >/home/backup/lyh2-3306-`date +%Y%d%m`.sql E

VS2010生成的文件在别的机器上运行提示“丢失MSVCR100D.dll”<转>

用vs2010编写的程序经常会发生的一个问题.在自己的机器上运行的好好的,但是在别的机器上就会发生没有找到MSVCR100D.dll.这是 个很头疼的问题.对于一些代码量几百行的小程序,我不可能要求其他电脑也一定要配有MSVCR100D.dll这个dll.当然解决方法也有,但是我也不 可能要求所有的电脑都装上.net framwork 2.0.微软又给CSer们出了个难题. 解决方法: 在vs2010下,按ALT+F7,打开工程属性–>配置属性–>C/C++–>代码生成–>运行时库

在没装VS2010的机器上运行VS2010开发的C++程序

在VS2010下写了一个win32控制台应用程序,编译ok.exe,需要依赖osg相关动态库 第一次编译的是Debug版本的,直接将ok.exe和osg相关dll文件拷贝到没有安装VS2010机器上运行,报错 “.....计算机中丢失MSVCR100D.DLL...” 解决方法: 1.不能使用Debug编译,需要编译Release版本 2.在没装VS2010的机器上安装vcredist_x86.exe,这个文件可以在http://www.microsoft.com/zh-CN/download/

VS2013生成Release版本MFC程序在其他机器上运行

对于自己机器安装了VS开发环境,生成MFC的exe文件能够在自己机器上运行,复制到其他目标机器可能出现不能运行的情况.下面就个人经历将发布的两中情况简要说明. 1.工程属性中:配置属性-常规,MFC使用类型选择“在共享的DLL中使用MFC”:C/C++ - 代码生成-MFC的使用 选择“多线程DLL(/MD)”这种情况下,若直接将exe文件放到目标机器运行,则需要目标机器安装相应的开发平台.或者将生成exe程序的依赖dll文件复制到目标机器的程序运行目录下:若用到第三方库,也要复制相应的dll文

如何确定Hadoop守护进程分别会在哪台机器上运行

经过一段时间的配置,Hadoop环境总算运行起来了,但是呢,为何主节点就没有跑tasktracker和datanode进程,slave节点也没有跑secondary进程,Hadoop是如何控制的呢? 经过看权威指南(267页)和跟群里同学讨论,还有自己测试,最终确定: tasktracker和datanode这两个守护进程 —— 只会在conf/slaves文件里指定的那些节点上运行 secondarynamenode 这个守护进程 —— 只会在conf/masters文件里指定的那个节点上运行

一台机器上运行多个ActiveMq

由于业务需要一台机器上运行多个ActiveMq,这里主要说一下有什么地方不重复: 1.brokerName名称不能重复 2.端口号不能重复uri = tcp://localhost:50509 3.kahadb路径不能重复 4.管理端口不能重复contextPort = 2019 jmxServiceUrl = service:jmx:rmi:///jndi/rmi://localhost:2019/jmxrmi

vs2013编译的程序在其他机器上运行的环境设置

vs2013编译的程序在其他没有安装vs2013的机器上运行会有问题,网上有很多解决方法,如果你还没有解决,可以尝试以下方法,这是我在反复崩溃,烦躁测试后得到的解决方法. 1. 安装vs2013 运行包 vcredist_x64.exe 如果这个时候还是不能正常执行,请不要和我一样崩溃, 试试我的解决方法,对这个运行包进行修复 控制面板--程序--程序和功能 在程序列表里找到 vc++ 12.0.30501 选中,修复 这样就可以打开vs2013编译出来的程序了,我碰到的情况是这样解决的. ==

通过给程序里嵌入manifest,使得程序运行时弹出UAC窗口

我们知道,当一个程序需要权限运行时,需要右键点击程序,然后使用管理员权限打开程序.另外,如果你用vc2008以上开发程序,可以在工程里选择uac,在生成的程序里,如果点击运行程序会弹出需要管理员权限运行程序的窗口. 现在可以通过把manifest嵌入普通程序里来达到这个效果. 现在说一下怎么样给一个普通的在单击运行时不会弹出需要管理员权限的程序增加这个功能. 1.假使这个普通程序名字为myapp.exe. 现在在程序的目录下编写一个manifest文件,命名为myapp.exe.manifest

iOS开发手记 - iOS9.3 Xcode7打包ipa文件在其他越狱机器上运行的方法和一些问题

现在Xcode7可以用一个appleid就可以往手机上部署测试app,不再需要$99,这也是方便.但是要把app发给别人的手机上运行还是不行,除非别人的手机在你身边可以直接通过Xcode安装 关于怎么打包可以看以下这篇文章 xcode7.x 免证书生产IPA打包文件 主要说说我碰到的问题 设备: iphone6 系统:ios9.3.3 目前最新 状态:已越狱 在文章里提到在Build Settings下面修改Code Signing Identify为Don’t Code Sign,我修改了之后