zoukankan      html  css  js  c++  java
  • selenium之多线程启动grid分布式测试框架封装(三)

    七、工具类,线程监控器类创建

      utils包中,创建java类:RemoteThreadStatusMonitor.java

    package com.lingfeng.utils;
    
    /**
     * 此监控器方法很重要,如果没有,那么将导致jvm退出,所有远程工作的线程全部抛出异常。
     * @author 凌风
     *
     */
    public class RemoteThreadStatusMonitor implements Runnable {
    
    	private String driverName;
    	private Thread thread;
    	private static int deadThreadCount = 0;//记录已结束的线程数量。
    	public static int getDeadThreadCount(){
    		return deadThreadCount;
    	}
    	
    	public RemoteThreadStatusMonitor (String driverName,Thread thread){
    		this.driverName=driverName;
    		this.thread = thread;
    	}
    	
    	@Override
    	public void run() {
    		//判断线程是否还存活
    		while(thread.isAlive()){}
    		
    		deadThreadCount++;
    		System.out.println(driverName+"运行结束");
    	
    	}	
    }
    

         其中包含打印的调试代码,可自行去掉

    八、测试代码,远程服务打开百度首页selenium代码

      staticPage包中创建java类:RemoteServerOpenHomepage

    package com.lingfeng.staticPage;
    
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    
    import com.lingfeng.utils.RemoteServerInit;
    
    
    public class RemoteServerOpenHomepage implements Runnable {
    	
    	private WebDriver driver;
    	//此方法用来存储启动的浏览器名字,用于以后的脚本用bug截图的名字设置等。
    	private String driverName;
    	
    	public RemoteServerOpenHomepage(WebDriver driver,String driverName){
    		this.driver = driver;
    		this.driverName=driverName;
    	}
    
    	/**
    	 * 覆盖run方法,将所有需要运行脚本的入口都可以写在此方法中,进行多线程的调用。
    	 */
    	@Override
    	public void run() {
    		int i = 1;
    		while(i<=3){
    		String url = RemoteServerInit.getHomepage();
    		driver.get(url);
    		driver.findElement(By.id("kw")).sendKeys("haha");
    		driver.findElement(By.id("su")).click();
    		System.out.println(driverName+"====="+i+"次启动");
    		i++;
    		}
    		driver.close();
    	}
    	
    	
    }
    

      这篇博文中的这两个类全都是创建多线程的类,就是第一篇文章中的监控线程以及运行线程 ,打印的调试代码可自行去掉。

    未完待续!!!马上奉上!!!

  • 相关阅读:
    Android玄铁剑之TextView之我要穿越
    Android倚天剑之Notification之城管三千
    自己动手写Web容器之TomJetty之一:服务内功经脉
    自己动手写Web容器之TomJetty之二:开启服务器
    Android玄铁剑之TextView之写点儿嘛都行
    Android君子剑之ScrollView之君子好逑
    Android倚天剑之Notification之江南style
    Android玄铁剑之TextView之图文并茂
    Android倚天剑之Notification之动感地带
    Android玄铁剑之TextView之跑跑马灯
  • 原文地址:https://www.cnblogs.com/lingfengblogs/p/4290325.html
Copyright © 2011-2022 走看看