基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程

这篇具有很好参考价值的文章主要介绍了基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 Jenkins是什么?

  • 学习官网:Jenkins官网,Jenkins中文官网;
  • Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件;
  • Java语言编写的,可在TomcatDocker等流行的容器中运行,也可独立运行。

通俗的讲,比如把编译、打包、上传、部署到Tomcat中的过程交由Jenkins,Jenkins通过给定的代码地址URL(代码仓库地址),将代码拉取到其“宿主服务器”(Jenkins的安装位置),进行编译、打包和发布到Tomcat容器中。

2 Jenkins目标是什么?

  • 持续、自动地构建软件项目或者自动化测试项目;
  • 帮助快速定位问题,提升开发效率;
  • 自动化测试中可帮助提升测试效率。

3 什么是CI/CD?

3.1 CI持续集成

  • CI:即Continuous integration持续集成;
  • 强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起;
  • 团队需要为每个新功能、代码改进、或者问题修复创建自动化测试用例;
  • 需要一个持续集成服务器,它可以监控代码提交情况,对每个新的提交进行自动化测试;
  • 尽可能快的提交代码;
  • 以下图片来源于网络,可帮助理解,仅供参考:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
  • 优势:

① 提早拿到回归测试的结果,避免问题到生产环境中;
② 发布编译将会更加容易;
③ 减少工作问题切换,快速获得构建失败的消息,快速解决问题;
④ 测试成本大幅降低,包括时间和人力成本等;
⑤ 节省QA团队时间,侧重质量文化建设。

3.2 CD持续部署

  • CD:即continuous deployment持续部署;

  • 通过自动化的构建、测试和部署循环来快速交付高质量的产品;

  • 团队应具有完善的测试理念;

  • 单元测试尤为重要;

  • 文档和部署频率需要保持一致;

  • 优势:

① 发布频率快;
② 风险降低,问题可很快修复;
③ 客户可很快看到产品的交付结果。

3.3 CD持续交付

  • CD:即Continuous Delivery持续交付;
  • 可让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定、持续的保持在随时可以释出的状况;
  • 在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中;
  • 目标在于让软件的构建、测试与释出变得更快以及更频繁;
  • 需要有强大的持续集成组件和足够多的测试项可以满足代码的需求;
  • 部署需要自动化;
  • 以下图片来源与网络,仅供参考:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

4 Ubuntu环境

4.1 环境需求

  • 我的环境是:

在Windows10操作系统上安装虚拟机Hyper-V,然后在虚拟机里安装Ubuntu操作系统,自动化测试在Ubuntu上运行;

  • 后续根据自身的环境选择合适的安装步骤,如果是以上环境,可参考以下:
    LinuxGUI自动化测试框架搭建(三)-虚拟机安装(Hyper-V或者VMWare)
# 我们的环境是:
1、Linux服务器一台(我的是Ubuntu),在虚拟机中的,哈哈
2、在服务器上正确安装docker
3、拉取jenkins镜像:jenkins/jenkins:lts
4、拉取python3镜像:docker pull python:3.7

4.2 实现思路

1、在Linux服务器安装docker;
2、创建jenkins容器;
3、根据自动化项目依赖包构建python镜像(构建自动化python环境);
4、运行新的python容器,执行jenkins从仓库中拉下来的自动化项目
5、执行完成之后删除容器。

5 Ubuntu下安装Docker

  • 详细的安装步骤请参考:Docker笔记3 | 在Ubuntu下安装Docker;
  • 此处不再赘述了。

6 安装Jenkins

6.1 拉取Jenkins镜像

  • 使用docker拉取Jenkins镜像:
docker pull jenkins/jenkins:lts

基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

6.2 启动Jenkins

docker run 
-dit 
--name=jenkins
-p 8080:8080 
-u=root 
-v /var/run/docker.sock:/var/run/docker.sock 
-v /usr/bin/docker:/usr/bin/docker 
jenkins/jenkins:lts
  • 参数说明:
参数说明
-i:表示运行容器
-t:表示容器启动后会进入其命令行
-d:守护式方式创建容器在后台运行
--name:容器名称
-p 8080:8080:端口映射,宿主机端口:jenkins容器端口
-u=root:指定容器用户为root用户
-v /var/run/docker.sock:/var/run/docker.sock:将docker.sock映射到jenkins容器中
docker.sock文件是docker client与docker daemon通讯的文件
-v /usr/bin/docker:/usr/bin/docker:将宿主机docker客户端映射到jenkins容器中

基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

6.3 修改jenkins权限

  • 如果docker安装jenkins运行失败;
  • 查看日志提示权限不够:
