哈~作为技术小牛,向来不写技术文章,现在发现还是不太行哈,找个文章老是往回找找不到,so开始写自己的blog吧,虽然没有创新,但集众家所长还是可以的吧。第一篇是要今天又要查Selenium Grid命令,原来那篇文章找半天,so决定吧它摘过来啦!
Selenium Grid允许同时并行地、在不同的环境上运行多个测试任务。
参考:
http://code.google.com/p/selenium/wiki/Grid2
原理:
Selenium Grid 架构如上图所示,所以需要一个Hub做主节点,多个作为子节点。
Sample:
Grid需要一台机子做为主节点,然后其它机子做为子节点连接到这个主节点上来。所以首先要启动主节点。
打开命令行,cd至selenium-server-standalone-*.jar包的目录下,然后用下面的命令启动主节点服务:
java -jar selenium-server-standalone-2.24.1.jar -role hub
默认启动默认端口为4444。如果要改这个端口,可以再上面的命令后面加上 -port XXXX。启动完后,你可以用浏览器打开http://localhost:4444/grid/console这个网址查看主节点的状态。
可加参数:
-hubConfig hubconfig.json ;json 格式的配置
http://code.google.com/p/selenium/source/browse/trunk/java/server/src/org/openqa/grid/common/defaults/DefaultHub.json
-host localhost ;主机地址
-port 4444 ;端口
-newSessionWaitTimeout -1 ;会话等待时间
-servlets []
-prioritizer null ;优先权
-capabilityMatcher org.openqa.grid.internal.utils.DefaultCapabilityMatcher
-nodePolling 5000 ;刷新子节点(毫秒)
-cleanUpCycle 5000
-timeout 300000
-browserTimeout 0
-maxSession 5
启动完主节点之后,要做的就是启动子节点。
其他机子做为子节点。同样打开命令行,cd至selenium-server-standalone-*.jar包的目录下,然后用下面的命令启动次节点服务:
java -jar selenium-server-standalone-2.24.1.jar -role node -hub http://localhost:4444/grid/register
可加参数:
-nodeConfig nodeconfig.json ;json 格式的配置
http://code.google.com/p/selenium/source/browse/trunk/java/server/src/org/openqa/grid/common/defaults/DefaultNode.json
-browser browserName=firefox,version=3.6,firefox_binary=/home/myhomedir/firefox36/firefox,maxInstances=3,platform=LINUX
-browser browserName=firefox,version=4,firefox_binary=/home/myhomedir/firefox4/firefox,maxInstances=4,platform=LINUX ;定义本机浏览器
-role node/webdriver
-host ip ;主机地址
-port 5555 ;端口
-hubHost ip ;Hub地址
-hubPort 4444 ;Hub端口
-proxy org.openqa.grid.selenium.proxy.DefaultRemoteProxy
-registerCycle 5000 ;刷新子节点(毫秒)
-register true
-maxSession 5
-Dwebdriver.chrome.driver="D:/chromedriver.exe" ;Chromedirver
-Dwebdriver.firefox.bin="D:/Program Files/Mozilla Firefox/firefox.exe" ;firfoxdirver
例:启动chrome(需要去下载chrome webdriver 驱动)
java -jar selenium-server-standalone-2.24.1.jar -Dwebdriver.chrome.driver="D:/chromedriver.exe" -role webdriver -hub http://localhost:4444/grid/register -port 6666 -browser browserName=chrome
启动firfox
java -jar selenium-server-standalone-2.24.1.jar -Dwebdriver.firefox.bin="D:/Program Files/Mozilla Firefox/firefox.exe" -role webdriver -hub http://localhost:4444/grid/register -browser browserName=firefox
上面已经把grid弄成功了,现在我们用Grid来运行一个很简单的例子。代码如下:
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
public class GridTest
{
/**
* @throws MalformedURLException
*/
public static void main(String[] args) throws MalformedURLException
{
String browser = "firefox";
DesiredCapabilities test = DesiredCapabilities.firefox();
if(browser.equals("ie"))
test = DesiredCapabilities.internetExplorer();
else if(browser.equals("firefox"))
test = DesiredCapabilities.firefox();
else if(browser.equals("chrome"))
test = DesiredCapabilities.chrome();
WebDriver dr = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"),test);
dr.get("http://www.google.com");
dr.findElement(By.id("gs_htif0")).sendKeys("selenium");
dr.findElement(By.id("gbqfba")).click();
dr.close();
}
}
在主节点机子上运行上面的代码,你可以在次节点机子上看到firefox浏览器被启动,然后打开了google这个网址。
分享到:
相关推荐
标题"Selenium-server-standalone-2.43.1"涉及的是Selenium自动化测试框架的一个独立服务器版本,具体是2.43.1这个发行版。Selenium是一个强大的开源工具,主要用于网页应用的自动化测试,它支持多种浏览器和编程...
总结,Selenium Server Standalone 3.7 是一个强大且灵活的Web自动化测试工具,通过提供WebDriver支持和Grid功能,可以高效地进行跨浏览器、分布式测试。了解并熟练使用Selenium Server Standalone,将极大地提升Web...
Selenium 是一个强大的开源自动化测试框架,主要用于Web应用程序的测试。它支持多种浏览器和编程语言,包括Java。在"**selenium-Java-2.53.1**"这个版本中,我们将深入探讨Selenium与Java结合使用时的核心概念、功能...
1. **Selenium WebDriver**: 这是Selenium的核心部分,提供了一个API来控制浏览器,并模拟用户的行为。WebDriver支持多种浏览器,如Chrome、Firefox、IE等,2.24.1版本可能包含了针对这些浏览器的驱动程序。 2. **...
1. **Selenium WebDriver**:在Selenium3中,WebDriver成为核心接口,它提供了一种更直观、更简洁的方式来控制浏览器。WebDriver支持多种浏览器,包括Chrome、Firefox、IE、Edge等,通过特定的Driver实现与浏览器的...
1. **Selenium Server**: 这是一个独立的服务器,用于运行 Selenium Grid,它允许多个浏览器实例并行执行测试。 2. **WebDriver Bindings**: 这些是针对不同浏览器(如 ChromeDriver、GeckoDriver for Firefox、...
Selenium 是一个强大的开源自动化测试框架,主要用于网页应用的测试。它支持多种编程语言,包括 Java,这使得Java开发者能够方便地编写自动化测试脚本。"selenium-java-3.4.0" 是 Selenium 为 Java 提供的一个特定...
【标题】"selenium-2.0-dev-9340.tar.gz" 是一个压缩包文件,其中包含的是Selenium库的一个开发版本,版本号为2.0的第9340次迭代。Selenium是一个广泛使用的自动化测试工具,尤其在Web应用的测试领域中非常流行。它...
【Selenium】是一个开源的自动化测试工具,广泛用于Web应用程序的测试。它的主要功能是模拟真实用户在浏览器上的操作,如点击、填写表单、导航等。Selenium支持多种编程语言,包括Java,使得测试脚本可以以Java编写...
1. **Selenium Server**:这是Selenium Grid的基础,用于分布式测试执行,可以在多台机器上并行运行测试,提高测试效率。 2. **WebDriver API**:这是一个接口,让开发者可以直接控制浏览器,模拟用户操作,如点击...
:warning: :warning: 已淘汰 ...npm install testarmada-magellan-seleniumgrid-executor --save 在您的magellan.json添加以下代码块(如果没有magellan.json请在您的文件夹根目录下创建一个) "executors" : [ "tes
#### 四、编写第一个Selenium测试脚本 接下来,我们将编写一个简单的测试脚本来验证我们的设置是否正确。这个脚本将打开Google首页,并验证其标题。 1. **创建一个新的Java类**: - 在`HelloSelenium`项目中,右键...
1. **远程WebDriver服务器**:Selenium Server可以作为WebDriver协议的服务器端,接收客户端(如Java、Python等编程语言)发送的命令,然后将这些命令转发给目标浏览器执行。这样,你可以通过编程在任何支持...
- **下载与解压**:首先,从官方仓库或第三方源获取selenium-grid-1.0.8的压缩包,然后将其解压到一个可访问的目录。 - **启动Hub**:在命令行中,导航到解压后的目录,运行Java jar命令启动Hub。例如:`java -jar ...
1. Selenium WebDriver:这是一个API,允许与各种浏览器进行通信,控制它们的行为并进行自动化测试。WebDriver提供了更接近用户实际操作的测试体验,因为它直接与浏览器的内核交互。在Java中,我们可以使用`selenium...
5. Grid:Selenium Grid 是Selenium 的一个重要组件,允许在分布式环境中运行测试,可以同时在多台机器上并行执行测试,大大提高了测试效率。 6. Support for AJAX 和 JavaScript:由于现代Web应用大量使用AJAX和...
2. **name locator**:根据元素的name属性找到第一个匹配的元素。 3. **identifier locator**:首先尝试通过ID定位,如果找不到,再尝试通过name属性定位。 为了更精确地定位元素,通常会结合XPath Checker和...
selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。selenium 是...
`lib` 文件夹通常包含依赖的第三方库,它们支持 Selenium 的功能实现。 Selenium 主要由以下几个部分组成: 1. WebDriver:这是一个 API,允许通过编程方式控制浏览器,支持多种浏览器,包括 Chrome、Firefox、...