selenium 怎样实现在不同平台,不同浏览器下执行测试用例,答案是 Selenium-Grid。
selenium-grid是用于设计帮助我们进行分布式测试的工具,其整个结构是由一个hub节点和若干个代理节点组成。hub用来管理各个代理节点的注册和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令再转发给代理节点来执行。具体实例如下:
具体的环境搭建略过
启动hub结点:
启动第一个node结点(第一个node结点和hub结点在同一台机器上):
启动第二个node结点:
观察控制端:hub控制结点显示两个node结点的具体信息
从hub结点的机器上运行测试用例,调用node2结点的火狐浏览器:
部分启动参考代码:
from selenium import webdriver
from selenium.webdriver import Remote
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
driver=Remote(
command_executor='http://172.18.24.114:5556/wd/hub',
desired_capabilities=DesiredCapabilities.FIREFOX)
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys('test')
driver.find_element_by_id('su').click()
driver.close()
driver.quit()
有待完善:1.实现多浏览器不同平台并行执行