docker logs jenkin
  • 则修改以上目录/var/jenkins_home 的权限:
chown -R 1000 /var/jenkins_home 
  • 或者运行容器时,以root权限运行,加-u=root

  • 浏览器输入地址:8080即可:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

7 Jenkins初始配置

7.1 查看容器日志

docker logs jenkins

基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

  • 以上就是我们的jenkins密码,复制后解锁即可;
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

7.2 插件选择

  • 进入如下页面:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
  • 如下会进行插件安装,如果报错,点重试即可:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

7.3 创建管理员用户

  • 插件安装完进入如下界面:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
  • 记住自己填的用户名和密码,然后保存继续;
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
  • 继续保存进行下一步。
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

7.4 安装插件

7.4.1 git插件安装

  • 我们之前插件安装的时候,选的是默认插件安装,那么git插件已经是安装好了的,可从以下图示查看:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

  • 点击【install plugins】可以查看已经安装的插件:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

  • 点击【available plugins】可选择下载自己需要的插件,这里我安装下gitee
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

7.4.2 Docker插件安装

  • 如下搜索docker安装即可:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

  • 安装完后,如下所示:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

7.4.3 HTML Publisher插件安装

  • 如下搜索:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

7.4.4 Email Extension插件安装

  • 如下所示:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

7.4.5 JDK、Maven、SSH插件(可选)

  • 安装JDK
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
  • 输入账号和密码:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
  • 安装maven
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
  • 配置SSH
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
  • 设置主机和端口,点击【添加】:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
  • 如果添加无反应,点击右上角的用户名添加一个即可:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
  • 可以自行尝试是否ok即可。

以上步骤完成后,安装完成后重启jenkins容器

docker restart jenkins

基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

8 Jenkins详细配置

8.1 新建任务

  • 重新登陆jenkins,点New Item如图:

基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

  • 输入项目名称,构建方式根据自己项目选择即可,我这里直接选第一个(创建自由风格的项目):
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

8.2 配置任务

8.2.1 配置构建记录保留规则

  • General选项中,设置如下:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

8.2.2 Git仓库配置

  • 输入git仓库的地址、账号和密码:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

8.2.3 配置构建后操作

  • 添加构建后操作模块,linux下选shell:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

  • 配置运行脚本:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

  • 配置jenkins中展示的测试报告路径:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

  • 配置邮件触发器:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

  • 与以上步骤完成后,保存即可。

8.3 配置邮件

  • jenkins管理-系统配置-Jenkins Location。在系统管理员邮件地址,输入对应的邮件地址:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
  • jenkins管理-系统配置-Extended E-mail Notification,填写对应的smtp服务器相关内容,点击高级,输入对应的邮箱地址和smtp登录的授权码,勾选ssl

基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

  • 配置邮件触发器:jenkins管理-系统配置-Default Triggers,默认是勾选失败才发,可以配置总是发送(或根据需求勾选),那么每次运行项目时都会发送邮件。
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

9 构建python镜像

9.1 导出依赖包

  • 构建有项目执行环境的python镜像;
  • 在本地Python运行环境中将项目依赖包导出来到requirements.txt文件中;
pip freeze > requirements.txt
  • 我的如下:
