Selenium Grid分布式测试环境搭建


项目需要测试多浏览器兼容性 因此对selenium进行调研使用

链接: 下载Selenium Grid.

需要把下载的selenium-server-standalone-<version>.jar 和 浏览器webdriver放在同一目录

第 1 步:启动集线器

Hub 是接收所有测试请求并将它们分发到正确节点的中心点。
打开命令提示符并导航到复制 selenium-server-standalone 文件的目录。输入以下命令:

java -jar selenium-server-standalone-<version>.jar -role hub

默认情况下,集线器将使用端口 4444 自动启动。要更改默认端口,您可以在运行命令时添加可选参数 -port
您可以通过打开浏览器窗口并导航到:http://localhost:4444/grid/console来查看集线器的状态

第 2 步:启动节点

无论您是要运行具有新 WebDriver 功能的网格,还是具有 Selenium 1 RC 功能的网格,或同时运行两者,
您都可以使用相同的 selenium-server-standalone jar 文件来启动节点。
在其他机器启动可把 localhost 改为 服务器IP  进行关联
java -jar selenium-server-standalone-<version>.jar -role node  -hub http://localhost:4444/grid/register
注意:如果提供了“-role”选项且不是集线器,则如果未指定端口,则默认为 5555。
为了向后兼容,“wd”和“rc”角色仍然是“node”角色的有效子集。但是这些角色将远程连接的类型限制为它们对应的 API,
而“节点”允许 RC 和 WebDriver 远程连接。

这时通过刷新浏览器可以查看电脑信息,初步配置selenium成功
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210707164959920.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM2NjA2Nzkz,size_16,color_FFFFFF,t_70)

第3步:运行调试代码

需要使用RemoteWebDriver和DesiredCapabilities对象来定义您希望使用的浏览器、版本和平台。创建要针对其运行测试的目标浏览器功能:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

driver = webdriver.Remote(
    command_executor='http://127.0.0.1:4444/wd/hub',
    desired_capabilities=DesiredCapabilities.CHROME 
)
driver.get("http://www.google.com")
driver.quit()

pytest-xdist实现并发执行测试用例

前面提到selenium grid执行并不是并发的,要实现并发执行测试用例还需要多线程机制配和,pytest-xdist插件支持多线程并发执行测试用例,首先使用pip安装pytest-xdist插件。

pip install pytest-xdist

安装成功后,执行如下命令即可实现并发执行,其中-n后面的参数表示cpu的数量,也可以指定为auto,它会自动检测cpu核数并发运行用例。

pytest -n 6
pytest -n auto

另外,selenium需要通过Remote方式执行,以chrome为例,关键部分的代码如下:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from time import sleep
import pytest

driver = webdriver.Remote(
    command_executor='http://192.168.10.88:4444/wd/hub',
    desired_capabilities=DesiredCapabilities.FIREFOX,
)
driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").send_keys("search content")
driver.find_element_by_xpath('//input[@type="submit"]').click()
sleep(30)
driver.quit()
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值