Linux通过docker + Jenkins+selenium grid实现自动化测试

敏捷测试 迭代版本更新版本更快

自动化快速迭代
自动化
冒烟用例——自动化
回归用例——自动化

已发布版本——自动化去跑自动化
没跑完一次,邮件发送结果,失败重复跑的次数

CI:持续集成
	持续构建自动部署环境和执行测试——Jenkins

CD:持续交付
	在灰度环境上面做持续构建自动部署环境和执行测试

docker:
虚拟机,Windows机器上面,虚拟机装一个linux环境

Windows上装5个虚拟机,虚拟机里面运行进程或者是应用,相互独立,互不干扰
卸载,安装,运行,不影响我Windows机器

docker就类似虚拟机的一个概念,少到装一个应用,把应用打包成一个容器,服务,通过安装运行服务来运行我们的应用和工程

传统的发布环境:需要安装指定的测试库,把代码部署到服务器上面,改配置文件,跑脚本,起服务

打包成一个镜像,打包成一个jar包,上传到我们远程仓库里面,我们测试,直接通过Jenkins从远程仓库下载到Linux,然后通过docker命令运行

web自动化和APP自动化
Linux上没有浏览器,和APP运行的环境
APP自动化——APP desktop

Linux通过docker + Jenkins+selenium grid实现自动化测试_第1张图片

下载selenium grid

selenium-server-standalone-3.141.59.jar

下载docker

安装必要的软件包

sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

设置下载的镜像仓库

sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

列出需要安装的版本列表

yum list docker-ce --showduplicates | sort -r

安装指定版本

有问题

yum -y install vim*
yum update -y
sudo yum install-docker-ce-18.06.1.ce
sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
sudo yum install docker-ce docker-ce-cli containerd.io 安装最新版本

查看版本

docker -v

启动docker

sudo systemctl start docker  启动
sudo systemctl enable docker 设置开机启动

添加阿里云镜像下载地址

vi /etc/docker/daemon.json

:[“阿里云镜像下载地址”]

Linux通过docker + Jenkins+selenium grid实现自动化测试_第2张图片

docker镜像命令

docker search 镜像名称  搜索镜像
docker pull 镜像名称    拉取镜像
docker images          查看本地镜像
docker rmi -f 镜像名称  删除镜像

查找镜像
Linux通过docker + Jenkins+selenium grid实现自动化测试_第3张图片

Linux通过docker + Jenkins+selenium grid实现自动化测试_第4张图片
Linux上运行自动化,首先要考虑浏览器和驱动的问题;
我们可以通过docker容器,安装浏览器和浏览器驱动镜像来解决这个问题。

下载镜像

docker pull + 镜像名称 + tag

# 主hub
docker pull selenium/hub

# node节点
docker pull selenium/node-chrome

# selenium/node-chrome-debug VNC Server
docker pull selenium/node-chrome-debug
下载之前,先注册docker账号:https://hub.docker.com/
然后使用:docker login登录,可以使用docker logout

查看本地镜像
在这里插入图片描述

docker images

启动容器

# 主hub
# -P:将容器端口映射到docker主机的一个随机端口上
# --name:重命名,便于管理
docker run -d -p 4444:4444 --name hub selenium/hub
# node节点
# --link:关联到hub主节点
docker run -d -p 5900:5900 --name node1 --link hub  selenium/node-chrome
# chrome-debug容器
docker run -d -p 5901:5900 --name node2 --link hub selenium/node-chrome-debug

进入容器

docker exec -it 容器名 /bin/bash

停止所有容器

docker stop $(docker ps -a -q)

删除所有容器

docker rm $(docker ps -a -q)
docker rm 容器ID	删除单个容器

查看正在运行的容器

docker ps
docker ps -a 查看所有容器

Linux通过docker + Jenkins+selenium grid实现自动化测试_第5张图片

删除一个或多个容器

docker rm -f ID
docker image -q 			列出所有镜像ID
docker rmi 容器id			删除一个镜像
docker rmi `docker image -q` 删除所有镜像

说明:
-d参数:后台模式运行;
–name参数:别名;
-p参数:将容器的5900端口映射到docker的5901端口,访问Docker的5901端口即可访问到node容器;
–shm-size参数:docker默认的共享内存/dev/shm只有64m,有时导致chrome崩溃,该参数增加共享内存大小到512m.*

docker logs -f selehub:查看日志
在浏览器输入:主机ip:4444/grid/console

Linux通过docker + Jenkins+selenium grid实现自动化测试_第6张图片

下载VNC客户端:https://www.realvnc.com/en/connect/download/vnc/
1、新建连接
2、输入Docker 主机IP + chrome-debug映射在Docker 主机的端口号–>回车–>输入密码:secret–>确认–>进入chrome

部署自动化工程

docker bulid -t webtest	 命令构建一个名字为webtest的镜像,构建完成后返回一个镜像id
docker build -t web/autotest 	镜像名称必须需要小写
docker push username/repository:tag	//上传镜像
docker container run web/autotest

下载Jenkins

你可能感兴趣的:(Linux,jenkins,linux,docker)