seleniumGrid分布式远程执行测试脚本
执行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分布式远程执行测试脚本的更多相关文章
- JAVA远程执行Shell脚本类
1.java远程执行shell脚本类 package com.test.common.utility; import java.io.IOException; import java.io.Input ...
- Java SSH远程执行Shell脚本实现(转)
前言 此程序需要ganymed-ssh2-build210.jar包(下载地址:http://www.ganymed.ethz.ch/ssh2/) 为了调试方便,可以将\ganymed-ssh2-bu ...
- Selenium执行测试脚本稳定性的一些经验分享交流
Selenium执行测试脚本稳定性的一些经验分享交流 公司的自动化WEB测试框架IATA已上线运行了一段时间,期间发现一些脚本稳定性的问题,与大家分享一下. CASE执行游览器:ie firefox ...
- Java实践 — SSH远程执行Shell脚本(转)
原文地址:http://www.open-open.com/lib/view/open1384351384024.html 1. SSH简介 SSH是Secure Shell的缩写,一 ...
- Java实践 — SSH远程执行Shell脚本
1. SSH简介 SSH是Secure Shell的缩写,一种建立在应用层和传输层基础上的安全协议.SSH在连接和传送过程中会加密所有数据,可以用来在不同系统或者服务器之间进行安全连接 ...
- 远程执行本地脚本_linux
一.远程执行脚本 1.免机器指纹确认(无需填写yes/no) ssh -o StrictHostKeyChecking=no root@192.168.108.78 2.远程执行本地脚本 ssh -o ...
- unittest 执行测试脚本输出测试报告
import unittestimport HTMLTestRunnertest as HTMLTestRunner#获取路径path = './'#创建测试套件,读取测试脚本suite = unit ...
- mmdetection 批量执行测试脚本
在终端执行该脚本,传入所有的测试路径,每一个model的结果文件夹里面有一个best文件夹存放着其训练时最高mAP对应的权重,名字为best.pth dir=$(ls -l $1 |awk '/^d/ ...
- [linux] ssh远程执行本地脚本
1.ssh密钥登录 略 2.免确认机器指纹,ssh -o StrictHostKeyChecking=no [root@XM-v125 ~]# ssh wykai@192.168.0.110 The ...
随机推荐
- Delphi结束进程模块
function KillTask(ExeFileName: string): integer; const PROCESS_TERMINATE = $0001; var ContinueLoop: ...
- delphi 在多线程中使用 CreateOleObject 导致失败(一定要使用CoInitialize和CoUninitialize,举例查询WMI)
原帖地址 http://bbs.csdn.net/topics/390481350 解决办法 procedure DisplayVideoInfo; var wmi, objs, obj : OleV ...
- 类成员函数指针的特殊之处(成员函数指针不是指针,内含一个结构体,需要存储更多的信息才能知道自己是否virtual函数)
下面讨论的都是类的非静态成员函数. 类成员函数指针的声明及调用: 1 2 3 4 5 6 7 //pr是指向Base类里的非静态成员函数的指针 //其行参为(int, int),返回值为void vo ...
- Nginx反向代理负载均衡的容器化部署
首先,在home目录创建microservices目录,开启第一篇章. cd ~ && mkdir microservices && cd microservices ...
- 对SpringMVC架构进行工程拆分遇到的问题总结
经过一个月的开发,一个单一的SpringMVC教育类创业项目正式上线,随着时间的推移,业务流量逐渐增大,最近对这个单一的工程从零进行SOA分布式改造,改造包括dubbo改造,集成化部署.高可用集群,负 ...
- Python自学day-3
一.集合 集合元素不会重复,而且是无序的. 定义集合: set_1 = {1,2,3,4,5} set求交集(intersection): set1 = set([1,2, ...
- 【面试】MySQL 中NULL和空值的区别?
做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 01 小木的故事 作为后台开发,在日常工作中如果要接触Mysql数据库,那么不可避免会遇到Mysql中的NULL和空值.那 ...
- JSP数据交互(二)
1.application内置对象 application实现用户之间的数据共享 void setAttribute(String key,Object value) 以key/value的形式保存对 ...
- 【PostgreSQL】 前缀模糊查询级优化
前匹配模糊 使用B-Tree来加速优化前匹配模糊查询 构造数据 新建一张商品表,插入一千万条数据. create table goods(id int, name varchar); insert i ...
- C#学习笔记:ListBox控件的用法
样式如下: 实现的代码一: using System;using System.Collections.Generic;using System.ComponentModel;using System ...