zalenium是一个Selenium Grid扩展,用Docker容器动态扩展你的本地网格。它使用docker-selenium在本地运行Firefox和Chrome中的测试,如果需要不同的浏览器,你的测试可以重定向到云测试提供商(Sauce Labs,BrowserStack,TestingBot)。 Zalenium也可以在Kubernetes中使用。

繁杂的问题:

  • 有一个稳定的网格来运行Selenium的UI测试
  • 随着时间的推移保持它(跟上新的浏览器,Selenium和驱动程序版本)
  • 提供涵盖所有浏览器和平台的功能

这就是为什么开发zalenium的原因,在需求中创建了docker-selenium节点。在Firefox和Chrome中进行的UI测试将运行得更快,因为它们在本地网格上运行,在从头开始创建并在测试完成后处理的节点上运行。

如果需要docker-selenium无法实现的功能,测试会重定向到云测试提供程序(Sauce Labs,BrowserStack,TestingBot)。

Zalenium的主要目标是:允许任何人拥有一次性和灵活的Selenium Grid基础设施。

### zalenium的由来

由Zalando和Selenium两个单词组成。如前所述,这个项目的目的是提供一个简单的方法来创建一个Grid,并服务于Selenium社区。不过,这不是一个正式的Selenium项目。

注:Zalando只是一个电商平台。Zalenium由该平台的研发团队开发与维护。

### 安装

如果你从未安装和使用过Docker ,请参考 Docker教程

1、安装Docker Engin,版本 > = 1.11.1(可能适用于早期版本,尚未测试)。

2、docker daemon 正在运行(例如,docker info可以正常工作)。

3、拉取 docker-selenium镜像。

$ sudo docker pull elgalu/selenium

注:这里拉取的是非官方的docker-selenium镜像。

4、拉取zalenium镜像。

$ sudo docker pull dosel/zalenium

速度太慢,可以使用国内镜像:

https://www.docker-cn.com/registry-mirror

查看镜像:

$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
elgalu/selenium latest 9d39de56e57b 3 days ago 1.4GB
dosel/zalenium latest e5a39a962b2c 8 days ago 746MB

### 运行

Zalenium使用docker来按需扩展,因此我们需要为docker.sock提供完全的访问权限,这就是所谓的“Docker alongside docker”。

docker run --rm -ti --name zalenium -p 4444:4444 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /tmp/videos:/home/seluser/videos \
--privileged dosel/zalenium start

--privileged 为可选项,建议运行zalenium的privileged参数,通过Haveged增加熵(entropy)水平节点注册过程的速度。因为它可以提高性能。

准备测试脚本

grid_demo.py

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')
driver.find_element_by_id("kw").send_keys("docker selenium")
driver.find_element_by_id("su").click()
sleep(1)
driver.quit()

现在可以运行测试了,通过 http://localhost:4444/wd/hub 主节点。

$ python3 grid_demo.py

### 附加属性

相比于官方的docker-selenium,zalenium最直观的感受的就在此处。

通过浏览器后台执行Selenium总有一种不安全的感觉,zalenium可以将脚本的执行录制成视频,供你回放观看。不过,我这里提示:“没有找到支持的视频格式和MIME类型”也许是因为我的Ubuntu没有安装视频播放器。好在还有Logs可以查看。

视频录制,默认在/tmp/videos文件夹可以找到保存的视频。

当运行测试脚本的过程中,可以通过该页面观看脚本的执行过程,这功能还是666的。

更多用法:

https://zalando.github.io/zalenium/#usage

zalenium 应用的更多相关文章

  1. 自动化测试平台环境docker部署

    参考资料:testin云测 https://www.testin.cn接口自动化测试平台:http://120.79.232.23星云测试 http://www.threadingtest.com腾讯 ...

  2. Python自动化测试面试题-Selenium篇

    目录 Python自动化测试面试题-经验篇 Python自动化测试面试题-用例设计篇 Python自动化测试面试题-Linux篇 Python自动化测试面试题-MySQL篇 Python自动化测试面试 ...

  3. selenium 4.0 发布

    我们非常高兴地宣布Selenium 4的发布.这适用于Java..net.Python.Ruby和Javascript.你可以从你最喜欢的包管理器或GitHub下载它! https://github. ...

随机推荐

  1. [51nod1532]带可选字符的多字符串匹配

    有一个文本串,它的长度为m (1 <= m <= 2000000),现在想找出其中所有的符合特定模式的子串位置. 符合特定模式是指,该子串的长度为n (1 <= n <= 50 ...

  2. 2017ecjtu-summer training #7 POJ 2689

    Prime Distance Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 18731   Accepted: 5006 D ...

  3. vue实现侧边栏手风琴效果

    模板 代码如下 html <template> <div class="header"> <ul> <!-- 循环数据在点击调用chang ...

  4. Java本地缓存解决方案其一(使用Google的CacheBuilder)

    前不久,业务实现上需要用到本地缓存来解决一些数据量相对较小但是频繁访问的数据,通过查找各种资料,找到了一种可以实现的方案--采用的是Google的CacheBuilder.下面是代码实现过程:1.首先 ...

  5. Spark算子--first、count、reduce、collect、lookup

    转载请标明出处http://www.cnblogs.com/haozhengfei/p/4b8582c8dde1529abb11e4ccc8296171.html first.count.reduce ...

  6. win7下IIS的安装和配置

    win7下IIS的安装和配置 图文教程,需要的朋友可以参考下 http://www.jb51.net/article/29787.htm 最近工作需要IIS,自己的电脑又是Windows7系统,找了下 ...

  7. Core Graphics 和Quartz 2D的区别

    quartz是一个通用的术语,用于描述在IOS和MAC OS X中整个媒体层用到的多种技术 包括图形.动画.音频.适配.  Quart 2D 是一组二位绘图和渲染API,Core Graphic会使用 ...

  8. ArrayList 源码详细分析

    1.概述 ArrayList 是一种变长的集合类,基于定长数组实现.ArrayList 允许空值和重复元素,当往 ArrayList 中添加的元素数量大于其底层数组容量时,其会通过扩容机制重新生成一个 ...

  9. bootstrap 响应式图片自适应图片大小

    <img src="..." class="img-responsive center-block" > 或者 $(window).load(fun ...

  10. JavaScript的三种类型检测typeof , instanceof , toString比较

    1.typeof typeof是js的一个操作符,在类型检测中,几乎没有任何用处. typeof 返回一个表达式的数据类型的字符串,返回结果为javascript中的基本数据类型,包括:number. ...