AAAbstractFlow()

public void getComputerNameOfNode(WebDriver driver){
String CIHub = Environment.getHub();
String hub = (CIHub.split("//")[1].split(":")[0]);
String port = (CIHub.split(":")[2].split("/")[0]);
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);
// logger.info("Http post request is : "+httpPost.getRequestLine()); try{
//Execute HTTP request
HttpResponse httpResponse = closeableHttpClient.execute(httpPost);
//Get HTTP response
HttpEntity entity = httpResponse.getEntity();
//Response status
// logger.info("HTTP status:" + httpResponse.getStatusLine());
//Check if response is null
if (entity != null) {
// logger.info("Content encoding:" + entity.getContentEncoding());
String jsonString = EntityUtils.toString(entity);
// logger.info("Response content:" + jsonString);
JSONObject jsonObject = JSONObject.fromObject(jsonString);
String proxyID=jsonObject.getString("proxyId");
String node = (proxyID.split("//")[1].split(":")[0]);
logger.info("The case is running on this node :" + node);
}
}
catch(IOException e){
e.printStackTrace();
}
finally{
try{
closeableHttpClient.close();
}
catch(IOException e){
e.printStackTrace();
}
}
}

AAAbstractTest()

public class AAAbstractTest extends AbstractTest {
private static final Logger logger = Logger.getLogger(AAAbstractTest.class); @BeforeMethod(alwaysRun=true)
public void beforeTest(ITestContext context, Method method){
WebDriver driver = getDriver(method);
try{
LoginFlow flow = new LoginFlow(getDriver(method));
if(Util.isUseGrid()){
flow.getComputerNameOfNode(driver);
}
UserBean userBean = getUser(method);
flow.login(userBean);
logger.info(method.getName()); String loginUser = userBean.getName().toString() + "/" + userBean.getPwd().toString();
logger.info("Login user is : "+loginUser);
}
catch(Exception e){
logger.info("[AAAbstractTest--beforeTest]==" + method.getName());
} } }

  

[Selenium] 在Grid模式下打印出当前Case是在哪台Node上运行的更多相关文章

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

    当Case在本地运行成功,在Grid模式下运行失败时,我们需要在Grid模式下进行调试,同时登录远程的node去查看运行的情况. Hub是随机将case分配到某台node上运行的,怎样知道当前的cas ...

  2. MVVM模式下弹出窗体

    原地址:http://www.cnblogs.com/yk250/p/5773425.html 在mvvm模式下弹出窗体,有使用接口模式传入参数new一个对象的,还有的是继承于一个window,然后在 ...

  3. 重写NSLog,Debug模式下打印日志和当前行数

    在pch文件中加入以下命令,NSLog在真机测试中就不会打印了 //重写NSLog,Debug模式下打印日志和当前行数 #if DEBUG #define NSLog(FORMAT, ...) fpr ...

  4. 剑指offer22:从上往下打印出二叉树的每个节点,同层节点从左至右打印。

    1 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 2 思路和方法 使用一个队列存放节点.先将根节点加入到队列中,然后循环遍历队列中的元素,遍历过程中,访问该节点的左右子节点,再将左 ...

  5. Lodop在搜狗兼容模式下打印无边框问题

    项目中原有的CAP方式打印由于只支持IE浏览器,由于目前大家使用IE的频率越来越少,迫切需要一个控件来替换项目原有的控件,比较了下选择Lodop,购买了一个最便宜的版本,使用后,有用户使用搜狗的兼容模 ...

  6. WPF 介绍一种在MVVM模式下弹出子窗体的方式

    主要是通过一个WindowManager管理类,在window后台代码中通过WindowManager注册需要弹出的窗体类型,在ViewModel通过WindowManager的Show方法,显示出来 ...

  7. WPF 在MVVM模式下弹出子窗体的方式

    主要是通过一个WindowManager管理类,在window后台代码中通过WindowManager注册需要弹出的窗体类型,在ViewModel通过WindowManager的Show方法,显示出来 ...

  8. 剑指Offer面试题:21.从上到下打印二叉树

    一.题目:从上到下打印二叉树 题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印.例如输入下图中的二叉树,则依次打印出8.6.10.5.7.9.11. 二叉树节点的定义如下,采用 ...

  9. 剑指Offer 从上往下打印二叉树(dfs)

    题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印.   思路: 用一个队列来辅助,先压入根节点,设置一个指针记录队列头位置,判断队头指针有没有孩子,有压入左右孩子,,,操作完一次,队头出 ...

随机推荐

  1. opencv之读取pts文件

    #include <iostream> #include <fstream> #include <opencv2/opencv.hpp> using namespa ...

  2. springboot项目中文件的下载(解决中文乱码问题)

    最近使用springboot项目,一直以来文件都以英文格式存储,这次使用的是xls文件下载,文件名为中文的,特此记录下中文文件名的下载以及springboot中下载路径报错问题. 正文 在使用spri ...

  3. 抽取JDBCTemplate

    抽取JDBCTemplate 为了解决DAO实现类中代码的重复问题,另外使得代码更通用,所以抽取一个公共的模板,使其更具有通用性. DAO实现类的代码 public class StudentDAOI ...

  4. [NOI2018]归程(可持久化并查集,Kruskal重构树)

    解法一: 1.首先想到离线做法:将边和询问从大到小排序,并查集维护连通块以及每个连通块中所有点到1号点的最短距离.$O(n\log n)$ 配合暴力等可以拿到75分. 2.很容易想到在线做法,使用可持 ...

  5. 修改panabit web管理介面端口

    panabit使用mini_httpd为web发布平台,版本为1.19.使用https协议发布,端口443,运行命令为/usr/panabit/bin/ipe_httpd. panabit启动时使用/ ...

  6. eclipse 的安装和汉化

    第一步:直接百度搜索eclipse,第一个就是官方网站 第二步:点击DOWNLOAD 64BIT进入下载页面 第三步:点击DOWNLOAD进行下载 If the download doesn't st ...

  7. ACM-Team Tic Tac Toe

    我的代码: #include <bits/stdc++.h> using namespace std; int main() { char a[3][3]; int i,j=0; for( ...

  8. [搬运] [贪心]NOIP2011 观光公交

    推荐这篇题解:http://www.cnblogs.com/Blacko/archive/2013/10/18/3376597.html 只不过这篇题解有一些细节没有说清,但建议自己思考- Codes ...

  9. TCP 3-Way Handshake (SYN,SYN-ACK,ACK)

    http://www.inetdaemon.com/tutorials/internet/tcp/3-way_handshake.shtml

  10. 汇编_指令_XCHG

    交换指令XCHG是两个寄存器,寄存器和内存变量之间内容的交换指令,两个操作数的数据类型要相同,可以是一个字节,也可以是一个字,也可以是双字 .其指令格式如下: XCHG Reg/Mem, Mem/Re ...