如何搭建Selenium-Grid2环境(Java)

19 篇文章 1 订阅
19 篇文章 0 订阅
Selenium对于我们进行web自动化测试有很大的帮助,如果要进行大范围的测试覆盖,就不能仅仅在一两台机器上跑了;同样Selenium-Grid也给我们提供了这样的帮助,我们可以借助Selenium-Grid很容易的实现分布式测试环境的搭建。不同于其它一些通用的分布式程序【如:hudson】,Selenium-Grid是专门针对Selenium的自动化分布式测试解决方案。
优点是:
  • 快速搭建分布环境【通过简单的参数配置】
  • 自动分配测试脚本【针对不同环境】
  • 只需一份测试代码【目标测试机不需要有测试代码】
搭建Selenium2环境
在搭建Selenium-Grid之前,首先要搭建每台测试机上的Selenium环境【准确点说应该是代理节点的环境】。这里以Java为例:
  1. 安装Java【下载
  2. 配置Java环境变量【这里
  3. 下载ie、chrome的driver程序【如果要测试其它浏览器还需额外下载;FF驱动默认在webdriver中,无需下载】
  4. 把ie、chrome的driver程序放到系统环境变量中【例如:system32下】
  5. 安装最新版的浏览器【FF、chrome等】
  6. 下载Selenium Webdriver【下载standalone server】
  7. 代码测试

本地版:

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记住作为注册信息,所以页面中所看到的信息就是各代理节点注册时信息的汇总。


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
您可以使用 Selenium Grid 进行远程连接和分布式测试。Selenium GridSelenium 的组件,它允许您在不的机器上同时运行测试用例,并将测试任务分配给不同的浏览器实例。 要使用 Selenium Grid,您需要按照以下步骤进行操作: 1. 安装 Java Development Kit(JDK):Selenium Grid 是使用 Java 编写的,因此您需要安装 JDK。 2. 下载 Selenium Server:您可以从 Selenium 官方网站下载最新版本的 Selenium Server JAR 文件。 3. 启动 Selenium Hub:Selenium Hub 是 Grid 的中心节点,它负责接收来自客户端的测试请求并将其分配给可用的节点。您可以使用以下命令启动 Selenium Hub: ``` java -jar selenium-server-standalone.jar -role hub ``` 4. 启动 Selenium Node:Selenium Node 是 Grid 的节点,它负责实际运行测试用例。您可以在不同的机器上启动多个 Selenium Node,以便并行运行测试。您可以使用以下命令启动 Selenium Node: ``` java -Dwebdriver.chrome.driver=chromedriver -jar selenium-server-standalone.jar -role node -hub http://localhost:4444/grid/register ``` 其中,`-Dwebdriver.chrome.driver` 指定 Chrome 驱动程序的路径,`-hub` 指定 Selenium Hub 的 URL。 5. 运行测试用例:现在您可以在客户端中编写测试用例,并将其配置为通过 Selenium Grid 运行。在测试用例中,您需要指定远程节点的 URL,以便将测试任务分配给正确的节点。 以下是一个使用 Python 和 Selenium 的示例代码片段,用于远程连接到 Selenium Grid 并运行测试: ```python from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities # 配置远程节点的 URL remote_url = "http://<node_ip>:<node_port>/wd/hub" # 配置所需的浏览器 capabilities = DesiredCapabilities.CHROME.copy() capabilities['platform'] = 'WINDOWS' # 连接到远程节点 driver = webdriver.Remote(remote_url, desired_capabilities=capabilities) # 执行测试操作 driver.get("https://www.example.com") ``` 请将 `<node_ip>` 替换为远程节点的 IP 地址,`<node_port>` 替换为远程节点的端口号。 这样,您就可以使用 Selenium Grid 进行远程连接浏览器并进行分布式测试了。希望对您有帮助!如有任何问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上帝De助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值