自动化测试框架浅析+selenium Grid的使用+python

Selenium Grid使用Hub和Node模式:跳过了环境配置,直接说使用方法。

1.找到两台windows计算机A,B;A计算机作为Hub,B计算机作为Node

2.两台计算机均可访问http://www.seleniumhq.org/download,下载最新版本selenium-server-standalone-3.8.1.jar

3.在A上打开CMD,切换到刚刚下载的地方,执行语句:(记得关闭电脑的防火墙,否则会失败)

java -jar selenium-server-standalone-3.8.1.jar -role hub 

-role hub:启动一个hub服务,作为分布式管理中心,等待webdriver客户端进行注册和请求,默认接受注册地址为http://localhost:4444/grid/register,默认启动端口4444

4.在A上面的浏览器输入:http://localhost:4444/grid/console 如果网页显示view config的链接表示Hub已启动成功


在机器B中的访问地址是将localhost变成ip地址即可

5.机器B打开cmd,切换到selenium-server-standalone-3.8.1.jar目录,输入:

java -jar selenium-server-standalone-3.8.1.jar -role webdriver -hub http://127.0.0.1:4444/grid/register-Dwebdriver.chrome.driver="D:\python\Scripts\chromedriver.exe" -port 6666 -maxSession 5 -browser browserName="chrome",maxInstances=5

参数说明:

maxSession为最大会话请求,这个参数主要要用并发执行测试用例,默认是1,建议设置10及以上。

maxInstances表示最大实例,可以理解为最多可运行的浏览器数,这个值很关键,不能大于前面maxSession的值,否则可能会出错;

6.再次访问http://localhost:4444/grid/console


此页面获得节点计算机允许不同种类的浏览器打开多少实例,验证节点计算机执行命令的正确性

7.编写分布式执行的测试脚本(以Chrome浏览器为例)

#encoding=utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Remote(
  # 设定Node节点的URL地址,后续将通过访问这个地址连接到Node计算机,因为我连接的是本机,就是127.0.0.1
  command_executor = 'http://127.0.0.1:6666/wd/hub',
  desired_capabilities = {
        # 指定远程计算机执行使用的浏览器为chrome
        "browserName": "chrome",
        "video": "True",
        # 远程计算机的平台
        "platform": "WINDOWS"
  })
print ("Video: " + "http://www.baidu.com" + driver.session_id)

try:
    driver.implicitly_wait(30)
    driver.maximize_window()
    driver.get("http://www.sogou.com")
    assert u"搜狗" in driver.title
    elem = driver.find_element_by_id("query")
    elem.send_keys(u"webdriver实战宝典")
    elem.send_keys(Keys.RETURN)
    time.sleep(3)
    assert u"吴晓华" in driver.page_source
    print 'done!'
finally:
    driver.quit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值