Run Selenium in Linux Server

目的

最近公司发展比较快,业务规模迅速扩大,作为一个测试不希望研发的提测质量过低导致投入大量的时间重复去做冒烟测试
所以我希望用Selenium把冒烟测试自动化掉,在研发将自测环境部署完成之后自动执行冒烟脚本并反馈测试结果。
根据脚本执行结果决定本次迭代是否有效,这样可以节省研发和测试大量人力。

为什么不选择在Windows机器上面直接执行Selenium脚本呢?
1.被测程序安装在Linux Server上,使用Windows机器执行脚本必然需要一台额外的服务器资源
2.运行脚本的Windows服务器必然需要测试组去维护,研发自测在VDI内,测试不经常使用必然会加大维护成本

Docker-Selenium

SeleniumHQ官方项目:https://github.com/SeleniumHQ/docker-selenium
通过官方的文档,我们可以发现docker-selenium其实是使用了Selenium Grid
如果大家不知道什么是Selenium Grid可以网上搜一搜相关的资料,这里就不多做解释了。
  1. 下载selenium hub镜像
sudo docker pull selenium/hub
  1. 下载一个node镜像,这里以chrome为例
sudo docker pull selenium/node-chrome
  1. 查看下载的镜像
sudo docker images

在这里插入图片描述

  1. 运行Selenium hub容器
sudo docker run -d -p 8080:4444 --name selenium-hub selenium/hub
  1. 运行node chrome容器
sudo docker run -d --link selenium-hub:hub selenium/node-chrome
  1. 查看容器是否正常运行
sudo docker ps

在这里插入图片描述
调用链:Your Code ->Linux Server:8080 -> Selenium hub -> Node Chrome

创建测试脚本

由于不希望执行的Selenium脚本的执行还是依赖于部署环境的python,所以笔者把Selenium脚本丢到容器里面执行。
官方其实也提供了脚本的执行容器selenium/base,但是这个镜像是基于Java的,所以笔者在Docker hub上面找了一个Python的运行容器。
  1. 编写Selenium脚本(Demo.py)
from selenium import webdriver
from time import sleep

driver = webdriver.Remote(
command_executor='http://Linux Server IP:8080/wd/hub',
desired_capabilities={'browserName': 'chrome'}
)

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

driver.find_element_by_id("kw").send_keys("Hello World!")

sleep(1)

driver.get_screenshot_as_file("./baidu_img.png")

driver.quit()
print("test end")
  1. 下载Selenium-Python镜像
sudo docker pull ruelala/selenium-python
  1. 编写Dockerfile文件
FROM ruelala/selenium-python
Demo.py /selenium/docker/Demo.py
ENTRYPOINT ["/bin/sh"]
  1. 执行命令构建镜像
sudo docker build -t selenium-python:test .

在这里插入图片描述

  1. 运行selenium-python容器并启动测试脚本
sudo docker run -tid selenium-python:test

在这里插入图片描述

sudo docker exec 43a64d467ef3 python /selenium/docker/Demo.py


结果有正常返回,最后我们看下测试脚本里面的图来确认下是否真的跑了
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值