执行UI自动化测试脚本时,不仅可以在本地执行,也可以远程指定某计算机执行测试脚本,seleniumGrid为我们提供了这类服务,但还需要自己搭建环境。

一、本地计算机需要准备java环境和selenium-server-standalone-4.0.0-alpha-2.jar包,jar包主要开启本机的hub节点(理解成控制机)。红色部分是开启本机(控制机)节点,蓝色部分是开启远程node节点时需要连接控制机地址

控制机地址

λ java -jar selenium-server-standalone-4.0.0-alpha-2.jar -role hub
11:05:38.938 INFO [GridLauncherV3.parse] - Selenium server version: 4.0.0-a
lpha-2, revision: f148142cf8
11:05:39.233 INFO [GridLauncherV3.lambda$buildLaunchers$5] - Launching Sele
nium Grid hub on port 4444
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further d
etails.
11:05:41.352 INFO [Hub.start] - Selenium Grid hub is up and running
11:05:41.356 INFO [Hub.start] - Nodes should register to http://192.168.207
.1:4444/grid/register/
11:05:41.358 INFO [Hub.start] - Clients should connect to http://192.168.20
7.1:4444/wd/hub

二、远程机(我用的ubuntu系统)需要准备java环境和selenium-server-standalone-4.0.0-alpha-2.jar包,以及浏览器驱动(我用的firefox的驱动)。记住浏览器驱动需要添加到系统环境变量中:export PATH="$PATH:/usr/local/bin"。在远程机启动node节点:java -jar selenium-server-standalone-4.0.0-alpha-2.jar -role node -port 32100 -hub http://192.168.207.1:4444/grid/register/(开启远程节点并连接控制机),连接成功后,在控制机的dos窗口可以看到绿色部分,表示远程机与控制机连接成功。

λ java -jar selenium-server-standalone-4.0.0-alpha-2.jar -role hub
11:05:38.938 INFO [GridLauncherV3.parse] - Selenium server version: 4.0.0-a
lpha-2, revision: f148142cf8
11:05:39.233 INFO [GridLauncherV3.lambda$buildLaunchers$5] - Launching Sele
nium Grid hub on port 4444
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further d
etails.
11:05:41.352 INFO [Hub.start] - Selenium Grid hub is up and running
11:05:41.356 INFO [Hub.start] - Nodes should register to http://192.168.207
.1:4444/grid/register/
11:05:41.358 INFO [Hub.start] - Clients should connect to http://192.168.20
7.1:4444/wd/hub
11:19:02.829 INFO [DefaultGridRegistry.add] - Registered a node http://192.
168.52.137:32100

三、python脚本。主要用到selenium.webdriver.remote.webdriver的WebDriver类完成远程执行脚本的任务。第一个参数是远程计算机的ip与连接端口,第二个参数是执行脚本的浏览器名称。

driver=webdriver.WebDriver(command_executor='http://0.0.0.0:0/wd/hub',desired_capabilities={ "browserName": "firefox"})             

#friefoxdriverexport PATH="$PATH:/usr/local/bin"

