zoukankan      html  css  js  c++  java
  • selenium3 + python

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

     转载链接:https://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个浏览器乖乖地启起来了呢~

  • 相关阅读:
    topcoder srm 681 div1
    topcoder srm 683 div1
    topcoder srm 684 div1
    topcoder srm 715 div1
    topcoder srm 685 div1
    topcoder srm 687 div1
    topcoder srm 688 div1
    topcoder srm 689 div1
    topcoder srm 686 div1
    topcoder srm 690 div1 -3
  • 原文地址:https://www.cnblogs.com/Teachertao/p/10989006.html
Copyright © 2011-2022 走看看