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及端口

  • 相关阅读:
    Python 模块 itertools
    Python 字符串的encode与decode
    python 模块 hashlib(提供多个不同的加密算法)
    暴力尝试安卓gesture.key
    hdu 1300 Pearls(DP)
    hdu 1232 畅通工程(并查集)
    hdu 1856 More is better(并查集)
    hdu 1198 Farm Irrigation(并查集)
    hdu 3635 Dragon Balls(并查集)
    hdu 3038 How Many Answers Are Wrong(并查集)
  • 原文地址:https://www.cnblogs.com/ianduin/p/12684461.html
Copyright © 2011-2022 走看看