Selenium Grid集群搭建

作者: wywincl | 来源:发表于2016-11-09 14:10 被阅读1633次

    背景介绍

    阅读对象 背景知识
    测试人员 具有Selenium使用基础

    在Web UI自动化测试过程中,我们都使用了Selenium这个工具来与浏览器进行交互。但是,考虑到仅仅使用Selenium,我们无法进行分布式的多任务并行测试。因为在同一台电脑上,通常仅仅只有一个浏览器实例可以正常运行。运行多个浏览器的话会出现相互干扰。因此,我们考虑到基于Selenium-Grid来搭建一套分布式的Selenium测试节点集群。


    Selenium

    方案设计

    这里我们打算通过selenium-grid构建一个多浏览器测试集群,同时支持ie, firefox, chrome, phantomjs。phantomjs是headless浏览器,一种非GUI方式访问页面,能够加快速度。不同的浏览器需要相应的驱动才能够与Selenium进行交互。下表详细说明了浏览器与驱动的对应关系。

    浏览器 驱动 备注
    Internet Explorer IEDriverServer
    Firefox geckodriver 新版本firefox中需要此驱动
    Chrome chromedriver
    phantomjs ghostdriver 新版本phantomjs已经原生集成了ghostdriver
    phantomjs

    实际部署

    步骤1, 启动selenium-hub

    java -jar /path/to/selenium-server-standalone-<SELENIUM VERSION>.jar -role hub
    

    步骤2,配置浏览器驱动

    在不同的测试集群机上,分别安装不同类型的浏览器和相应的驱动。
    并配置好环境变量(将浏览器驱动driver配置进PATH变量中)。

    步骤3,在不同的集群机上启动selenium-node

    启动node-phantomjs

    phantomjs --webdriver=${WEBDRIVER_PORT}--webdriver-selenium-grid-hub=http://${SLENIUM_HUB_IP}:${SLENIUM_HUB_PORT}
    

    启动node-chrome, node-firefox, node-ie, 方式一样,分别在这些安装了chrome,firefox, ie的节点集群机上,启动node服务。并注册到selenium-hub上即可。需要保证每个集群节点中浏览器对应驱动程序的环境变量正确。

    java -jar /path/to/selenium-server-standalone-<SELENIUM VERSION>.jar -role node -hub ${SELNIUM_HUB_URL}
    

    步骤4, 查看hub挂载节点情况

    查看注册的浏览器节点列表。
    登录进入:${SELENIUM_HUB_URL}/grid/console

    node-phantomjs node-chrome, node-firefox, node-ie.png

    上图显示了注册成功后,selenium-hub管理面板上显示的注册节点情况,我们可以及时了解到测试节点集群的情况,以及测试浏览器的类型。

    测试应用

    Selenium Grid测试集群搭建好了以后,我们就可以基于Selenium集群来做一些分布式的测试任务了。实际的应用,我们后续再讲。

    相关文章

      网友评论

        本文标题:Selenium Grid集群搭建

        本文链接:https://www.haomeiwen.com/subject/sfazuttx.html