selenium grid(分布式)

前言

原文:https://blog.csdn.net/real_tino/article/details/53467406

Selenium grid是用来分布式执行测试用例脚本的工具,比如测试人员经常要测试多浏览器的兼容性,那就可以用到grid了。

一、使用grid所需要的文件

1.Selenium server(即selenium-server-standalone-x.xx.x.jar)

下载对应版本http://selenium-release.storage.googleapis.com/index.html

我的selenium对应的是2.53.1版本

2.grid配置文件(该文件负责提供主机和浏览器信息)

1 def grid():
2     d={‘http://127.0.0.1:4444/wd/hub‘:‘firefox‘,‘http://127.0.0.1:5555/wd/hub‘:‘chrome‘}
3     return d
4     

该文件定义了一个方法,该方法存放了一个字典,分别给本机分配了2个不同的端口并指定了不同的浏览器(4444是grid hub的默认端口,5555这个是一个node的端口)

3.测试脚本

 1 # encoding:utf-8
 2
 3 from selenium import webdriver
 4 from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
 5 import time, os.path
 6 import grid_module
 7
 8 for host, browser in grid_module.grid().items():
 9     driver = webdriver.Remote(
10         command_executor=host,
11         desired_capabilities={
12             ‘platform‘: ‘ANY‘,
13             ‘browserName‘: browser,
14             ‘version‘: ‘‘,
15             ‘javascriptEnabled‘: True
16         }
17     )
18     driver.get("http://www.baidu.com")
19     driver.find_element_by_id("kw").send_keys(u"中国")
20     driver.find_element_by_id("su").click()
21     time.sleep(3)
22     if driver.title == u"中国_百度搜索":
23         print("title匹配!")
24     else:
25         print("title不匹配!")
26     driver.close()

该脚本是写了一个百度搜索关键词并做了简单断言的脚本,导入的grid_module就是第一步中的grid配置文件,循环体中写的是从字典中取出主机名和浏览器名赋给下面的参数,这样的话该测试脚本就会接连调用本地的2个指定浏览器并运行

二、执行脚本

1.启动selenium server

1)打开cmd,在selenium server所在路径下输入命令(勿关)

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

2)打开另有一个命令,输入命令(勿关)

Java -jar selenium-server-standalone-2.53.1.jar -role node -port 5555

这是启动第一个node,指定端口5555,与grid配置文件中所写的端口一致

3)hub和node启动好之后我们在浏览器里输入http://127.0.0.1:4444/grid/console,打开grid的控制台,我们能看到有一个端口为5555的node已经启动起来了,此处的IP就是本机IP

4)运行脚本

三、遇到的问题

1.cannot find firefox binary in path

解决办法:将火狐浏览器路径添加到系统变量中,路径中不要有空格

原文地址:https://www.cnblogs.com/dhs94/p/8955373.html

时间: 2024-11-08 10:08:35

selenium grid(分布式)的相关文章

Selenium Grid分布式测试入门详解

本文对Selenium Grid进行了完整的介绍,从环境准备到使用Selenium Grid进行一次完整的多节点分布式测试. 运行环境为Windows 10,Selenium版本为 3.5.0,Chrome版本为62,Firefox版本为56,IE版本为11. 1. Selenium Grid简介 Selenium Grid允许你在多台机器的多个浏览器上并行的进行测试,即分布式测试. 通常,以下两种情况会需要使用Selenium Grid: 1) 通常多个浏览器的兼容性测试,即在不同浏览器或不同

Selenium Grid 分布式测试入门

本文对Selenium Grid进行了完整的介绍,从环境准备到使用Selenium Grid进行一次完整的多节点分布式测试. 运行环境为Windows 10,Selenium版本为 3.5.0,Chrome版本为62,Firefox版本为56,IE版本为11. 1. Selenium Grid简介 Selenium Grid允许你在多台机器的多个浏览器上并行的进行测试,即分布式测试. 通常,以下两种情况会需要使用Selenium Grid: 1) 通常多个浏览器的兼容性测试,即在不同浏览器或不同

Selenium grid 分布式测试搭建

应领导要求使用 selenium grid 搭建分布式测试平台,于是有了以下操作: 第一步:准备2台电脑,且2台电脑都安装好jdk,都准备好selenium-server-standalone-2.40.0.jar,IEDriver, ChromeDriver等工具,注意chrome版本与chromedriver需要匹配,详见我的另一篇博客:http://www.cnblogs.com/cherrysu/p/7815245.html 第二步:其中一台电脑作为hub,也就是老大,另一台作为node

使用selenium grid分布式执行之一

目前ui框架会做一个更新,把原有的Jenkins分布式方式换成grid方式,换成grid方式有两个好处,1.grid的资源占用比Jenkins的jnlp占用资源少 2.grid可控制不同浏览器同时跑 看很多网上跑自己的案例都很顺,想直接拿过来用,中间遇到很多问题,发现自己的电脑,启动多个浏览器后,只会执行1个浏览器,读取数据库中的控件,报空指针问题等,类似并发的问题,最开始怀疑testng多线程问题,折腾了一天,发现是因为我们设计模式问题,并发中driver被覆盖了,哎,,,之后并发有遇到很多问

Robot Framework + Selenium2Library环境下,结合Selenium Grid实施分布式自动化测试

最近一段时间,公司在推行自动化测试流程,本人有幸参与了自定义通用控件的关键字封装和脚本辅助编写.数据驱动管理.测试用例执行管理等一系列工具软件的研发工作,积累了一些经验,在此与大家做一下分享,也算是做一个总结吧,希望能给大家带来启发和帮助.由于业界没有成熟的解决方案可供参考,本人在研究过程中也是摸着石头过河,纰漏之处在所难免,如果大家有更好的方案,敬请不吝赐教. 分布式并行执行用例需求背景 公司的产品属于web app,采用的是Robot Framework + Selenium2Library

selenium之多线程启动grid分布式测试框架封装(四)

九.工具类,启动所有远程服务的浏览器 在utils包中创建java类:LaunchAllRemoteBrowsers package com.lingfeng.utils; import java.net.MalformedURLException; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set;

Selenium Grid的使用(分布式测试)

1.Selenium Grid简介 Selenium Grid组件专门用于远程分布式测试或并发测试.使用此组件可以在一台计算机上给多台计算机(不同操作系统和不同版本浏览器环境)分发多个测试用例从而并发执行,大大提高了测试用例的执行效率,基本满足大型项目自动化测试的时限要求和兼容性要求. Selenium Grid使用Hub和Node模式,一台计算机作为Hub(管理中心)管理其他多个Node(节点)计算机,Hub负责将测试用例分发给多台Node计算机执行,并收集多台Node计算机执行结果的报告,汇

Selenium Grid操作使用指南

一.实现串行多浏览器执行脚本1.启动selenium-server-standalonejava -jar selenium-server-standalone-2.44.0.jar2.脚本代码 1 from selenium import webdriver 2 from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 3 import time 4 5 lists = ["chrome&quo

selenium Grid(一)

selenium grid Quick Start selenium-grid是用于设计帮助我们进行分布式测试的工具,其整个结构是由一个hub节点和若干个代理节点组成.hub用来管理各个代理节点的注册和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令再转发给代理节点来执行. 1.启动Selenium-Server 1)下载 selenium-server-standalone-*.jar,地址:http://selenium-release.storage.googleapis.co