Python+selenium 分布式测试工具Grid环境搭建

前提:主机和虚拟机配置好java、python+selenium的运行环境、VMware14虚拟机(一台PC可以启动多个node,可不用虚拟机,注意区分node端口就行)、selenium server(根据运行环境中selenium选择selenium server版本)

  • 桥接虚拟机和主机网络

1.编辑-虚拟网络编辑器-桥接模式-桥接到你主机网卡

2.右键-虚拟机设置-网络适配器-自定义(选择第一步设置的桥接模式)

3.关闭防火墙,查看IP地址,主机和虚拟机ping通


  • 主机启动selenium server(主节点-hub)

输入 java -jar selenium-server-standalone-xxx.jar -role hub -port xxxx

启动主机selenium server,设置主节点(-role hub), 设置端口号(-port xxx  #默认启动位4444端口,未被占用可不设置)

如下图:提示启动成功运行状态、节点注册地址、客户端连接地址和端口等信息

启动成功浏览器输入:http://xxx.xxx.xxx.xxx:4444/grid/console 查看selenium server的配置信息。如下图:


  • 虚拟机启动selenium server(子节点-node)

输入 java -jar selenium-server-standalone-xxx.jar -role node -host http://xxx.xxx.xxx.xxx  -port 5555 -hub http://xxx.xxx.xxx.xxx:4444/grid/register

启动子节点selenium server并注册到主机

-role node:设置为子节点(node)

-host : 设置子节点ip

-port :设置端口

-hub : 设置主节点注册地址

设置成功后主节点有提示的,如下图:

注: 同一电脑启动多个node需要注意端口区分:

java -jar selenium-server-standalone-xxx.jar -role node -host http://192.168.1.99  -port 5556 -hub http://xxx.xxx.xxx.xxx:4444/grid/register

java -jar selenium-server-standalone-xxx.jar -role node -host http://192.168.1.99  -port 5557 -hub http://xxx.xxx.xxx.xxx:4444/grid/register

  • 运行测试脚本:

#!/usr/bin/python3
# coding=utf-8
import time
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

driver = webdriver.Remote(command_executor="http://子节点IP/wd/hub",
                          desired_capabilities=DesiredCapabilities.CHROME)
"""
如果grid的hub可以接收到消息,但是测试不成功,则可以使用本地方法来调试。
如driver = webdriver.Chrome()来进行本地测试,
"""
# driver = webdriver.Chrome()
driver.implicitly_wait(3)
driver.get("https://www.baidu.com")
driver.find_element_by_id("kw").send_keys("python")
driver.find_element_by_id("su").click()
driver.quit()
time.sleep(1)

参考:https://blog.csdn.net/songer_xing/article/details/72830936

猜你喜欢

转载自blog.csdn.net/weixin_43507959/article/details/84989292