准备:

#请在此之前先了解,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(2)
driver.get_screenshot_as_file("result-1.png")
driver.quit()

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

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

总结

  • 这是一个 cs架构的分布式测试模式,测试环境使用docker容器创建,更加稳定,减少了搭建环境带来的脚本执行出错困扰

selenium===使用docker搭建selenium分布式测试环境的更多相关文章

  1. docker+selenium Grid搭建自动化分布式测试环境

    自动化测试需要考虑到兼容性的时候,之前的做法是每个执行机上安装不同版本的浏览器,实际上这样做会很浪费硬件资源,现在有了docker容器化技术,让一切变得简单. 工具清单: 语言:python 2.7 ...

  2. docker搭建一个渗透测试环境 bwapp为例

    bwapp是一个渗透测试靶场,他其中中含有100多个Web漏洞  基本涵盖了所有主要的已知Web漏洞,包括OWASP Top 10的各种 首先要去搜索一下  看一下有哪些镜像可以下载    docke ...

  3. 记录使用gogs,drone搭建自动部署测试环境

    使用gogs,drone,docker搭建自动部署测试环境 Gogs是一个使用go语言开发的自助git服务,支持所有平台 Docker是使用go开发的开源容器引擎 Drone是一个基于容器技术的持续集 ...

  4. selenium结合docker构建分布式测试环境

    selenium是目前web和app自动化测试的主要框架.对于web自动化测试而言,由于selenium2.0以后socker服务器由本地浏览器自己启动且直接通过浏览器原生API操作页面,故越来越多的 ...

  5. selenium 结合 docker 构建分布式测试环境 (初学者视角)

    前言:随着自动化测试越学越深,深深觉得有太多的东西需要总结. 1.记录下学习中遇到的坑,当做学习笔记.2.有前人路过看到文章中比较落后的做法,请务必一定要指教.(因为是初学者视角,很多东西只是走通而已 ...

  6. 用docker搭建selenium grid分布式环境实践之路

    最近需要测试zoom视频会议,同时模拟100个人加入会议.经过了解,zoom提供了直接通过url链接加入会议的方式(只能通过chrome浏览器或者FireFox浏览器,因为用的协议是webrtc). ...

  7. 使用docker搭建selenium grid 分布式环境

    本文章只做docker搭建selenium grid 分布式环境步骤说明,对于selenium grid中的参数.流程.原理等不做说明.selenium grid的详细情况可查看官方文档https:/ ...

  8. selenium之多线程启动grid分布式测试框架封装(四)

    九.工具类,启动所有远程服务的浏览器 在utils包中创建java类:LaunchAllRemoteBrowsers package com.lingfeng.utils; import java.n ...

  9. Docker搭建wordpress博客环境(Centos7)

    Docker搭建wordpress博客环境(Centos7) 升级系统 yum -y update 设置docker库 sudo yum install -y yum-utils sudo yum-c ...

随机推荐

  1. 团队第四次——Alpha版本的发布

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign/ 这个作业要求在哪里 https:// ...

  2. Element布局实现日历布局

    1.基于Bootstrap的栅格布局 <div id="home" style="margin-top: 60px;"> <div class ...

  3. 算法 dfs 二叉树的所有路径

    480. 二叉树的所有路径 给一棵二叉树,找出从根节点到叶子节点的所有路径. Example 样例 1: 输入:{1,2,3,#,5} 输出:["1->2->5",&q ...

  4. font-awesome图标显示问题解决方案

    font-awesome一个很强大的字体图标库.下载链接:http://fontawesome.dashgame.com/刚开始使用font-awesome的新手往往容易只引入一个css文件,这样就会 ...

  5. Convert.ToByte((int)val)

    static void Main(string[] args) { ; byte bit8 = Convert.ToByte((int)val); Console.WriteLine("[{ ...

  6. Gamification and Game-Based Learning

    https://uwaterloo.ca/centre-for-teaching-excellence/teaching-resources/teaching-tips/educational-tec ...

  7. python实现用户登录、注册实例

    python面向函数式编程,模拟用户登录验证.注册的代码实现. 主要有以下两个文件: 1.user.txt文档文件,相当于数据库的用户信息表,主要是记录用户名和密码. 注意:1)此文档需要与.py文件 ...

  8. cc2530的第二次实验,用按键控制流水灯

    按键控制流水灯 具体想要实现按一下按键,然后单片机的三个灯会以流水灯的形式都亮一遍 实验相关寄存器 实验相关电路 宏定义 #define uint unsigned int #define uchar ...

  9. netflix conductor 学习(一)docker-compose 运行

    为了方便学习以及使用netflix conductor 基于官方的dockerfile,构建了server 以及ui 的容器镜像并push dockerhub 环境准备 官方docker-compos ...

  10. json-server模拟服务器API

    一.npm安装 npm install --global json-server 二.使用:创建一个json数据文件,比如: { "students": [{ "id&q ...