Selenium Grid分布式自动化测试

一、Selenium Grid介绍

  1. Selenium Grid是selenium的三大组件之一,它允许Selenium-RC针对规模庞大的测试案例集或者需要在不同环境中运行的测试案例集进行扩展。通过将客户端命令发送到远程浏览器的实例,Selenium Grid 允许在远程计算机 (虚拟或真实) 上执行WebDriver脚本.它旨在提供一种在多台计算机上并行运行测试的简便方法。Selenium Grid允许我们在多台计算机上并行运行测试,并集中管理不同的浏览器版本和浏览器配置 。
  2. 本次在工作之余学习下这个技术,增加自己的竞争力,同时也为后面想学的人总结总结,让大家少走弯路。

二、环境搭建

2.1 Java环境搭建

请自行百度进行配置,并使用java -version 进行验证是否安装成功。如下图。在DOS窗口出现这些信息说明你的java安装环境无误。
在这里插入图片描述

2.2 Selenium server下载

通过以下的链接可以较快的下载完该软件。本次我下载的是该版本(selenium-server-standalone-3.9.1.jar)。
在这里插入图片描述

参考链接:selenium server快速下载

2.3 Chromedriver下载

主要用来模拟谷歌浏览器进行测试。下载后放在Python根目录(注意Chromedriver与谷歌浏览器的版本匹配),Python安装方式请自行百度,这里不做过多讲解。
驱动下载参考链接:Chromedriver快速下载

2.4 geckodriver下载

主要用来模拟火狐浏览器进行测试,具体下载方式可百度。下载后放在Python根目录

三、服务端和客户端启动

3.1 启动服务端

java -jar 服务端地址以下参数可自由配置

timeout :超时
browserTimeout :浏览器超时
role : 角色
port:端口
host:主机IP
hub:服务端地址
Dwebdriver.chrome.driver:Chromedriver的地址,这个可以不做配置

java -jar selenium-server-standalone-3.9.1.jar -role hub -port 4444 -host 192.168.2.13 

出现如下信息,则服务端运行成功,接下来我们运行客户端
在这里插入图片描述
进入如下网址: http://<hub主机ip>:4444/grid/console可以检查服务端的信息,以及是否有节点连接上。出现以下页面,则服务启动成功。右边则是启动的参数配置。大家可以了解。
在这里插入图片描述

3.2 运行客户端

这里配置则需要通过hub来对服务端进行绑定。运行以下代码。

java -jar selenium-server-standalone-3.9.1.jar -role node -port 5555 -hub http://192.168.2.13:4444/grid/register/

出现以下信息则说明客户端已经连接上服务端。节点注册成功
在这里插入图片描述
在服务端处可以看到已经注册了一个端口为5555的节点。
在这里插入图片描述
再次查看刚才的URL地址,我们可以在浏览器页面看到这个节点和浏览器。
在这里插入图片描述

四、准备脚本

4.1 Java脚本参考

/**
     * 远程driver,默认使用chrome。
     * 远端需启动selenium-server-standalone
     * @param remoteUrl selenium-server服务端地址
     * */
    public WebDriver getDefaultRemoteDriver(String remoteUrl) throws Exception{
        DesiredCapabilities capabilities = DesiredCapabilities.chrome();
        capabilities.setJavascriptEnabled(true);
        URL url = new URL(remoteUrl);
        WebDriver driver = new RemoteWebDriver(url,capabilities);
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
 
        return driver;
    }

4.2 bat脚本

@echo off
C:
cd \
Java -jar-role hub -port 4444
pause

Java -jar-role node -port 5555 -hub http://hub_ip:4444/grid/register

4.3 Python脚本

from selenium.webdriver import Remote
from selenium.webdriver.common.by import By
from time import sleep
#这里lists的command_executor就是node节点的ip:port---->http://node的ip:node的port/wd/hub
lists={'http://192.168.2.13:5555/wd/hub':'firefox',
      }
lists1={'http://192.168.2.13:5555/wd/hub':'chrome',
      }
for host,browser in lists.items():
    print(host,browser)
    driver = Remote(command_executor=host,
                    desired_capabilities={'browserName': browser,
                                          'platform': 'ANY',
                                          'version':'',
                                          'javascriptEnabled':True
                                          }
                    )
    driver.get("http://www.baidu.com")
    print("pass")
    driver.maximize_window()
    sleep(1)
    driver.find_element(By.ID,"""kw""").send_keys(browser)
    sleep(1)
    driver.find_element(By.ID,"""su""").click()
    sleep(3)
    result_text = driver.find_element(By.XPATH,"""//*[@id="tsn_inner"]/div[2]/span""").text
    sleep(1)
    assert "百度为您找到相关结果约" in result_text
    sleep(1)
    driver.quit()

五、运行脚本

请愉快的运行脚本!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值