Selenium Grid简介与案例

selenium grid 是一种执行测试用例时使用的包含不同平台(windowsLinuxAndroid)的框架,并且这些平台是由一个中心点控制,这个中心点称之为HUB,而那些不同的平台称之为NODE

Server A 注册hub

java -jar selenium-server.jar -role hub
其默认监听端口4444,默认IP localhost  如果要修改,只需要加-port 参数和-Hubhost
http://localhost:4444/grid/console  查看注册节点

Server B 注册节点

java -jar selenium-server.jar -role node -port 6666 -hub http://hub集线器的ip:4444/grid

具体案例:

打开cmd,进入到你的selenium-server.jar目录下
cd /d E:\20200719-WEB自动化实战\环境搭建
java -jar selenium-server-standalone-3.141.59.jar  -role hub

重新打开一个cmd窗口,执行
cd /d E:\20200719-WEB自动化实战\环境搭建
java -jar selenium-server-standalone-3.141.59.jar -role node -port 6666 -hub http://127.0.0.1:4444/grid

上图可见已注册成功,打开http://127.0.0.1:4444/grid可看到如下页面

http://localhost:4444/grid/console  查看注册节点

远程执行核心代码:

//只匹配linux下的firefox的版本为22的浏览器执行用例
DesiredCapabilities aDesiredcap = DesiredCapabilities("firefox", "22", Platform.LINUX);
WebDriver dr = new RemoteWebDriver(aDesiredcap);

具体案例如下:
// driver= new FirefoxDriver();
//driver = new RemoteWebDriver(new URL("http://169.254.109.24:4444/wd/hub"),DesiredCapabilities.chrome());

RemoteWebDriver 在实际工作中的应用,在实际执行用例时,并不是在你编写自动化测试脚本的机器上执行测试用例,都时远程的,例如:
server A    ie 11   win7\chrome\firefox
server B    ie 9   win10\chrome\firefox
远程执行的时候,需要把各个浏览器的driver 放到运行代码的机器的环境变量中

如果远程的机器比较少,也可以直接在远程的机器上启动selenium-server.jar,不必注册Hub,本机上通过RemoteWebDriver的方式执行,具体操作和代码如下:

package com.my.remotewebdriver;

import static org.junit.Assert.fail;

import java.net.URL;
import java.util.concurrent.TimeUnit;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

public class RemoteWebdriverDemo {
	
	private WebDriver driver;
	private String baseUrl;
	private boolean acceptNextAlert = true;
	private StringBuffer verificationErrors = new StringBuffer();

	@Before
	public void setUp() throws Exception {

		// driver= new FirefoxDriver();
		driver = new RemoteWebDriver(new URL("http://169.254.109.24:4444/wd/hub"), DesiredCapabilities.chrome());

	}

	@Test
	public void testWorktileDemo() throws Exception {
		driver.get("https://www.baidu.com");
		driver.manage().window().maximize();
		Thread.sleep(3000);
	}

	@After
	public void tearDown() throws Exception {
		driver.quit();
		String verificationErrorString = verificationErrors.toString();
		if (!"".equals(verificationErrorString)) {
			fail(verificationErrorString);
		}
	}

}

运行结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值