- 浏览: 311519 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
yan372397390:
请问这几行命令是在哪里输入的
Genymotion模拟器安装Genymotion-ARM-Translation变copy的解决办法 -
littlevine:
...
"WebDriverException: Cannot find firefox binary in PATH."的解决方法 -
jujis008:
楼主, 这selenium用的是jdk自带的log,所以在% ...
PhantomJSDriver怎么设置在console里不输出运行信息 -
qi_ling2005:
OnTheRoad_lee 写道 String[] phant ...
PhantomJSDriver怎么设置在console里不输出运行信息 -
OnTheRoad_lee:
String[] phantomArgs = new Str ...
PhantomJSDriver怎么设置在console里不输出运行信息
selenium webdriver学习(二十一)------------Selenium Grid深入学习
- 博客分类:
- Selenium-webdriver
应网友要求写一个用Selenium Grid控制多系统多浏览器并行执行test case的例子。
因为我这里有两台机子,我打算这样演示:
一台机子启动一个作为主点节的hub 和 一个作为次节点的hub(系统windows 浏览器为ie) ip为:192.168.40.24
另一台机子启动两个次节点hub,一个次节点浏览器为firefox,另一个浏览器为chrome (系统为windows),ip为:192.168.40.67
启动各节点hub
启动主节点hub命令:
java -jar selenium-server-standalone-2.24.1.jar -role hub
启动与主节点同一机子的次节点hub命令:
java -jar selenium-server-standalone-2.24.1.jar -role node -hub http://localhost:4444/grid/register -browser browserName="internet explorer"
启动另外一台机子的两个节点hub命令分别为:
- 启动firefox的
java -jar selenium-server-standalone-2.24.1.jar -Dwebdriver.firefox.bin="D:/Program Files/Mozilla Firefox/firefox.exe" -role webdriver -hub http://192.168.40.24:4444/grid/register -browser browserName=firefox
其中-Dwebdriver.firefox.bin="D:/Program Files/Mozilla Firefox/firefox.exe"这个是传我的firefox浏览器安装地址,不然找不到。
- 启动chrome的
java -jar selenium-server-standalone-2.24.1.jar -Dwebdriver.chrome.driver="D:/chromedriver.exe" -role webdriver -hub http://192.168.40.24:4444/grid/register -port 6666 -browser browserName=chrome
其中-Dwebdriver.chrome.driver="D:/chromedriver.exe",这个是传入我chromedriver.exe的放置地址。端口设为6666,防止和上面firefox的重复。
链接好后,可以在http://localhost:4444/grid/console可以查看到三个子节点的状态。启动详细方法可以参考前面的文章。
Selenium Grid只是提供多系统、多浏览器的执行环境,而不是说任务一个test case丢给它就能并行运行。并行的运行我这里就交给testng了。看下面代码和配制。
testcase 代码 和 testng.xml
testcase代码:
package driver; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Parameters; import org.testng.annotations.Test; public class GridParallelTests { private WebDriver dr; DesiredCapabilities test; String baseUrl; @Parameters({"browser","nodeUrl","webSite"}) @BeforeMethod public void setUp(String browser,String nodeUrl,String webSite){ baseUrl = webSite; if(browser.equals("ie")) test = DesiredCapabilities.internetExplorer(); else if(browser.equals("ff")) test = DesiredCapabilities.firefox(); else if(browser.equals("chrome")) test = DesiredCapabilities.chrome(); else System.out.println("browser参数有误,只能为ie、 ff、chrome"); String url = nodeUrl + "/wd/hub"; URL urlInstance = null; try { urlInstance = new URL(url); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println("实例化url出错,检查一下url格式是否正确,格式为:http://192.168.40.67:5555"); } dr = new RemoteWebDriver(urlInstance,test); dr.get(webSite); } @Test public void test(){ dr.get(baseUrl); dr.findElement(By.id("kw")).sendKeys("selenium"); dr.findElement(By.id("su")).click(); try { Thread.sleep(10000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("title:"+dr.getTitle()); } @AfterMethod public void quit(){ dr.close(); } }
testng.xml:
<!DOCTYPE suite SYSTEM "http://beust.com/testng/testng-1.0.dtd" > <suite name="Suite1" parallel="tests" thread-count="5"> <test name="test1"> <parameter name="browser" value="ff"/> <parameter name="nodeUrl" value="http://192.168.40.67:5555"/> <parameter name="webSite" value="http://www.baidu.com"/> <classes> <class name="driver.GridParallelTests"></class> </classes> </test> <test name="test2"> <parameter name="browser" value="chrome"/> <parameter name="nodeUrl" value="http://192.168.40.67:6666"/> <parameter name="webSite" value="http://www.baidu.com"/> <classes> <class name="driver.GridParallelTests"></class> </classes> </test> <test name="test3"> <parameter name="browser" value="ie"/> <parameter name="nodeUrl" value="http://192.168.40.24:5555"/> <parameter name="webSite" value="http://www.baidu.com"/> <classes> <class name="driver.GridParallelTests"></class> </classes> </test> </suite>
运行testng.xml就可以了。
如果你是用ant把上面的参数传进去也是可以的。我这里就直接简单地放在testng.xml了。
发表评论
-
selenium github doc
2015-07-21 16:26 1063selenium 官网被墙, 看不了doc, 可以去下面这个 ... -
selenium webdriver学习(二十二)------------XVFB实现selenium在linux上无界面运行安装篇
2015-03-12 12:25 13819selenium在linux上无界面 ... -
PhantomJSDriver怎么设置在console里不输出运行信息
2014-11-10 15:50 2354每次运行PhantomJSDriver都输出一堆的INFO、 ... -
selenium webdriver 常见问题
2012-07-10 18:31 0注我下面说到的webdriver就是指selenium web ... -
selenium和webdriver合并的原因
2012-07-04 10:48 3360selenium和webdriver合并的原因,传送门 -
selenium webdriver学习(二十)------------Selenium Grid
2012-06-27 18:37 5822Selenium Grid允许同时并行 ... -
selenium webdriver学习(十九)-------我们的构建文件CrazyFunBuild (译)
2012-06-14 10:50 2276原文:CrazyFunBuild ... -
selenium webdriver学习(十八)----------构建webdriver
2012-05-22 16:03 4349准备环境 对所有版 ... -
selenium webdriver学习(十七)----------把selenium项目同步到本地eclipse
2012-05-11 16:00 3976这里主要是想把selenium的整个项目同步到eclipse的 ... -
selenium webdriver学习(十六)----------用selenium webdriver实现selenium RC中的类似的方法
2012-05-11 15:35 4756最近想总结一下学习selenium webdriver的情况, ... -
selenium webdriver学习(十五)------------如何处理FirefoxProfile
2012-04-10 18:29 9047这一节主要涉及 selenium webdriver处理Fir ... -
selenium webdriver学习(十四)------------如何处理table
2012-04-07 09:15 7432以前在selenium RC 里面有一个getTable方法, ... -
selenium webdriver学习(十三)------------如何利用Actions类模拟鼠标和键盘的操作
2012-03-29 12:36 12029在selenium webdriver学习(十)------- ... -
selenium webdriver学习(十二)------------如何利用selenium-webdriver截图
2012-03-26 16:29 5865在自动化测试中常常会用到截图功能。最近用了一下selenium ... -
学习selenium-webdriver一些网站
2012-03-20 16:49 0http://www.aosabook.org/en/sele ... -
selenium webdriver学习(十一)------------如何等待页面元素加载完成
2012-03-14 18:25 15463web的自动化测试中,我们经常会遇到这样一种情况:当我们的程 ... -
selenium webdriver学习(十)------------如何把一个元素拖放到另一个元素里面
2012-03-13 13:09 5895Q群里有时候会有人问,selenium webdriver怎 ... -
selenium webdriver学习(九)------------如何操作cookies
2012-03-12 17:45 5196Web 测试中我们经常会接触到Cookies,一个Cookie ... -
selenium webdriver学习(八)------------如何操作select下拉框
2012-03-12 16:06 10184下面我们来看一下selenium webdriver是如何来处 ... -
selenium webdriver学习(七)------------如何处理alert、confirm、prompt对话框
2012-03-12 14:08 10179alert、confirm、prompt这样的js对话框在se ...
相关推荐
通过深入研究这个压缩包中的代码示例,学习者不仅可以理解Selenium WebDriver的工作原理,还能掌握如何在实际项目中应用这些知识,提升自动化测试的技能。同时,这也有助于理解和调试测试脚本,解决在自动化测试过程...
源代码也方便开发者学习Selenium的实现细节,提高自己的测试技能。 最后,`selenium-server-standalone-2.44.0.jar` 是Selenium Grid的独立服务器版本。Selenium Grid用于分布式测试,它可以同时在多个机器上运行...
3. **Selenium Server**:虽然不是所有情况下都需要,但Selenium Server(如Selenium Grid)可以用于分布式测试,允许多个浏览器实例在同一时间运行测试,提高测试效率。如果在大型项目中使用,可能会包含对应的jar...
精通Selenium WebDriver 3.0,第二版 这是Packt发行的的代码库。... 并学习如何使用Docker容器快速启动Selenium Grid。 在最后的几章中,您将通过一系列场景来演示如何扩展Selenium以使其与外部库和应用程序一起使用,
总结起来,"selenium-server-standalone-2.45.0" 和 "selenium-java-2.45.0(含srcs)" 提供了Selenium的核心组件,支持Java环境下的WebDriver自动化测试,同时包含了源码以便于深入学习和定制。它们是Web应用自动化...
Selenium WebDriver 3 Practical Guide will walk you through the various APIs of Selenium WebDriver, which are used in automation tests, followed by a discussion of the various WebDriver implementations...
"selenium-server-standalone-3.9.1.rar" 文件包含了Selenium Grid 的独立服务器版本,适用于3.9.1这个高版本。Selenium Grid 是Selenium工具集中的一个重要组成部分,它允许我们进行分布式自动化测试,提高测试效率...
总之,《Selenium WebDriver(Python)第三版》这本书是学习和掌握Selenium WebDriver与Python结合进行Web自动化测试的宝贵资源,它不仅讲解了基础操作,还涵盖了高级特性和实战经验,对提升测试工程师的技能大有裨益...
5. **Remote WebDriver**: 支持远程执行测试,通过 Selenium Grid 或云服务如 Sauce Labs 或 BrowserStack 进行分布式测试。这部分源码展示了如何管理和协调多个远程浏览器实例。 6. **Selenium Server**: 作为测试...
标题中的“selenium-server-standalone-2.44.0”、“selenium-java-2.44.0”和“java-client-2.2.0”分别指的是Selenium WebDriver的三个关键组件,它们在自动化Web浏览器测试中起着至关重要的作用。Selenium是一个...
《Mastering Selenium WebDrivers 3.0》是针对自动化测试工程师和Web开发人员的一本深入指南,特别是那些希望使用Selenium WebDriver进行Web应用程序自动化测试的专业人士。这本书详细介绍了如何利用Selenium 3.0...
标题中的“selenium-java-2.25.0.zip”和“selenium-server-standalone-2.25.0.jar”是Selenium自动化测试框架的两个关键组件,分别代表了Selenium的Java绑定库和独立服务器。Selenium是一个开源的Web应用程序自动化...
3. **docs**:文档目录,可能包含了API参考、用户指南等,帮助开发者学习如何使用Selenium。 4. **examples**:示例代码,展示了一些基本的测试用例,有助于快速上手。 5. **build.xml**:Ant构建文件,用于编译和...
此外,Selenium Grid,作为Selenium Server的一部分,负责调度和分配测试任务到各个远程节点,确保测试覆盖多种环境。 标签“jar”表明这两个文件都是Java Archive格式,这是Java平台的标准归档文件格式,用于打包...
2. **Selenium Server**: 提供了 WebDriver 支持,包括 Grid 功能,允许并行测试。 3. **Selenium Grid**: 用于分布式测试,可以在多台机器上并行运行测试,提高测试覆盖率和速度。 4. **WebDriver API**: 一种与...
Selenium Server Standalone 是 Selenium Grid 的基础,Selenium Grid 是一个分布式测试框架,用于在多台机器上并行执行测试,大大加快了测试速度。当你需要在不同的操作系统或浏览器配置上进行测试时,Selenium ...
Selenium Server (Grid) The Selenium Server is needed in order to run Remote Selenium WebDriver (Grid).
selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。 Selenium的核心Selenium Core基于JsUnit,完全由...
开始使用Java进行Selenium WebDriver测试[视频] 这是发行的的代码存储库。 它包含从头到尾完成视频课程所需的所有支持项目文件。 关于视频课程 本课程将使您了解Selenium WebDriver的功能。 您将通过实践测试步骤并...