adbutils==0.11.0
alembic==1.6.5
allure-pytest==2.8.12
allure-python-commons==2.8.12
altgraph==0.17.2
amqp==5.0.6
anyjson==0.3.3
apipkg==1.5
apkutils2==1.0.0
Appium-Python-Client==0.50
asgiref==3.3.1
atomicwrites==1.4.0
attrs==20.3.0
BeautifulReport==0.1.3
beautifulsoup4==4.9.3
billiard==3.6.4.0
blinker==1.4
cached-property==1.5.2
celery==5.0.5
certifi==2020.12.5
cffi==1.14.5
chardet==3.0.4
cigam==0.0.3
click==7.1.2
click-didyoumean==0.0.3
click-plugins==1.1.1
click-repl==0.2.0
colorama==0.4.4
comtypes==1.1.8
configparser==5.0.2
coreapi==2.3.3
coreschema==0.0.4
coverage==5.5
cryptography==3.2.1
cycler==0.10.0
DataRecorder==3.2.2
ddt==1.4.2
decorator==5.0.9
defusedxml==0.7.1
Deprecated==1.2.12
deprecation==2.1.0
diff-match-patch==20200713
Django==2.2.16
django-bootstrap==0.2.4
django-bootstrap3==15.0.0
django-bootstrap4==2.3.1
django-celery==3.3.1
django-celery-beat==2.2.0
django-ckeditor==6.1.0
django-cors-headers==3.7.0
django-crispy-forms==1.12.0
django-crontab==0.7.1
django-filter==2.4.0
django-haystack==3.0
django-import-export==2.5.0
django-js-asset==1.2.2
django-mdeditor==0.1.18
django-ranged-response==0.2.0
django-redis==4.12.1
django-rest-framework-mongoengine==3.4.1
django-simple-captcha==0.5.13
django-simpleui==2021.6.2
django-timezone-field==4.1.2
django-tinymce==3.3.0
djangorestframework==3.12.2
djangorestframework-jwt==1.11.0
dnspython==1.16.0
docopt==0.6.2
docutils==0.17.1
dogtail==0.9.10
dominate==2.6.0
DownloadKit==0.5.0
drf-extensions==0.7.0
drf-haystack==1.8.10
DrissionPage==3.1.1
easygui==0.98.2
elasticsearch==2.4.1
et-xmlfile==1.0.1
eventlet==0.30.2
execnet==1.8.0
facebook-wda==1.4.3
filelock==3.0.12
Flask==1.1.2
Flask-Bootstrap==3.3.7.0
Flask-Excel==0.0.7
Flask-Login==0.5.0
Flask-Mail==0.9.1
Flask-Migrate==2.0.0
Flask-Moment==1.0.1
Flask-Script==2.0.5
Flask-SQLAlchemy==2.4.4
FlowViewer==0.2.2
freetype-py==2.2.0
fsspec==2022.8.2
future==0.18.2
greenlet==1.1.0
HTMLReport==2.3.1
idna==2.10
importlib-metadata==2.1.1
iniconfig==1.1.1
itsdangerous==1.1.0
itypes==1.2.0
jdcal==1.4.1
Jinja2==2.11.2
jsonpath==0.82
kiwisolver==1.3.1
kombu==5.1.0
lml==0.1.0
loguru==0.7.0
logzero==1.7.0
lxml==4.6.3
Mako==1.1.4
Markdown==3.3.4
MarkupPy==1.14
MarkupSafe==1.1.1
matplotlib==3.3.3
mock==3.0.5
mongoengine==0.22.1
more-itertools==8.7.0
mpmath==1.2.1
mutagen==1.44.0
mysql-connector==2.2.9
mysqlclient==2.0.3
numpy @ file:///C:/Users/Administrator/Downloads/numpy-1.21.0-cp37-cp37m-win_amd64.whl
odfpy==1.4.1
opencv-python==4.7.0.72
openpyxl==3.0.5
packaging==20.8
pandas==1.1.5
ParamUnittest==0.2
pefile==2021.9.3
Pillow==8.3.1
pipreqs==0.4.11
pluggy==0.13.1
progress==1.6
prompt-toolkit==3.0.19
psutil==5.8.0
py==1.10.0
pyasn1==0.4.8
pycparser==2.20
pycryptodomex==3.9.4
pyelftools==0.27
pyexcel==0.6.6
pyexcel-io==0.6.4
pyexcel-webio==0.1.4
pyexcel-xlsx==0.6.0
pygame==2.0.1
Pygments==2.9.0
pyinstaller==4.10
pyinstaller-hooks-contrib==2022.2
PyJWT==1.7.1
pymongo==3.11.3
PyMySQL==0.10.1
PyOpenGL==3.1.5
pyOpenSSL==19.1.0
pyparsing==2.4.7
PyQt5==5.15.4
pyqt5-plugins==5.15.4.2.2
PyQt5-Qt5==5.15.2
PyQt5-sip==12.11.0
pyqt5-tools==5.15.4.3.2
pytest==6.2.4
pytest-assume==2.4.3
pytest-cov==2.8.1
pytest-forked==1.1.3
pytest-html==2.0.1
pytest-ignore-flaky==2.0.0
pytest-metadata==1.8.0
pytest-ordering==0.6
pytest-repeat==0.9.1
pytest-rerunfailures==10.3
pytest-xdist==1.31.0
python-alipay-sdk==3.0.1
python-crontab==2.5.1
python-dateutil==2.8.1
python-dotenv==0.21.0
python-editor==1.0.4
pythonnet==2.5.1
pytz==2021.1
pywebview==3.4
pywin32==300
pywin32-ctypes==0.2.0
pywinauto==0.6.8
PyYAML==6.0
QQLoginTool==0.3.0
qt5-applications==5.15.2.2.2
qt5-tools==5.15.2.1.2
redis==3.5.3
requests==2.24.0
requests-file==1.5.1
retry==0.9.2
rsa==4.8
ruamel.yaml==0.17.21
ruamel.yaml.clib==0.2.7
scipy @ file:///C:/Users/Administrator/Downloads/scipy-1.7.0-cp37-cp37m-win_amd64.whl
selenium==3.141.0
Serializer==0.2.1
simplejson==3.17.2
six==1.15.0
sklearn==0.0.post5
soupsieve==2.0.1
SQLAlchemy==1.3.20
sqlparse==0.4.1
sympy==1.7.1
tablib==3.0.0
texttable==1.6.3
tldextract==3.4.0
toml==0.10.2
tornado==6.1
turtle==0.0.2
Twisted==20.3.0
ua-parser==0.10.0
uiautomation==2.0.10
uiautomator2==2.16.7
uritemplate==3.0.1
urllib3==1.25.11
user-agents==2.2.0
vine==5.0.0
visitor==0.1.3
wcwidth==0.2.5
websocket-client==1.5.0
weditor==0.6.4
Werkzeug==1.0.1
whichcraft==0.6.1
win32-setctime==1.1.0
WMI==1.5.1
wordninja==2.0.0
wrapt==1.12.1
wxgl==0.7.2
wxPython==4.1.1
xlrd==1.2.0
xlrd2==1.2.6
XlsxWriter==3.0.2
xlutils==2.0.0
xlwings==0.21.4
xlwt==1.3.0
xmltodict==0.12.0
yarg==0.1.9
zipfile37==0.1.3
zipp==1.2.0
  • 其实要不了这么多,看你项目需要吧,也可以进入项目根目录,使用以下命令导出项目的依赖包:
