zoukankan      html  css  js  c++  java
  • Selenium2+python自动化-gird分布式(转载)

    本篇转自博客:上海-小T

    原文地址:http://blog.csdn.net/real_tino/article/details/53467406

    Selenium grid是用来分布式执行测试用例脚本的工具,比如测试人员经常要测试多浏览器的兼容性,那就可以用到grid了。下面就来介绍如何在多个浏览器上运行同一份脚本。

    使用grid所需要的文件:1.Selenium server(即selenium-server-standalone-x.xx.x.jar);2.grid配置文件(该文件负责提供主机和浏览器信息);3.测试脚本。

    1.先来看看grid配置文件的内容:

    def grid():
        d={'http://127.0.0.1:4444/wd/hub' : 'firefox',
            'http://127.0.0.1:5555/wd/hub' : 'internet explorer',
            }
        return d

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

    2.再来看看测试脚本:

    # encoding:utf-8
     
    from selenium import webdriver
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    import time, os.path
    import grid_module
     
    for host, browser in grid_module.grid().items():
        driver = webdriver.Remote(
            command_executor=host,
            desired_capabilities={
                'platform': 'ANY',
                'browserName': browser,
                'version': '',
                'javascriptEnabled': True
            }
        )
        driver.get("http://www.baidu.com")
        driver.find_element_by_id("kw").send_keys(u"中国")
        driver.find_element_by_id("su").click()
        time.sleep(3)
        if driver.title == u"中国_百度搜索":
            print("title匹配!")
        else:
            print("title不匹配!")
        driver.close()
    
    

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

    3.然后就启server了,从http://selenium-release.storage.googleapis.com/index.html上下载对应版本的Selenium server: 

     

    下载下来后打开cmd,输入Java -jar selenium-server-standalone-x.xx.x.jar -role hub,这是万恶之源,先启它才能干后面的事。启动之后再打开一个cmd,输入java -jar selenium-server-standalone-x.xx.x.jar -role node -port 5555,这是启动第一个node,指定端口5555,与grid配置文件中所写的端口一致。

    hub和node启动好之后我们在浏览器里输入http://127.0.0.1:4444/grid/console,打开grid的控制台: 

    我们能看到有一个端口为5555的node已经启动起来了,此处的IP就是本机IP。

    4.最后我们运行测试脚本,2个浏览器乖乖地启起来了呢~

  • 相关阅读:
    C++笔记(2018/2/6)
    2017级面向对象程序设计寒假作业1
    谁是你的潜在朋友
    A1095 Cars on Campus (30)(30 分)
    A1083 List Grades (25)(25 分)
    A1075 PAT Judge (25)(25 分)
    A1012 The Best Rank (25)(25 分)
    1009 说反话 (20)(20 分)
    A1055 The World's Richest(25 分)
    A1025 PAT Ranking (25)(25 分)
  • 原文地址:https://www.cnblogs.com/caoj/p/7805440.html
Copyright © 2011-2022 走看看