前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Python+Selenium笔记(十一):配置selenium Grid

Python+Selenium笔记(十一):配置selenium Grid

作者头像
free赖权华
发布于 2018-04-27 10:13:35
发布于 2018-04-27 10:13:35
2.4K00
代码可运行
举报
文章被收录于专栏:赖权华的笔记赖权华的笔记
运行总次数:0
代码可运行

(一) 前言

Selenium Grid可以将测试分布在若干个物理或虚拟机器上,从而实现分布方式或并行方式执行测试。

这个链接是官方的相关说明。

https://github.com/SeleniumHQ/selenium/wiki/Grid2

(二) Selenium Grid

大概就是这个意思(一个中心节点(HUB),N个子节点(NODE,操作系统+浏览器))

(三) 环境配置

1. 前提:已经配置相应的 JDK环境(LINUX自带JDK环境(我装的LINUX自带的是1.8),WINDOWS要自己配置JDK环境(我装的是1.9))

2. https://docs.seleniumhq.org/download/ 下载 Selenium Standalone Server

3. 启动Selenium Grid server(hub)

Selenium Grid server(hub,作为中心节点的电脑),切换到Selenium Standalone所在的目录(直接在Selenium Standalone所在的文件夹shift+鼠标右键,选择在此处打开命令窗口,或者CD 路径),然后执行下面的命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java -jar selenium-server-standalone-<version>.jar -role hub
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
例如:java -jar selenium-server-standalone-3.9.1.jar -role hub
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
可以加 -port 指定端口号,默认4444
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
http://localhost:4444/grid/console 启动后用这个地址访问

4. 配置node(节点)

(1)   Node(也就是其他电脑或虚拟机环境,也可以直接将hub所在的那台电脑添加为node),在系统变量path中加上相应的驱动文件的路径。(例如:将chromedriver所在的路径添加到path中,之前已经说过火狐、IE、谷歌浏览器环境的配置)

(2)   执行下面的命令

java -jar selenium-server-standalone-3.9.1.jar -role node -browser "browserName=firefox,version=62,maxSession=3,platform=WINDOWS" -hub http://192.168.4.196:4444/grid/register -port 5555

说明:

browserName:浏览器名称

Version:浏览器版本

maxSession:支持并发浏览器实例的数量

platform:操作系统

-hub:http:// (Selenium Grid server(hub)的IP)+启动时设置的端口号/ grid/register

-port :指定端口号

(3)   要在同一电脑(或虚拟机)添加其他节点,再打开一个CMD窗口,运行上面的命令就行了(记得修改浏览器信息),记得同一电脑上端口号别重复。

(四) 环境配置好后如下图所示(我电脑开着一个linux的虚拟机太卡了,有点浪费时间的感觉,不想弄了,不过应该和windows上的差距不会太大,有环境的可以试下添加path变量、在终端执行相关命令添加节点)

(五) 示例(运行脚本会发现,直接在相匹配的环境中运行测试)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 1 import sys
 2 import unittest
 3 from selenium import webdriver
 4 from selenium.webdriver.common.action_chains import ActionChains
 5 class SearchTest(unittest.TestCase):
 6     #定义2个全局属性,没有外部参数时,使用默认值
 7     PLATFORM = "WINDOWS"
 8     BROWSER = "firefox"
 9     @classmethod
10     def setUpClass(cls):
11         #设置操作系统和浏览器
12         desired_caps = {}
13         desired_caps['platform'] = cls.PLATFORM
14         desired_caps['browserName'] = cls.BROWSER
15         #这里的IP就是HUB所在电脑的ip
16         cls.driver = webdriver.Remote('http://192.168.3.2:4444/wd/hub',desired_caps)
17         cls.driver.implicitly_wait(10)
18         cls.driver.maximize_window()
19         cls.driver.get("https://www.cnblogs.com/")
20         
21     def test_search_by_look(self):
22         seach_class = self.driver.find_element_by_xpath('//li/a[@href="/cate/2/"]')
23         #定位编程语言下的小类Python
24         seach_small =self.driver.find_element_by_xpath('//li/a[@href="/cate/python/"]')
25         ActionChains(self.driver).move_to_element(seach_class).perform()
26         seach_small.click()
27         #检查打开的网页标题是不是 Python - 网站分类 - 博客园
28         self.assertEqual(self.driver.title,"Python - 网站分类 - 博客园" )
29 
30     @classmethod
31     def tearDownClass(cls):
32         cls.driver.quit()
33 
34 if __name__ == '__main__':
35     #使用命令行运行脚本时,如果添加了参数,PLATFORMBROWSER使用外部参数
36     if len(sys.argv)>1:
37         SearchTest.PLATFORM = sys.argv.pop()
38         SearchTest.BROWSER = sys.argv.pop()
39     #加verbosity=2参数,在命令行中显示具体的测试方法
40     unittest.main(verbosity=2)

