博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Centos7,Docker-配置自动化环境镜像(python3.7+selenium 3.11+firefox 62+geckodriver 0.21)...
阅读量:5155 次
发布时间:2019-06-13

本文共 4850 字,大约阅读时间需要 16 分钟。

  最近在学习Docker,准备做自动化测试代码集成的功能。如下文章的前提是已经安装好linux系统,且成功安装好Docker。

接下来我会按步骤一步一步的对自动化需要的一些环境进行安装,如果没有特别说明,涉及到的目录都是在对应步骤下的目录。

软件环境配置如下:

docker安装在root权限下python 3.7.0selenium 3.11geckodriver 0.21.0    //将其放置于/usr/bin目录下(固定目录)firefox 62.0        //将其主目录添加至环境变量中

  

具体步骤如下:(在软件环境配置保持一致的前提下,只需要按照代码块中的代码一步一步进行执行,能生成一个docker镜像)

PS:1-11、14步都是在Docker的容器中安装,13步是在虚拟机上进行安装

1、打开虚拟机,进入终端,在官网上去拉一个centos系统

1 docker pull centos
拉一个纯净版的centos系统

代码实现如图所示:

PS:有时候使用docker会出现【Failed to restart dock.service: Unit not found.】,此时执行如下命令:

systemctl unmask docker.servicesystemctl unmask docker.socketsystemctl start docker.service

 2、找到你拉下来的centos,找到对应的image id

1 docker image ls
centos找到对应的image id

 3、运行对应iamge id(如我的是centos,对应的image id是5182)

1 docker run -it 5182 bash
运行image id,进入docker 容器

 4、此时已经进入到容器中,开始对自动化需要的内容进行安装,安装python3.7以前会有很多依赖,先安装依赖

代码中的依赖进行一条一条的安装:

1 安装前的准备(各种依赖及工具安装) 2 yum -y install gcc make 3 yum -y install libffi-devel 4 yum -y install zlib zlib-devel  5 yum -y install bzip2 bzip2-devel  6 yum -y install ncurses ncurses-devel  7 yum -y install readline readline-devel  8 yum -y install openssl openssl-devel  9 yum -y install openssl-static 10 yum -y install xz lzma xz-devel 11 yum -y install sqlite sqlite-devel 12 yum -y install gdbm gdbm-devel 13 yum -y install tk tk-devel
安装python前需要安装的各种依赖

5、centos这个系统是很干净的,并没有安装wget,如果需要对其他应用进行安装,需要先安装wget,再对其他应用进行安装

1 yum -y install wget
安装wget

6、python3.7.0安装后会出现ssl报错的问题,可以通过安装LibreSSL这种方式来解决(LibreSSL安装网址可以去官网中下载,下载你需要的版本,这里以2.8.0来举例)

 wget https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-2.8.0.tar.gz 

下载地址如下:

 

解压缩LibreSSL后,进入LibreSSL目录,进行配置文件修改,执行如下代码:

1 ./config --prefix=/usr/local/ssl   //放到/usr/local/ssl 路径 2 make & make install 3 mv /usr/bin/openssl /usr/bin/openssl.bak  4 mv /usr/include/openssl /usr/include/openssl.bak  5 ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl   //创建快捷方式 6 ln -s /usr/local/ssl/include/openssl /usr/include/openssl 7  8 进入如下目录: 9 cd /etc/ld.so.conf.d   //扩展centos默认访问库,使可访问libressl库文件10 11 新建文件 :12 vi libressl-2.8.0.conf 13 14 将以下行加入文件,并保存 :15 /usr/local/ssl/lib16 17 运行命令使生效:18 ldconfig19 20 编辑/etc/profile文件,新增如下环境变量:21 22   vi /etc/profile23 24 在profile文件中加入如下内容,并保存退出:25   export LDFLAGS="-L/usr/local/ssl/lib"26   export CPPFLAGS="-I/usr/local/ssl/include" //引号内第一个字母是大写i 27   export PKG_CONFIG_PATH="/usr/local/ssl/lib/pkgconfig"
进入LibreSSL安装目录,配置文件

7、一切的依赖都安装、配置完成后,开始安装python3.7.0

在python的官网下,去下载对应的版本,目前是python3.7.0

1 下载python3.7.0: 2 wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz 3  4 解压缩 : tar zxvf Python-3.7.0.tgz 5  6 //解压缩后,进入python3.7.0对应的目录,分别执行对应的命令: 7 cd python3.7.0 8  9 //配置安装目录,使其安装在/usr/local目录下,这样后面才能成功安装setuptools和pip10 ./configure --prefix=/usr/local --enable-shared CFLAGS=-fPIC  11 12 //安装 13 make & make install14 15 //创建快捷方式,是输入python时默认打开python3.7解释器,而不是系统默认的版本16 ln -s /usr/local/bin/python3.7 /usr/local/bin/python
下载python3.7.0并安装

