zoukankan      html  css  js  c++  java
  • selenium Grid使用

    1.1 Selenium Grid简介

    Selenium Grid组件专门用于远程分布式测试或并发测试,通过并发执行测试用例的方式可以提高测试用例的执行速度和效率,解决界面自动化测试执行速度过慢的问题。

    Selenium Grid使用Hub和Node模式,一天计算机作为Hub(管理中心)管理其他多个Node(节点)计算机,Hub负责将测试用例分发给多个Node机执行,并收集多台Node机执行结果的报告,汇总后提交一份总的测试报告,如图:

    Hub:

    l  在分布式测试模式中,只能存在一个Hub节点;

    l  负责管理测试脚本,并负责发送节本给其他Node节点;

    l  所有的Node节点计算机必须先在作为Hub的计算机中进行注册,注册成功后在和Hub计算机通信,Node节点计算机会告知Hub的信息,如:浏览器相关信息、操作系统

    l  Hub计算机可以给自己分配执行测试用例的任务

    l  Hub计算机分发的测试用例任务会在各个Node节点执行

    Node:

    l  在分布式测试模式中,可以有至少一个Node节点

    l  Node节点会打开本地的浏览器完成测试任务并返回测试结果给Hub

    l  Node节点的操作系统和浏览器版本无需和hub保持一致

    l  在Node节点上可以同时打开多个浏览器并执行测试任务

    1.2 分布式环境搭建

    Selenium Grid是基于java开发的jar包,必须要有jdk环境才能运行

    去官网(https://www.seleniumhq.org/download/)下载Selenium Standalone Server

    1.3 Hub启动参数说明

    参数名称

    参数含义

    -role hub

    启动hub服务,等待node注册

    -hubConfig [jsonfile]

    设置一个符合grid规则的json格式的hub配置文件,详细配置见:

    https://github.com/SeleniumHQ/selenium/blob/master/java/server/src/org/openqa/grid/common/defaults/DefaultHub.json

    -port

    指定hub端口

    -host

    指定bub机的ip或者host值,一般不需要设置

    -newSessionWaitTimeout

    执行一个新的session等待执行的间隔时间,即一个代理节点上前后两个测试间的时间间隔,单位毫秒,默认为-1,即没有超时

    -browserTimeout

    浏览器无响应的超时时间

    1.4 Node启动参数说明

    参数名称

    参数含义

    -role [node|wd|rc]

    为node时,表示注册的RC可以支持所有版本的selenium

    为wb时,不支持selenium1,也可以写成webdriver

    为rc时,仅支持selenium1

    -hub hub_url

    注册到hub,hub_url表示hub的访问地址,默认值为:http://hubip:4444/grid/register

    -port

    节点计算机提供远程连接的端口号,也是hub的监听端口

    -timeout

    Node连接hub的超时时间

    -maxSession

    在一个node节点中,允许最多打开多少个浏览窗口

    -browser

    设定node计算机允许使用的浏览器信息,如:

    browserName=firefox,version=60.0,firefox_binary=d:/firefox60/firefox,maxInstances=3,platform=WINDOWS

    maxInstances:最多允许同事启动的浏览器窗口数

    -browserTimeout

    浏览器无响应的超时时间

    -registerCycle

    Node间隔多少毫秒去连接hub,以便hub重启时,不需要重启node

    -nodeTimeout

    客户端超时时间

    -nodeConfig [jsonfile]

    符合grid规则的json格式的node配置文件,详见:

    https://github.com/SeleniumHQ/selenium/blob/master/java/server/src/org/openqa/grid/common/defaults/DefaultNodeWebDriver.json

    1.5 远程调用Firefox

    1.5.1 条件准备

    准备两台计算机A和B,A做Hub节点,B做Node

    两台计算机都要准备selenium Grid。

    1.5.2 操作步骤

    1、 在A机cmd窗口,进入selenium-server-standalone-3.141.59.jar包安装目录,执行如下语句:

    java -jar selenium-server-standalone-3.141.59.jar -role hub

    执行结果如下:

    2、 在A机浏览器输入:http://localhost:4444/grid/console,出现如下界面则表示hub启动成功

    3、 在B机cmd窗口输入如下命令启动Node:

    java -Dwebdriver.gecko.driver=D:\geckodriver.exe -jar selenium-server-standalone-3.141.59.jar -role webdriver -hub http://192.168.1.2:4444/grid/register -port 6666 -maxSession 5 -browser browserName="firefox",maxInstances=5

    192.168.1.2:4444为A机HubIP及端口

    1.6 远程调用Chrome

    1.6.1 条件准备

    准备两台计算机A和B,A做Hub节点,B做Node

    两台计算机都要准备selenium Grid。

    1.6.2 操作步骤

    1、 在A机cmd窗口,进入selenium-server-standalone-3.141.59.jar包安装目录,执行如下语句:

    java -jar selenium-server-standalone-3.141.59.jar -role hub

    执行结果如下:

    2、 在A机浏览器输入:http://localhost:4444/grid/console,出现如下界面则表示hub启动成功

    3、 在B机cmd窗口输入如下命令启动Node:

    java -Dwebdriver.gecko.driver=D:\geckodriver.exe -jar selenium-server-standalone-3.141.59.jar -role webdriver -hub http://192.168.1.2:4444/grid/register -port 6666 -maxSession 5 -browser browserName="firefox",maxInstances=5

    192.168.1.2:4444为A机HubIP及端口

    1.7 远程调用IE

    1.7.1 条件准备

    准备两台计算机A和B,A做Hub节点,B做Node

    两台计算机都要准备selenium Grid。

    1.7.2 操作步骤

    1、 在A机cmd窗口,进入selenium-server-standalone-3.141.59.jar包安装目录,执行如下语句:

    java -jar selenium-server-standalone-3.141.59.jar -role hub

    执行结果如下:

    2、 在A机浏览器输入:http://localhost:4444/grid/console,出现如下界面则表示hub启动成功

    3、 在B机cmd窗口输入如下命令启动Node:

    java -Dwebdriver.gecko.driver=D:\geckodriver.exe -jar selenium-server-standalone-3.141.59.jar -role webdriver -hub http://192.168.1.2:4444/grid/register -port 6666 -maxSession 5 -browser browserName="firefox",maxInstances=5

    192.168.1.2:4444为A机HubIP及端口

  • 相关阅读:
    redis 学习(一)
    spring 学习总结(一)
    Struts2 学习(三)
    Python3 高级特性
    Python3 模块
    Python3 函数式编程
    Python3 函数
    Python3 列表
    Python3 字符编码
    Java Servlet 回顾
  • 原文地址:https://www.cnblogs.com/ianduin/p/12684461.html
Copyright © 2011-2022 走看看