码迷,mamicode.com
首页 > 编程语言 > 详细

selenium之多线程启动grid分布式测试框架封装(三)

时间:2015-02-13 16:12:16      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:

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

  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();
	}
	
	
}

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

 

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

 

selenium之多线程启动grid分布式测试框架封装(三)

标签:

原文地址:http://www.cnblogs.com/lingfengblogs/p/4290325.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!