Selenium对于我们进行web自动化测试有很大的帮助,如果要进行大范围的测试覆盖,就不能仅仅在一两台机器上跑了;同样Selenium-Grid也给我们提供了这样的帮助,我们可以借助Selenium-Grid很容易的实现分布式测试环境的搭建。不同于其它一些通用的分布式程序【如:hudson】,Selenium-Grid是专门针对Selenium的自动化分布式测试解决方案。
其优点是:
- 快速搭建分布环境【通过简单的参数配置】
- 自动分配测试脚本【针对不同环境】
- 只需一份测试代码【目标测试机不需要有测试代码】
搭建Selenium2环境
在搭建Selenium-Grid之前,首先要搭建每台测试机上的Selenium环境【准确点说应该是代理节点的环境】。这里以Java为例:
- 安装Java【下载】
- 配置Java环境变量【这里】
- 下载ie、chrome的driver程序【如果要测试其它浏览器还需额外下载;FF驱动默认在webdriver中,无需下载】
- 把ie、chrome的driver程序放到系统环境变量中【例如:system32下】
- 安装最新版的浏览器【FF、chrome等】
- 下载Selenium Webdriver【下载standalone server】
- 代码测试
本地版:
- import org.openqa.selenium.*;
- import org.openqa.selenium.firefox.*;
- import org.openqa.selenium.chrome.*;
- import org.openqa.selenium.htmlunit.*;
- import org.openqa.selenium.ie.*;
- // WebDriver driver = new ChromeDriver();
- // WebDriver driver = new FirefoxDriver();
- // WebDriver driver = new HtmlUnitDriver();
- WebDriver driver = new InternetExplorerDriver();
- driver.get("http://www.dangdang.com");
- System.out.println(driver.getCurrentUrl());
- driver.quit();
远程版:
- import org.openqa.selenium.*;
- import org.openqa.selenium.remote.DesiredCapabilities;
- import org.openqa.selenium.remote.RemoteWebDriver;
- DesiredCapabilities ffDesiredcap = DesiredCapabilities.firefox();
- DesiredCapabilities chromeDesiredcap = DesiredCapabilities.chrome();
- DesiredCapabilities ieDesiredcap = DesiredCapabilities.internetExplorer();
- WebDriver wd = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), ieDesiredcap);
- wd.get("http://www.google.com");
- Thread.sleep(1200);
- System.out.println(wd.getCurrentUrl());
- wd.quit();
上述测试都成功了,就说明你的环境已经搭建成功,依次你可以在多个系统、平台上搭建Selenium2环境。
注:
如果使用IDE则把selenium-standalone-server的jar包引用到项目build path,如果直接从命令行编译和执行的话,则必须指定该jar包的路径,否则编译会失败。
- javac -classpath $HOME/path/to/selenium-server.jar Test.java
- java -classpath $HOME/path/to/selenium-server.jar Test
搭建Selenium-Grid环境
当所有测试机上的Selenium2环境搭建成功后,就可以开始启动Selenium-Grid2环境了。【Selenium-Grid的工作原理】
首先启动一个hub:
- java -jar selenium-server-standalone-x.xx.x.jar -role hub
启动hub的机器可以不是测试机,任意一台机器有Java环境的机器都可以。这个是整个Selenium-Grid的中枢节点,所有的远程测试都会由经它后再被转发出去,然后在对应的测试机上执行测试。
启动测试代理node:
- java -jar selenium-server-standalone-x.xx.x.jar -role node
测试代理必须在测试机上启动【即之前搭建了Selenium2环境的机器上】,并且其注册的地址必须是hub所在的机器的ip和端口。一台测试机上可以启动多个代理,前提是要保证不使用相同的端口即可。【当然不建议这样做,尽量避免不稳定因素】
查看Selenium-Grid状态
当hub和所有的代理节点都启动成功后,可以通过浏览器查看当前Selenium-Grid的状态,直接访问地址http://localhost:4444/grid/console。 可以看到页面显示了可以支持测试的代理节点的数量和类型,这里显示的数量和类型和你启动代理节点时所带的配置参数有关。当启动代理节点时其实就是一个注册过程;启动时所带的参数会被hub记住作为注册信息,所以页面中所看到的信息就是各代理节点注册时信息的汇总。
相关推荐
Selenium 也是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE、Mozilla Firefox、Google Chrome等。这个工具的主要功能包括:测试与浏览器的兼容性...
在Selenium节点中运行的测试自动化。 要查看蒙特媒体库的许可信息,请访问 配置步骤创建一个新文件夹(例如,命名为记录器) 将jar(grid-video-recorder.jar)下载到文件夹(recorder)中将selenium独立服务器.jar...
您将通过实践测试步骤并找到必要的Web元素,并用Java编写自动化代码并在系统上运行测试,来测试认证系统的实际用例。 您将学到什么 实施自动化测试最佳实践,以便您可以使用任何工具进行自动化测试 创建极其可靠和...
Sikuli允许您自动化看到的一切。 2)从Selenium网格节点下载文件 在Selenium测试中下载文件? 将它们带到您的机器上并检查内容。 现在很简单。 3)在Selenium网格节点上上传资源 您可能有一些文件上传测试。 将...
第2章 牛刀小试只selenium ide 第3章 selenium玩转页面元素 第4章 初始selenium webdriver 第5章 玩转selenium webdriver 第6章 selenium玩转android 第7章 selenium玩转IOS 第8章 selenium玩转Raspberry pi 第9章 ...
Selenium Java Framework是使用Java,Selenium和Zalenium编写CI自动运行测试的UI自动化测试的良好起点。 产品特点 多个域 可以将测试配置为针对不同的域运行。 例如: : 和 。 多种环境 与针对多个域的测试类似,...
Selenium自动化测试框架 最近有打算用python重写一下,感兴趣的朋友可以叉首先需要安装python,之后安装selenium lib pip install -U selenium 使用Selenium 3.x + Testng + Jenkins + Maven 使用页面对象模型 ...
测试自动化-http: 设计模式:具有可加载组件(POC)和AAA的页面对象模型在此框架中使用了以下工具: Java,Selenium,TestNG,Cucumber,确保REST,Gradle,Travis CI,魅力报告,Slack API,SeleniumGrid,...
产品特点一键安装通过下载二进制文件并仅运行一个命令,即可在几分钟内启动浏览器自动化: $ ./cm selenoid start --vnc --tmpfs 128而已! 现在,您可以使用Selenoid代替Selenium服务器。 在测试中指定以下Selenium...
Selenium Grid使自动化执行工作变得更加容易。 使用Selenium Grid,可以在多台计算机上并行运行多个测试,从而将执行时间从数天缩短至数小时。 但是,设置我们自己的Selenium Grid意味着我们必须跨多台虚拟机或物理...
这是一个测试自动化项目,旨在尝试演示我在为业务应用程序创建自动化框架时的技能。 该框架使用以下技术堆栈- SeleniumJava Selenium网格 测试NG Maven 范围报告 Log4J 被广泛称为POM的页面对象模型是用于此...
###开始使用Docker Compose docker-compose up -d ###扩大docker-compose scale chromenode = 3 ###记录docker日志selenium-hub ###停止并删除图像docker-compose停止docker-compose rm# ##停止所有容器docker stop...
Selenium主要包括三部分:SeleniumIDE、SeleniumWebDriver和SeleniumGrid:SeleniumIDE:Firefox的一个扩展,它可以进行录制回放,并可以把录制的操作以多种语言(例如java,python等)的形式导出成测试用例。...
使用Docker的Selenium Grid描述该项目有关如何使用Selenium Grid和Docker运行并行测试。 该项目执行基本的google搜索并验证页面标题。 依存关系: Selenium测试NG Log4J安装Docker安装什么是Docker? 一个开放源代码...
2: SELENIUM FRAMEWORK UTILITY CLASSES 3: BEST PRACTICES FOR BUILDING SELENIUM PAGE OBJECT CLASSES 4: DEFINING WEBDRIVER AND APPIUMDRIVER PAGE OBJECT ELEMENTS 5: BUILDING A JSON DATA PROVIDER 6: ...
Perform cross browser and distributed testing with Selenium Grid Use Actions API for performing various keyboard and mouse actions Who this book is for Selenium WebDriver 3 Practical Guide is for ...
Selenium是一个WEB自动化测试工具,它的特点是: 支持跨浏览器的自动化测试【ie、ff、chrome、safari、opera、phantonjs、htmlunit、android、iphone、ipad、winddows phone、BlackBerry】 支持跨操作系统的自动化...
赛琳在Java中启用测试自动化SeLion建立在TestNG和Selenium的基础上,提供了一组功能,可让您在短时间内使用WebDriver并开始运行。 它可以用于测试Web和移动应用程序。 您可以添加为Maven依赖项的客户端模块。 基于...
Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid: Selenium IDE:Firefox的一个...
Huuray 是使用 Selenium Web 驱动程序 (JAVA) 开发的 Web 应用程序自动化框架。 通过使用华友世纪,我们可以在线性或并行执行模式下运行开发的自动化测试 'diwng.xml' 和 diw-grid.xml' 是 TestNG 相关文件,通过...