(六) 未解决的问题(单单配置环境是不够的)

1、 实现多环境并行运行同一测试脚本

2、 实现多个测试脚本并行运行(例如几百个测试脚本要是一个个运行的话,要用很长时间)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-02-25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
robot framework笔记(三):扩展SeleniumLibrary库 (自定义关键字)
以下代码GitHub 版本库地址: https://github.com/blairwind/blog_rf
free赖权华
2019/12/24
1.4K1
robot framework笔记(三):扩展SeleniumLibrary库 (自定义关键字)
selenium grid搭建
selenium grid可以同时在不同机器上测试不同浏览器,包含一个hub和至少一个node。node会发送配置信息到hub,hub记录并跟踪每一个node的配置信息,同时hub会接受到即将被执行的测试用例及其相关信息,并通过这些信息自动选择可用的且符合浏览器与平台搭配要求的node,node被选中后,测试用例所调用的selenium命令就会被发送到hub,hub再将这些命令发送到指定给该测试用例的node,之后由node执行测试。
测试邦
2019/07/24
8090
selenium grid搭建
快速搭建基于Selenium Grid 分布式管理的appium测试设备系统
在之前appium的系列分享中,我们对appium相关的有了一系列的分享,我们针对多设备,Appium系列(十八)多设备并行执行测试用例。针对多设备的管理,我们采用了多进程和多线程的方式来控制,当然了,可以解决这样的问题,但是有没有其他的解决方案。本文带领你看下基于Selenium Grid来管理设备。
雷子
2021/12/15
1.8K1
快速搭建基于Selenium Grid 分布式管理的appium测试设备系统
Python+Selenium笔记(三):使用unittest
#网络很慢可能会运行报错 (一)   前言 Selenium WebDriver是一个浏览器自动化测试的API集合。它提供了很多与浏览器自动化交互的特性,并且这些API主要是用于测试Web程序。如果仅仅使用Selenium WebDriver,我们无法实现执行测试前置条件、测试后置条件,比对预期结果和实际结果,检查程序的状态,生成测试报告,创建数据驱动的测试等功能。 (二)   unittest单元测试框架 unittest(一般称为PyUnit)是从Java程序开发中广泛应用的JUnit启发而来的。uni
free赖权华
2018/04/27
8930
Python+Selenium笔记(三):使用unittest
【测试】Selenium Grid测试
下载http://selenium-release.storage.googleapis.com/index.html
瑞新
2020/07/07
1.1K0
【测试】Selenium Grid测试
Selenium 系列篇(七):分布式
Selenium 包含 3 大组件,分别是:Selenium IDE、Selenium WebDriver、Selenium Grid
AirPython
2020/05/07
1.3K0
Selenium Grid 简明用法
前几天有同学问我selenium gird的问题, 简要告知后才知道,selenium gird仍然在很多公司的自动化里占很大比重,我一直觉得在Jenkins这种持续集成工具大行其道的今天,selenium gird用来做分布式运行的工具已经可以寿终正寝了,看来还是行业不同,关注点就不同,整理了elenium gird用法,分享给大家。
iTesting
2019/10/29
1.8K0
Selenium Grid 简明用法
Python+Selenium笔记(十八):持续集成jenkins
(一)安装xmlrunner 使用Jenkins执行测试时,测试代码中会用到这个模块。  pip install xmlrunner (二)安装jenkins (1)   下载jekins https
free赖权华
2018/04/27
1.4K0
Python+Selenium笔记(十八):持续集成jenkins
WebDriver多线程并发
要想多线程并发的运行WebDriver,必须同时满足2个条件,首先你的测试程序是多线程,其次需要用到Selenium Server。下载位置如下图:
流柯
2018/08/30
1.9K0
WebDriver多线程并发
自动化-Appium-​第一个Demo-Web(Python版)
本章Web所指的是移动端(模拟器/真机)里的浏览器(如:Chrome、Safari)。
wangmcn
2022/07/25
2.6K0
自动化-Appium-​第一个Demo-Web(Python版)
Selenium Webdriver Desired Capabilities
前言 我们每一个的selenium测试都应该在指定的环境下运行,这个环境可以是web浏览器、移动设备、移动模拟器等等。 那怎么来指定我们的selenium测试脚本运行环境呢? 本次分享主要解决这个问题
苦叶子
2018/04/04
1.9K0
Selenium Webdriver Desired Capabilities
selenium-server-standalone 分布式自动化测试 搭建
selenium 官网可知,selenium 是支持分布式测试的,需要部署 Grid 服务;
卓越笔记
2023/02/18
2.6K0
selenium-server-standalone 分布式自动化测试 搭建
基于Selenium Grid 分布式管理的appium测试设备系统(二)
在之前快速搭建基于Selenium Grid 分布式管理的appium测试设备系统,我们介绍了快速本地化搭建,本次我们分享的呢,是基于搭建后的,如何在代码上进行调度设备测试?
雷子
2021/12/16
7080
基于Selenium Grid 分布式管理的appium测试设备系统(二)
Selenium 3 升级到 Selenium 4 应注意哪些
在自动化技术的不断发展过程中,我们往往也会遇到或做过自动化版本升级的任务,也会遇到各种各样的问题。
wangmcn
2022/07/26
1.7K0
【UI 自动化测试平台解决方案】使用 Selenium IDE 录制 UI 自动化测试脚本UI 自动化录制:Selenium IDESeleniumSelenium IDE
通过 Selenium IDE 录制并重播功能,可以快速创建UI 自动化测试用例。
一个会写诗的程序员
2018/12/14
3.1K0
【UI 自动化测试平台解决方案】使用 Selenium IDE 录制 UI 自动化测试脚本UI 自动化录制:Selenium IDESeleniumSelenium IDE
自动化的分布式
当团队自动化用例达到一定数量后,如果仅在一台执行机上执行,执行时间就可能会达到几个小时以上,无法满足版本发布节点的时间要求,如何减少总的自动化用例执行时间就是不得不解决的问题,本文介绍采用pytest、selenium grid实现自动化用例的并发分布式执行方案。 Selenium Grid 是 selenium 的三大组件之一,允许用户同时在不同的机器和系统上测试不同的浏览器,可以分布式的来执行我们的自动化测试,也可以测试不同浏览器的兼容性。
赵云龙龙
2021/04/23
9330
自动化的分布式
Selenium入门
查看chrom浏览器的版本,需要下载其对应版本的chrome webdriver.
测试加
2022/03/24
2.8K0
Selenium入门
Selenium Grid4.0 - 多台计算机上并行运行
当你希望在多台计算机上并行运行测试?Selenium Grid可以帮你实现。 官方文档原文:
上海-悠悠
2024/01/17
4120
Selenium Grid4.0 - 多台计算机上并行运行
selenium源码通读·9 |webdriver/common/desired_capabilities.py-DesiredCapabilities类分析
1 源码目录selenium/webdriver/common/desired_capabilities.py2 功能描述根据测试代码中配置的DesiredCapabilities参数,来决定将测试代码分发到哪台node上进行测试;补充知识:我们需要了解下selenium grid;3 Selenium Grid介绍3.1 是什么?Selenium套件的一部分,它专门用于并行运行多个测试用例在不同的浏览器、操作系统和机器上;Selenium Grid 主要使用 master-slaves (or hub-n
虫无涯
2023/02/09
7140
并行的UI 自动化测试 - Selenium Grid 4
众所周知,使用 WebDriver 启动浏览器进行 Web UI 自动化测试的执行速度是很慢的,于是使用 Selenium Grid 进行并发测试是减少测试执行时间的一个非常好的手段。
TestOps
2022/04/07
2.7K0
并行的UI 自动化测试 - Selenium Grid 4
推荐阅读
相关推荐
robot framework笔记(三):扩展SeleniumLibrary库 (自定义关键字)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档