Selenium Docker的Grid方式进行自动化测试

news/2024/7/5 9:25:05

为什么80%的码农都做不了架构师?>>>   hot3.png

问题

最新想通过界面批量输入数据到系统里面。

思路

使用自动化测试工具解决这个批量操作到问题。

Selenium

镜像

  • selenium/hub
  • selenium/node-chrome 他们两者之间的关系,就是hub是管理者,node-chrome是被管理者。hub管理这所有测试集群的容器进程。如下图:

关系图

这里我们只使用这个两个镜像进行使用,开始安装镜像,这里假设本地已经完成了docker的安装:

docker pull selenium/hub
docker pull selenium/node-chrome

访问Docker Hub访问,找到相关命令行进行安装。

Hub

docker run -d -p 4444:4444 --name selenium-hub selenium/hub

Node

docker run -d --link selenium-hub:hub selenium/node-chrome

检查

通过打开http://127.0.0.1:4444/grid/console链接界面来检查Hub和Node是否正常启动。

检查Node

上面表示Node,已经连接上了Hub。

Python测试


from selenium import webdriver
from time import sleep

driver = webdriver.Remote(
command_executor='http://127.0.0.1:4444/wd/hub',
desired_capabilities={'browserName': 'chrome'}
)

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

driver.find_element_by_id("kw").send_keys("docker selenium")
driver.find_element_by_id("su").click()

sleep(3)

driver.get_screenshot_as_file("baidu_img.png")

driver.quit()
print("end...")

这主要通过保存的baidu_img.png图片来查看自动化测试是否运行成功。

总结

SeleniumHQ支持的语言真的多。SeleniumHQ的的集群模式只能用node开头的镜像才能够使用。

参考

  • SeleniumHQ/docker-selenium
  • Docker Hub
  • seleniumhq官网
  • An Introduction to Using Selenium-Docker Containers for End-to-End Testing
  • Docker Selenium

转载于:https://my.oschina.net/fxtxz2/blog/3051812


http://www.niftyadmin.cn/n/4072654.html

相关文章

html js实现tab代码,原生JS代码实现自动TAB切换(原创)

//声明变量var main byId("main"),index 0,nav byId("nav"),tabs nav.getElementsByTagName("span"),banner byId("banner"),pics banner.getElementsByTagName("div"),len tabs.length;//封装getElementById函数fun…

ospf相关知识整理

OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现&#…

江民KV2008离线包和安装包下载 2007-12-24

江民KV2008离线包和安装包下载专区最新病毒库日期(智能升级):src"http://forum.jiangmin.com/BingDuKuRiQi1.asp?yansered" frameborder"no" width"100%" scrolling"no" height"22">离…

作业22-管理信息系统的开发与管理

带label的文本输入区域<label for""></label><textarea " id""></textarea> <div class"form-group"><label for"questionTitle">标题<br></label><textarea id"questi…

vista简体中文旗舰版(64位+32位)DVD光盘

图片&#xff1a; 图片&#xff1a; 图片&#xff1a; 图片&#xff1a; 图片&#xff1a; 图片&#xff1a; 32位版本&#xff1a;ftp://202.107.238.221/Share/System/Vista/cn_windows_vista_x86_dvd_X12-59648.iso 64位版本&#xff1a;ftp://202.107.238.221/Share/Syste…

Cocos2d-x移植android增加震动效果

cpp部分通过jni调用java静态函数 头文件&#xff1a; #include <jni.h> #include "cocos2d.h" #include "platform/android/jni/JniHelper.h" 在cpp类中定义方法去调用Cocos2dxSound.java中vibrate方法&#xff1a; static void vibrateJNI(long lon…

09-面向对象课堂笔记

复习 1.random random() | randint() | choice() | sample() 2.序列化&#xff1a;obj>str 反&#xff1a;str>obj 存储与传输采用的都是字符串类型 json&#xff1a;跨语言用于传输 -- 只有一个根&#xff1a;单一数据 | {}包裹的数据 | []包裹的数据 -- 复杂的数据都…

托盘图标提示

托盘图标提示[ 源文作者yefanqiu,由test发表于2004-10-17 19:19:11]     窗体代码 ************************************************************************* **模 块 名&#xff1a;frmTest **说 明&#xff1a;YFsoft 版权所有2004 - 2005(C) **创 建 人&#xff1…