selenium grid搭建

2019-07-24 11:10:15 浏览数 (1)

1、selenium grid简介

selenium grid可以同时在不同机器上测试不同浏览器,包含一个hub和至少一个node。node会发送配置信息到hub,hub记录并跟踪每一个node的配置信息,同时hub会接受到即将被执行的测试用例及其相关信息,并通过这些信息自动选择可用的且符合浏览器与平台搭配要求的node,node被选中后,测试用例所调用的selenium命令就会被发送到hub,hub再将这些命令发送到指定给该测试用例的node,之后由node执行测试。

2、selenium grid应用

测试多浏览器的兼容性,减少测试套件运行时间

3、selenium grid部署

这里使用selenium-server-standalone-2.48.2.jar,hub、node都需要启动selenium-server-standalone-2.48.2.jar文件启动

1)hud配置

java -jar selenium-server-standalone-2.48.2.jar -role hub -port 4446 ,默认端口为4444,如下启动成功!

输入http://xxx.xxx.xxx.xxx:4446/grid/console,如图显示

单击view config可以查看selenium grid的配置信息,默认情况单个hub支持的5个会话

也可以通过配置json文件启动

java -jar selenium-server-standalone-2.48.2.jar -role hub xxx.json

2)node配置

目前只配置一个node与hub不在同一机子

通过如下命令可启动默认设置的node,node会将本机操作系统所支持的浏览器信息全部注册到hub上,如下图

客户端cmd输入命令:java -jar selenium-server-standalone-2.48.0.jar -role node -host 27.154.242.214 -hub http://xxx.xxx.xxx.xxx:4446/grid/register

现注册一个node到hub,命令如下:

java -jar selenium-server-standalone-2.48.2.jar -role node -host 27.154.242.214 -hub http://xxx.xxx.xxx.xxx:4446/grid/register -browser browserName=firefox

seleniumProtocol=WebDriver,maxInstances=5,platform=WINDOWS

如上命令只是修改了客户端ip,如果端口被占用,也可以修改客户端端口,再node后加 -port xxx ,默认是5555

注册后服务端日志如图,成功注册了一个node,此时打开http://xxx.xxx.xxx.xxx:4446/grid/console,也会显示注册的node信息,这里就不附图了

注意:客户端必须能telnet进去服务端,服务端也要能telnet进去客户端

4、执行

  1. public static void main(String[] args) throws IOException {
  2. // TODO Auto-generated method stub
  3. DesiredCapabilities ff =DesiredCapabilities.firefox();
  4. ff.setBrowserName("firefox");
  5. ff.setPlatform("WINDOWS");
  6. WebDriver driver = new RemoteWebDriver(new URL(serverUrl),ff);
  7. driver.get("https://passport.csdn.net/account/login");
  8. System.out.println("开始");
  9. WebDriver augmentedDriver = new Augmenter().augment(driver);
  10. File screenshot = ((TakesScreenshot) augmentedDriver)
  11. .getScreenshotAs(OutputType.FILE);
  12. FileUtils.copyFile(screenshot, new File("11.png"));
  13. driver.quit();
  14. }

运行如上实例代码,服务端日志如图,用例分给node 27.154.242.214:5555去执行

客户端日志,就是具体执行selenium命令的日志信息。

0 人点赞