8、由于后续安装setuptools、pip有其他的压缩包,比如unzip

安装zip压缩包:

1 yum install -y unzip zip
安装unzip

9、setuptools、pip下载、解压缩(工具包都是在官网中去下载的,如果网址不行,建议去官网中对应的版本进行下载)

1 下载setuptools: 2 wget https://files.pythonhosted.org/packages/6e/9c/6a003320b00ef237f94aa74e4ad66c57a7618f6c79d67527136e2544b728/setuptools-40.4.3.zip 3  4 解压缩: 5 unzip setuptools-40.4.3.zip 6  7 解压缩后,进入setuptools目录,安装setuptools: 8 cd setuptools-40.4.3 9 python setup.py build10 python setup.py install11 12 下载pip:13 wget https://files.pythonhosted.org/packages/69/81/52b68d0a4de760a2f1979b0931ba7889202f302072cc7a0d614211bc7579/pip-18.0.tar.gz14 解压缩:15 tar -zxvf pip-18.0.tar.gz16 17 解压缩后,进入pip目录,安装pip:18 cd pip-18.019 python setup.py build20 python setup.py install
安装setuptools、pip

10、自动化需要运行起来,首先需要在centos下安装虚拟桌面,目的是python去调用虚拟桌面接口

1 虚拟桌面安装:2 yum install Xvfb3 4 yum install gtk35 6 yum install libgtk-3.so.0
安装虚拟桌面

11、centos虚拟桌面安装完成后,自动化代码需要在无桌面环境运行起来,此时python需要先去调用虚拟桌面接口

1 配置Python环境:2 pip install xvfbwrapper   //安装调用虚拟桌面接口
python环境,配置虚拟桌面接口

配置虚拟桌面接口完成后, 在自动化代码中,需要引用如下代码才能生效:

代码引用: from xvfbwrapper import Xvfb vdisplay = Xvfb(width=1280, height=740) vdisplay.start() try:     # launch stuff inside virtual display here. finally:       vdisplay.stop()

12、安装selenium,根据我的环境配置,安装对应版本的selenium

 

pip install selenium==3.11
安装selenium 3.11

 

13、这一步,一定要注意,安装Firefox,前面11步都是在Docker容器中进行的,firefox在虚拟机上进行安装

1 A下载firefoxdirver(这是WEBDRIVER): 2 wget https://github.com/mozilla/geckodriver/releases/download/v0.21.0/geckodriver-v0.21.0-linux64.tar.gz 3  4 B解压缩: 5 tar -zxvf geckodriver-v0.21.0-linux64.tar.gz 6  7  C//将下载的driver放到python的交互式启动目录/usr/bin/下 8  9 10 D下载浏览器(这是浏览器,与WEBDRIVER是2个东西)11 wget http://ftp.mozilla.org/pub/firefox/releases/62.0/linux-x86_64/
下载浏览器驱动、浏览器

14、此时基本在容器中完成了自动化环境的配置,此时只需要Docker commit一个镜像

1 //查找容器ID2 docker container ls [-a] //-a显示所有状态的容器,包括停止,-a是可选的,如果不加,只显示当前运行中的容器3 //上面一步找到对应的容器ID,用commit命令可以生成一个镜像4 docker commit 容器ID
查找容器ID生成镜像

 

谢谢大家~如有错误,请见谅,目前处于学习阶段~

 

转载于:https://www.cnblogs.com/wendyw/p/9714215.html

你可能感兴趣的文章
优秀的持久层框架Mybatis,连接数据库快人一步
查看>>
PAT L2-016 愿天下有情人都是失散多年的兄妹
查看>>
抛弃IIS,利用FastCGI让Asp.net与Nginx在一起
查看>>
C. Tanya and Toys_模拟
查看>>
使用SwingWork反而阻塞SwingUI
查看>>
Windchill中如何扩展字段长度?
查看>>
pytorch中的forward前向传播机制
查看>>
课后作业-阅读任务-阅读提问-4
查看>>
Delphi 深入浅出VCL(2)-TObject所有对象的根
查看>>
配置IIS虚拟目录遇到的5个问题
查看>>
2-03顺序表的操作
查看>>
耿丹CS16-2班第一次作业汇总
查看>>
查看mysql表大小
查看>>
命令行程序测试自动化
查看>>
My Blog
查看>>
array_reduce() 与 array_map()
查看>>
SASS实现代码的重用:混合器Mixin、继承
查看>>
《windows核心编程系列》三谈谈内核对象及句柄的本质
查看>>
Linux下安装maven
查看>>
使用OpenMP实现并行归并排序(Report)
查看>>