selenium===使用docker搭建selenium分布式测试环境

准备:

#请在此之前务必先了解,selenium grid ;参考:selenium-grid ,下载地址 win-本地部署过程

 

>>>环境准备: Linux操作系统

>>>给Linux安装Python(linux 默认已经安装)

>>>安装docker参考Ubuntu安装docker步骤,安装完毕后检验,安装是否正确

>>>docker search selenium   命令查看需要安装的selenium包 ;目前只支持Chrome 和 Firefox两种浏览器

>>>下载主 hub 对象: sudo docker pull selenium/hub

>>>下载主node - Chrome 镜像 :sudo docker pull selenium/node-chrome

>>>下载完成后查看镜像:sudo docker images

 

 >>>启动主hub 容器:sudo docker run -d -P --name selenium-hub selenium/hub

  • -d 表示容器以守护态(Daemonized)形式运行。
  • -P 表示 Docker 会随机映射一个 49000~49900 的端口到内部容器开放的网络端口。

>>> 启动分支node 容器 :sudo docker run -d --link selenium-hub:hub selenium/node-chrome

  • --link 通过 link 关联 selenium-hub 容器,并为其设置了别名hub

 >>>查看容器:docker ps  -a 

  * Selenium/hub 容器的端口号为 4444,对Ubuntu映射的端口为 32768,前面通过 -P 参数自动分配

>>> OK!环境搭建至此结束。使用  http://Linux外网地址:32768/grid/console  ; 查看环境

 

>>> 运行本地的测试脚本;

from selenium import webdriver
from time import sleep

driver = webdriver.Remote(
command_executor='http://Linux外网地址:32768/wd/hub',
desired_capabilities={'browserName': 'chrome'}
)

driver.get('https://www.baidu.com')

driver.find_element_by_id("kw").send_keys("selenium grid")
driver.find_element_by_id("su").click()
sleep(1)
driver.get_screenshot_as_file("result-1.png")
driver.quit()

整个执行不过是不可见的,因为他它的运行环境在Linux;要想知道他有没有执行,可以截图验证;

 

>>>如果执行过程中,发现报 Java 空指针异常的错误,请删除掉安装的容器和镜像文件,重新安装一次selenium/hub 和 selenium/node-chrome ;删除 请参考:停止、删除所有的docker容器和镜像

 

总结

  • 这是一个 cs架构的分布式测试模式,测试环境使用docker容器,更加稳定
  • 本地,只需要写好脚本。服务端的测试 镜像只需要一个 ,使用docker容器创建多个,不需要每个人都在本地搭建测试 环境。测试脚本更具有通用性,执行出错的几率降低
  • 分布式的好处是效率更高。比如,一个容器上执行创建企业的用例。另外一个容器上执行创建用户的用例,彼此互不干扰。避免流程性错误的出现

转载于:https://www.cnblogs.com/botoo/p/11044302.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值