zoukankan      html  css  js  c++  java
  • 【python+selenium】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

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

  • 相关阅读:
    关于API微服务网关
    适用于企业的API管理平台
    简单的api测试
    Json,2020年api数据格式的Top 1
    API文档之团队协作
    如何进行API测试以提高程序质量
    API接口也要监控?
    春招实习_腾讯 wxg 一面 3.27 15:00
    春招实习_腾讯一面 & 二面_3.13
    春招实习_阿里一面
  • 原文地址:https://www.cnblogs.com/dhs94/p/8955373.html
Copyright © 2011-2022 走看看