pipreqs . --encoding=utf8 --force

9.2 创建app目录

  • 在宿主机(安装docker的机子)上新建一个目录(我的目录是在我的家目录下创建app),将requirements.txt文件复制进去:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

9.3 创建Dockerfile

  • app目录下创建Dockerfile文件(文件名必须是Dockerfile,没有后缀)
    Dockerfile内容以及解释如下:
FROM python:3.7  #基于python:3.7这个基础镜像镜像构建镜像 
WORKDIR /home/noamanelson/app   #切换工作空间目录 
ADD ./requirements.txt /home/noamanelson/app #将python项目依赖包文件添加到镜像 
RUN pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple #安装依赖包 
CMD ["python3", "main.py"] #设置容器执行后自动执行的命令,这里start_all.py是我们自动化框架的执行入口文件

9.4 执行镜像构建命令

  • app目录下执行镜像构建命令(此步骤也可以放到build.sh,每次jenkins构建时重新构建镜像,但是速度会慢,所以如果环境稳定的话建议提前构建好)
docker build -t python3.7:autopy .

-t:镜像名称
点(.):点表示Dockerfile文件所在的目录,我现在在app目录下,点表示当前目录

  • 构建成功后会看到一个新的镜像:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

10 build.sh设计

  • build.sh内容如下,注释要另起一行写:
echo "运行容器python执行自动化"  
#输出日志
#-w=$WORKSPACE:指定workspace
#--volumes-from=jenkins_save01:将jenkins容器中的workspace映射到python容器中,此时jenkins中git拉下来的代码就会被映射进去
docker run --rm -w=$WORKSPACE --volumes-from=jenkins python3.7:autopy
echo "python执行自动化执行成功"
  • build.sh复制到你的项目根目录下:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
  • 提交代码到Git仓库:
 git add .
 git commit -am'update'
 git push 

11 构建任务

  • 之前我们已经创建了任务:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
  • 立即构建:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
  • 构建历史:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
  • 控制台输出:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
  • 查看测试报告会没有样式,因为被Jenkins禁用了CSS样式,需要手动解决:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

12 解决报告样式

基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

  • 写入如下代码:
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")

基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

  • 执行后结果为空说明是ok的;
  • 重新构建可以看到有样式的测试报告:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
  • 上边这个方法只是临时的,jenkins重启又得设置,所以安装Groovy插件可以永久解决这个问题:
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD
    基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD

13 查看邮件

  • 从图上看邮件也是ok的;

基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程,# Python,# Jenkins,# CI/CD,jenkins,python,ubuntu,CI,CD文章来源地址https://www.toymoban.com/news/detail-645625.html

