Docker容器搭建Python+Jenkins+Selenium自动化测试

 

前言

使用Docker搭建Jenkins+python3+selenium项目,在Linux服务器上部署项目代码,实现自动构建。

解决方案
自动构建工具选型:jenkins
中间件选型:docker
代码运行环境:python3
脚本运行工具:chrome浏览器、chromedriver、selenium库

安装docker
linux系统中安装docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

docker镜像国内加速

  1. vim /etc/docker/daemon.json

  2. {

  3. "registry-mirrors": [

  4. "https://registry.docker-cn.com",

  5. "http://hub-mirror.c.163.com",

  6. "https://docker.mirrors.ustc.edu.cn"

  7. ]

  8. }

  9. # 重启服务

  10. systemctl daemon-reload

  11. systemctl restart docker

安装jenkins

在linux上任意路径,创建一个用于存放Jenkins文件的文件夹 “jenkins_py”

  1. mkdir jenkins_py

  2. docker run -itd --name=jenkins_py -p 8989:8080 -p 50001:50000 -v $PWD:/var/jenkins_home --privileged=true -u root jenkins/jenkins

访问 jenkins:http://ip:8989

请添加图片描述

出现输入密码页面时,获取密码:
方法1:

  1. # 进入容器

  2. docker exec -it -u root jenkins_py /bin/bash

  3. # 查看密码

  4. cat /var/jenkins_home/secrets/initialAdminPassword

方法2:

  1. # 在当前宿主linux机器上,进入前面自己创建的jenkins_py文件夹

  2. cd secrets

  3. cat initialAdminPassword

复制密码,填入web页面的密码框,在选择安装插件页面,点击安装推荐插件,等待插件自动安装

容器安装必要软件

进入容器

docker exec -it -u root jenkins_py /bin/bash

安装更新

  1. # 安装更新

  2. apt-get update

  3. # 查看系统

  4. cat /etc/issue

  5. # 此时容器默认的系统为 debain 9

  6. # debain默认的软件源非常慢, 可以更换为国内阿里源

  7. # 安装vim

  8. apt-get install -y vim

  9. apt-get install -y wget

  10. # 更换源为阿里源

  11. vim /etc/apt/sources.list

  12. deb http://mirrors.aliyun.com/debian/ stretch main non-free contrib

  13. deb-src http://mirrors.aliyun.com/debian/ stretch main non-free contrib

  14. deb http://mirrors.aliyun.com/debian-security stretch/updates main

  15. deb-src http://mirrors.aliyun.com/debian-security stretch/updates main

  16. deb http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib

  17. deb-src http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib

  18. deb http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib

  19. deb-src http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib

  20. # 更新系统

  21. apt-get update

  22. # 安装libssl-dev

  23. apt-get install libssl-dev

配置web自动化环境

下载浏览器
百度搜索"chrome for linux", 下载适合debain版本的chrome浏览器
把下载的文件上传到linux机器

下载浏览器驱动
下载chrome浏览器linux对应版本的驱动
把下载的文件上传到linux机器

Jenkins容器中,安装chrome浏览器

  1. # 把chrome文件,复制到上面创建的 jenkins_py 文件夹

  2. cp google-chrome-stable_current_amd64_85.0.4183.102.deb ./jenkins_py/

  3. # 进入容器

  4. docker exec -it -u root jenkins_py /bin/bash

  5. cd /var/jenkins_home

  6. chmod +x google-chrome-stable_current_amd64_85.0.4183.102.deb

  7. dpkg -i google-chrome-stable_current_amd64_85.0.4183.102.deb

配置浏览器驱动

  1. # 解压驱动zip包

  2. unzip chromedriver_linux64.zip

  3. # 拷贝到 jenkins_py文件夹

  4. cp chromedriver ./jenkins_py/

  5. # 进入容器

  6. docker exec -it -u root jenkins_py /bin/bash

  7. cd /var/jenkins_home

  8. chmod +x chromedriver

  9. mv chromedriver /usr/bin/

  10. cp /usr/bin/chromedriver /usr/local/bin/

安装python3

安装python3

apt-get install -y python3

安装pip

 
  1. # 下载pip

  2. wget https://bootstrap.pypa.io/get-pip.py

  3. python3 get-pip.py

  4. pip3 install --upgrade --force-reinstall setuptools

修改系统默认python版本为python3

 
  1. cd /usr/bin

  2. ls -l python*

  3. # 查看上面的python3的版本

  4. rm -rf python

  5. ln -s python3.5 pythonpython3.5

  6. # 修改为上面对于的python3版本* 修改pip源

修改pip源

 
  1. vim /etc/pip.conf

  2. [global]

  3. trusted-host = mirrors.aliyun.com

  4. index-url = http://mirrors.aliyun.com/pypi/simple/

jenkins 配置任务

创建任务

配置git

配置构建触发器(可选)

配置构建脚本

pip install -r requirements.txt 执行项目根目录中的requirements.txt文件,自动安装项目需要的库,这样就不用担心代码引入了新库,而Jenkins中不存在,导致报错了。

cp …/…/tools.ini $PWD/src/conf 拷贝配置文件。因为gitee托管项目时,没有提交ini带私密信息的配置文件

python main.py 用python执行项目
构建

注意: 用docker+jenkins来运行selenium的项目,是无图形界面的,所以项目中,浏览器必须采用无头模式

 
  1. # 参考代码

  2. self.options = ChromeOptions()

  3. self.options.add_argument('--headless')

  4. self.options.add_argument('--no-sandbox')

  5. self.options.add_argument('--disable-gpu')

  6. self.options.add_argument('--disable-dev-shm-usage')

  7. start_chrome(headless=True,options=self.options)

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值