seleniumGrid分布式远程执行测试脚本的更多相关文章

  1. JAVA远程执行Shell脚本类

    1.java远程执行shell脚本类 package com.test.common.utility; import java.io.IOException; import java.io.Input ...

  2. Java SSH远程执行Shell脚本实现(转)

    前言 此程序需要ganymed-ssh2-build210.jar包(下载地址:http://www.ganymed.ethz.ch/ssh2/) 为了调试方便,可以将\ganymed-ssh2-bu ...

  3. Selenium执行测试脚本稳定性的一些经验分享交流

    Selenium执行测试脚本稳定性的一些经验分享交流 公司的自动化WEB测试框架IATA已上线运行了一段时间,期间发现一些脚本稳定性的问题,与大家分享一下. CASE执行游览器:ie firefox ...

  4. Java实践 — SSH远程执行Shell脚本(转)

    原文地址:http://www.open-open.com/lib/view/open1384351384024.html 1. SSH简介         SSH是Secure Shell的缩写,一 ...

  5. Java实践 — SSH远程执行Shell脚本

    1. SSH简介         SSH是Secure Shell的缩写,一种建立在应用层和传输层基础上的安全协议.SSH在连接和传送过程中会加密所有数据,可以用来在不同系统或者服务器之间进行安全连接 ...

  6. 远程执行本地脚本_linux

    一.远程执行脚本 1.免机器指纹确认(无需填写yes/no) ssh -o StrictHostKeyChecking=no root@192.168.108.78 2.远程执行本地脚本 ssh -o ...

  7. unittest 执行测试脚本输出测试报告

    import unittestimport HTMLTestRunnertest as HTMLTestRunner#获取路径path = './'#创建测试套件,读取测试脚本suite = unit ...

  8. mmdetection 批量执行测试脚本

    在终端执行该脚本,传入所有的测试路径,每一个model的结果文件夹里面有一个best文件夹存放着其训练时最高mAP对应的权重,名字为best.pth dir=$(ls -l $1 |awk '/^d/ ...

  9. [linux] ssh远程执行本地脚本

    1.ssh密钥登录 略 2.免确认机器指纹,ssh -o StrictHostKeyChecking=no [root@XM-v125 ~]# ssh wykai@192.168.0.110 The ...

随机推荐

  1. 零元学Expression Blend 4 - Chapter 28 ListBox的基本运用与更改预设样式

    原文:零元学Expression Blend 4 - Chapter 28 ListBox的基本运用与更改预设样式 本章将先教大家认识ListBox的基本运用与更改预设样式 本章将先教大家认识List ...

  2. Android零基础入门第88节:Fragment显示和隐藏、绑定和解绑

    在上一期我们学习了FragmentManager和FragmentTransaction的作用,并用案例学习了Fragment的添加.移除和替换,本期一起来学习Fragment显示和隐藏.绑定和解绑. ...

  3. .NET重思(一)sealed和interface

    博主这几天正好闲着,砸砸基础,毕竟自学,基础不牢靠很致命,要踏实啊~~~ 1.sealed关键字修饰一个类,也可以修饰实现方法或者属性.当sealed用于修饰一个类时,这个类不可以被继承,因此,这个类 ...

  4. Delphi 的RTTI机制浅探3(超长,很不错)

    转自:http://blog.sina.com.cn/s/blog_53d1e9210100uke4.html 目录========================================== ...

  5. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发3-登录模块开发

    进行本文之前需要在数据库用户表里面增加一条用户数据,直接手动添加即可,未安全考虑密码一定要使用Md5加密后的,这里提供666666的Md5密文为(c831b04de153469d),本文完成登录模块的 ...

  6. linux 磁盘控件找到大文件

    df -lh Used:已经使用的空间 Avail:可以使用的空间 Mounted on:挂载的目录 然后找到大文件 du是linux下用看查看磁盘的命令 下面我们先一个目录的来查看空间占用情况 du ...

  7. 可以用变量指定大小的Bits对象实现

    c++的容器中有位对象bitset,但是个人认为最大的问题是定义是必须指定常数大小,比如 bitset<3> bit; 无法实现 int n = 3; bitset<n> bi ...

  8. ES 21 - Elasticsearch的高级检索语法 (包括term、prefix、wildcard、fuzzy、boost等)

    目录 1 term query - 索引词检索 1.1 term query - 不分词检索 1.2 terms query - in检索 2 prefix query - 前缀检索 3 wildca ...

  9. SpringBoot2.1.6 整合CXF 实现Webservice

    SpringBoot2.1.6 整合CXF 实现Webservice 前言 最近LZ产品需要对接公司内部通讯工具,采用的是Webservice接口.产品框架用的SpringBoot2.1.6,于是采用 ...

  10. CentOS7.5上FTP服务的安装与使用

    1.FTP简介 1.1FTP:File Transfer Protocol 文件传输协议 FTP是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式.它属于网络传输协议的应用层.文件传送(f ...