到了这里,关于基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • jenkins实现接口自动化持续集成(python+pytest+ Allure+git)

    在用python做自动化测试时,我们写好代码,然后需要执行才能得到测试报告,这时我们可以通过 Jenkins 来进一步完成自动化工作。借助Jenkins,我们可以结合 Git/SVN 自动拉取代码,通过设置定时构建实现自动触发脚本执行,得到测试报告,最后还可以配置发送邮件等。今天我们

    2024年02月03日
    浏览(55)
  • Python+Pytest+Allure+Git+Jenkins数据驱动接口自动化测试框架

    一、接口基础 接口测试是对系统和组件之间的接口进行测试,主要是效验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。其中接口协议分为HTTP,RPC,Webservice,Dubbo,RESTful等类型。 接口测试流程 1、需求评审,熟悉业务和需求 2、开发提供接口文档 3、编写接口测

    2024年02月08日
    浏览(76)
  • 基于docker搭建pytest自动化测试环境(docker+pytest+jenkins+allure)

    这里我以ubuntu18为例 如果有docker环境,可以直接拉取我打包好的镜像 docker pull ziyigun/jenkins:v1.0 1.1 安装docker 1.2 配置镜像加速 bug1:ExecStart=/usr/bin/dockerd -H fd:// 如果发现docker启动或者重启报错: ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILU

    2024年02月12日
    浏览(53)
  • 从零搭建完整python自动化测试框架(UI自动化和接口自动化

    总体框架 PO模式、DDT数据驱动、驱动 框架技术选择 框架运行结果 各用例对应的定义方式(PO/DDT) 测试执行结果 从零开始搭建项目 一、开发环境搭建 二、新建项目 三、基础功能实现 1. 配置功能实现(Conf) 2. 日志功能实现(Log) 3. 读取EXCEL实现(data) 4. 邮件发送实

    2024年02月07日
    浏览(64)
  • 从零搭建完整python自动化测试框架(UI自动化和接口自动化)

    总体框架 PO模式、DDT数据驱动、驱动 框架技术选择 框架运行结果 各用例对应的定义方式(PO/DDT) 测试执行结果 从零开始搭建项目 一、开发环境搭建 二、新建项目 三、基础功能实现 1. 配置功能实现(Conf) 2. 日志功能实现(Log) 3. 读取EXCEL实现(data) 4. 邮件发送实

    2024年02月04日
    浏览(64)
  • Docker容器搭建Python+Jenkins+Selenium自动化测试(最详细)

    使用Docker搭建Jenkins+python3+selenium项目,在Linux服务器上部署项目代码,实现自动构建。 解决方案 自动构建工具选型:jenkins 中间件选型:docker 代码运行环境:python3 脚本运行工具:chrome浏览器、chromedriver、selenium库 web自动化测试:https://www.bilibili.com/video/BV1MS4y1W79K/ docker分布式自

    2024年02月01日
    浏览(45)
  • docker+jenkins+gitee+shell 自动化部署微服务(基于若依)【详细完整版】

    提示:需基本熟悉docker命令、shell脚本、微服务部署、git命令、服务器基本命令、node、maven 服务器环境:Linux-EulerOS(华为自主研发服务器系统,与CentOS基本类似) 安装组件:docker20.10.19、openjdk1.8.0_191、maven3.8.6、git2.33.0、node16.17.1、npm9.1.2、jenkinsci/blueocean、docker-compose 远程工

    2023年04月11日
    浏览(43)
  • 从0到1框架搭建,Python+Pytest+Allure+Git+Jenkins接口自动化框架(超细整理)

    接口测试是对系统和组件之间的接口进行测试,主要是效验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系。其中接口协议分为HTTP,RPC,Webservice,Dubbo,RESTful等类型。 接口测试流程 1、需求评审,熟悉业务和需求 2、开发提供接口文档 3、编写接口测试用例 4、用

    2024年02月14日
    浏览(56)
  • 基于 HttpRunner + Django + Vue + Element UI 的接口自动化测试平台

    https://github.com/tahitimoon/LunarLink https://lunar-link-docs.fun 基于HttpRunner + Django + Vue + Element UI 的接口自动化测试平台,生产可用。 此外,非常感谢 花菜。没有 AnotherFasterRunner 就不会有 LunarLink 😃 🎨 Django 🎶 Django Rest framework 🎉 Vue.js 🎃 Element UI 🏐 django-celery-beat(定时任务) 🎲

    2024年04月11日
    浏览(40)
  • 基于 python 的接口自动化测试,让你轻松掌握接口自动化

    目录 目录 一、简介                ​编辑二、引言 三、环境准备 四、测试接口准备 接口信息 五、编写接口测试 六、优化 封装接口调用   本文从一个简单的登录接口测试入手,一步步调整优化接口调用姿势; 然后简单讨论了一下接口测试框架的要点; 最后介绍了一下

    2023年04月19日
    浏览(71)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包