Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试

如果你还想从头学起 Docker,可以看看这个系列的文章哦!

https://www.cnblogs.com/poloyy/category/1870863.html

搭建 Jenkins 容器

就是实战第一篇文章:https://www.cnblogs.com/poloyy/p/13954637.html

Jenkins 初始化流程

访问 Jenkins

查看本机 IP

ifconfig

查看容器运行端口

docker ps

我的是用主机 80 端口映射到容器的 8080 端口

浏览器访问 Jenkins

http://ip:80

查看管理员密码

进入到页面

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第1张图片

查看密码有两种方式

第一种:查看容器日志

docker logs jenkins1

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第2张图片

打码那一行就是密码哦

第二种: 去文件夹查看

cat /var/jenkins_node/secrets/initialAdminPassword

  • 因为我创建 Jenkins 容器时,将主机的 /var/jenkins_node 目录映射了容器的 /var/jenkins_home 目录
  • 所以可以直接在主机查到管理员密码,而无需进入容器再查看

初始化流程

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第3张图片

创建管理员用户

自己配啥记住就行了,没啥特别要求

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第4张图片

实例配置

默认会给一个地址的,不改也可以

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第5张图片

配置完成

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第6张图片

进入主界面

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第7张图片

下载插件

需要的插件 gitlab、gitlab hook、allure

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第8张图片

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第9张图片

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第10张图片

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第11张图片

在它安装完后,自己重启 Jenkins 容器

docker restart jenkins1

将插件源切换国内源

直接看这个教程:https://www.cnblogs.com/poloyy/p/12785401.html

Jenkins 汉化

直接看这个教程:https://www.cnblogs.com/poloyy/p/13955209.html

Jenkins 全局工具设置

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第12张图片

配置 JDK

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第13张图片

配置 Git

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第14张图片

配置 allure

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第15张图片

应用保存!即可!

Jenkins 邮件功能测试

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第16张图片

配置 Extended E-mail Notification

自定义电子邮=件通知的默认收件人列表

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第17张图片
  • 可以在项目中使用 $DEFAULT_RECIPIENTS ,来包含此默认收件人列表(下面创建项目时讲到这个变量)
  • 若要向某人抄送或密件抄送,不是将其放在“收件人”列表中,请在电子邮件地址之前添加 cc: 或密件抄送 bcc: (例如:cc:[email protected],bcc:[email protected])

配置邮箱通知

使用 Jenkins 实现自动化测试

将项目放到主机映射到容器的目录下

通过  xftp 将项目上传到主机

这是我自己的一个 pytest 项目

验证项目能正常跑

进入容器内,在项目文件夹爱内执行 pytest 命令

 有 28 个测试用例都跑通了哦

Jenkins 创建任务工程

新建任务

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第18张图片

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第19张图片

Jenkins 任务配置构建后操作

在完成系统设置后,还需要给需要构建的项目进行邮件配置

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第20张图片

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第21张图片

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第22张图片

重点:这里就有 $DEFAULT_RECIPIENTS ,上面也有讲到这个环境变量,默认收件人列表,如果需要添加新的收件邮件,需要用 , 隔开

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第23张图片

邮件模板

直接复制粘贴到内容框就行

    
    
    
    
${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志    
    
    
    
        
            本邮件由系统自动发出,无需回复!
各位同事,大家好,以下为${PROJECT_NAME }项目构建信息
构建结果 - ${BUILD_STATUS}

构建信息

失败用例


$FAILED_TESTS

最近提交(#$SVN_REVISION)


    ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="
  • %d [%a] %m
  • "}
详细提交: ${PROJECT_URL}changes

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第24张图片

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第25张图片

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第26张图片

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第27张图片

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第28张图片

最后保存

进行第一次构建

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第29张图片

查看控制台输出

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第30张图片

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第31张图片

邮件发送成功!!

Jenkins 任务配置构建操作

主要两个任务

  1. 配置 pytest 命令
  2. 生成 allure 报告

配置 pytest 命令

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第32张图片

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第33张图片
#!/bin/bash
cd /var/jenkins_home/waimai
pytest -s -q --alluredir=${WORKSPACE}/allure-reports --clean-alluredir
exit 0

生成 allure 报告

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第34张图片

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第35张图片

这张图是重点哦

保存!!就成功了!

进行第二次构建

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第36张图片

查看 allure 报告

Docker 实战(2)- 在 Jenkins 容器上的搭建持续集成环境和完成自动化测试_第37张图片

你可能感兴趣的:(java,docker,大数据,python,linux)