Jenkins技术实战

Jenkins技术实战

1、Jenkins技术

**目标:**Jenkins容器化搭建,结合Pytest自动化执行生成Allure报告,发送邮件

流程

  • 1、搭建jenkins环境

    • 镜像:

    • 容器操作

      • 1、官方镜像 比较干净 docker pull jenkins

      • 2、公司自己的镜像仓库:阿里云仓库里面有:

        • python 3.6.8解释器
        • git
        • allure+pytest等常用的第三库
    • 方案:docker容器技术

       新建挂载目录
       #在宿主机的一个目录下创建一个目录,用于挂载目录
       mkdir -p /var/jenkins_node
       #给一个权限--chmod 777 (0111)可读可写可执行  wrx
       chmod 777 /var/jenkins_node
       
       #创建与启动守护式容器---注意容器中的端口使用8080
       docker run -id --name=sqjenkins -p 8080:8080 -v /var/jenkins_node:/var/jenkins_home --restart=always  registry.cn-hangzhou.aliyuncs.com/sqqdcl/jenkins:v1
      
  • 2、运行jenkins容器,做相关配置

    • 1、下载需要的插件—选择默认安装就行

    • 2、我们操作需要的一些库需要自行安装

      • allure插件 是jenkins需要操作allure工具需要的插件
      • gitlab—下次课gitlab课程需要
    • 3、查看下jenkins容器里面有什么?—*进入容器操作*

      • python解释器 3.6
      • allure
      • git
      • pip3 list 查下python3解释器里面有什么库 pip3 install xxxx
    • 4、jenkins全局环境变量配置

      • JAVA_HOME
      • git
      • allure
  • 3、验证检查python运行环境

    • 检查:pytest指令是否可以直接运行

       #1- 确认环境里有没有pytest
       whereis pytest
       #2- 在/opt/python3/bin  是可以运行的
       #3- 希望在任意路径都可以执行pytest
       #只要你的应用在/usr/bin就可以在任意路径运行
       #软连接:你只要运行这个命令,我自己就会到它的安装路径去找!
       以root权限进入容器
       docker exec -uroot  -it c5 /bin/bash
       
       ln -s 源应用安装路径  执行路径
      
  • 4、新建jenkins工程–构建执行自动化脚本

    • 1、点击构建–在jenkins_home/workspace/有一个工程目录

    • 2、因为现在没有学到git操作–只能半自动化,手动把项目代码直接通过xftp直接传递到/var/jenkins_node/workspace/songqin-21210802

    • 3、在构建配置里–去写shell脚本 执行项目自动化运行!

       #验证是否可以运行!
       cd Delivery_System-0716/test_case
       pytest -s
       #报错了
       PermissionError: [Errno 13] Permission denied: '/var/jenkins_home/workspace/songqin-21210802/Delivery_System-0716/logs/autoProjext-202108021326.log'
       
       #解决
       chmod -R 777 /var/jenkins_home/workspace/songqin-21210802/Delivery_System-0716
      
  • 5、jenkins执行完有allure报告

    • 在构建配置里去设置一个构建后操作
    • 构建后 allure指令去操作报告所存放文件的路径生成报告!
  • 6、执行完之后有邮件,邮件里有报告!

    • 所有的代码或第三方工具操作邮箱发邮件—使用的授权码。不是登录密码

       SMTP Port
       #1-虚拟机的liunx 可以使用 25
       #2- 阿里云的服务器,一定要使用465,而且勾上后面的ssl
       #在阿里云安全策略组开放这个465
      
    • 1、检查有没有邮件的插件

    • 2、测试下邮件的基本设置是否可以通

    • 3、构建操作后,直接发送邮件

  • 总结

    • 1、代码是手动放进去,
    • 2、jenkins也是手动构建
  • 扩展-后面的项目实战课程

    • pipeline脚本语法(推荐使用)
    • 控制机
    • 执行机–node 节点
    • jenkins分布式
    • jenkins流水线
  • 2、Jenkins搭建环境教程


1、持续集成的概述

CI—持续集成

CD—持续交付

2、Jenkins简介

一个开源的框架–需要操做什么流程,下载对应的插件

3、Jenkins环境搭建与启动

#1- 下载镜像:
#方案一:
1- 搜索  docker search jenkins---最新版本的
2- 在这个镜像的创建的容器里需要搭建python环境(一系列库)
apt指令安装

#方案二:可以从一个指定的下载源的镜像拉取就行--前提是已经打包好这个镜像---(jenkins+python3+pytest)
#阿里云-公共仓库  
docker pull 镜像

docker pull  registry.cn-hangzhou.aliyuncs.com/sqqdcl/jenkins

#2- 查看镜像---静态的模板
#镜像--容器的模板--打包好的---静态的概念--使用的时候请创建容器docker images

#3- 创建容器
#守护式---  退出容器的终端,不会exit  docker run -id xxxx

#做目录挂载
jenkins 做很多的插件安装--以及其他设置

#在宿主机的一个目录下创建一个目录,用于挂载目录
mkdir -p /var/jenkins_node
#给一个权限--chmod 777 (0111)可读可写可执行  wrx
chmod 777 /var/jenkins_node

#4- 创建与启动守护式容器---注意容器中的端口使用8080
docker run -id --name=sqjenkins -p 8080:8080 -v /var/jenkins_node:/var/jenkins_home registry.cn-hangzhou.aliyuncs.com/sqqdcl/jenkins

#提升技巧
#容器的配置文件修改对应的端口号---修改完请重启容器
/var/lib/docker/containers/容器的id/hostconfig.json


#5- 查看容器是否启动
docker ps -a
#6- 查看宿主机ip
ifconfig    

#7- windows机器访问
http://宿主机ip:7070/

#8- 获取管理员密码
docker logs sqjenkins


#Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

afc945eb00114bc3a7cdaa42149dd66c #管理员密码

#This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

#9-或者宿主机里的/var/jenkins_node/secrets

cat /var/jenkins_node/secrets/initialAdminPassword#该指令也可以获取

4、Jenkins 插件下载

#需要安装2个插件
gitlab  gitlab HOOK
allure
#注意修改下载源  --插件--高级设置

访问ip:8080进入jenkins

安装推荐插件,中间可能有的插件安装失败,不用管它。

image.png

image.png

创建用户名和密码,保存并完成,输入admin,密码admin ,保存并完成,开始jenkins。

image.png

image.png

image.png

进入插件管理,下载并安装需要的插件,完成后重启jenkin服务。

安装插件gitlab,gitlab hook,allure

image.png

image.png

搜索gitlab,allure,选择直接安装。

image.png

image.png

重启docker镜像

docker ps -a

image.png

docker restart fef91a3db6d2(容器id)

5、Jenkins 全局工具设置-直接按给的填写即可

#需要设置全局
jdk
git
allure

重新进入jenkins,配置JDK丶git丶allure路径,直接按给的填写即可。

image.png

JAVA_HOME路径/usr/local/openjdk-8

image.png

git路径/usr/bin/git

image.png

allure路径/opt/allure-2.13.5

image.png

6、Jenkins 邮件功能测试

#邮件发送邮箱账号    
songqin_xintian@163.com  
#授权码(注意,不是邮箱密码)所有第三方操作邮件都需要这个授权码
WYMBWTZSUEJQTYGZ

image.png

配置管理员邮箱地址,发送人邮箱。

image.png

发送邮箱配置,邮箱名称songqin_xintian@163.com授权码为WYMBWTZSUEJQTYGZ

image.png

image.png

测试成功,保存设置。

image.png

7、Python环境验证

#在容器里输入  python3
#查看python环境的安装库
pip3 list

8、Pytest框架环境验证

### 进入docker里加pytest软连接
#管理员进入容器
docker exec -uroot -it sqjenkins /bin/bash
#加pytest软连接
ln -s /opt/python3/bin/pytest /usr/bin/pytest

#软连接是linux中一个常用命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接。
#具体用法是:ln -s 源文件 目标文件。

#当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在其它的 目录下用ln命令链接(link)就可以,不必重复的占用磁盘空间。

使用jenkins实现自动化测试

#目前方案没有gitlab,后续采用该方案
#1- 先把项目的自动化脚本文件夹放到--宿主机与容器挂载的目录下
#使用xftp工具,放到--宿主机与容器挂载的目录下,容器下查看下
cd /var/jenkins_nome
ls
#2- jenkins创建工程
#1- 新建任务
#2- 构建一个自由风格的软件项目
#3- 进入工程--点击配置
#4- 选择构建--操作shell  执行pytest  运行脚本
#5- 增加邮件--构建后操作

新建工程并配置选项。

image.png

image.png

2.项目配置

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

选择配置构建后操作模块

进入系统配置页面后,点击上方的构建后操作选项,配置内容如下:

image.png

image.png

image.png

添加邮件内容模板

image.png

            [object Object]                                                        本邮件由系统自动发出,无需回复!                          各位同事,大家好,以下为${PROJECT_NAME }项目构建信息

先把Tirrgers右上角关闭掉,然后新增always,可以选择add增加你要发送的人员列表。

image.png

image.png

最后保存,然后构建,构建成功后邮箱收到邮件。

image.png

10、Jenkins 实现构建

配置pytest命令,生成allure报告。

image.png

#!/bin/bash
rm -rf allure-results
cd Delivery_System/test_case
pytest -sq --alluredir=${WORKSPACE}/allure-results
exit 0

选择构建后操作allure Report

image.png

构建–增加构建步骤–执行sh命令(根据需要进行选择);构建后操作–选择Allure Report.

image.png

保存,点击构建。

image.png

image.png

image.png


3、常见问题解决方案

1、解决首次进入Jenkins页面慢的问题

安装好Jenkins之后,在浏览器地址栏里输入 http://localhost:8080 准备进入Jenkins的后台管理系统,这时页面一直卡在那里不动了,页面一直显示

Please wait while Jenkins is getting ready to work … Your browser will reload automatically when Jenkins is ready.

image.png

出现这个情况时,是因为Jenkins的默认更新镜像用的国外的镜像,把更新镜像改成国内的即可。 首先打开Jenkins的安装目录, 比如我是安装在 D:\Program Files (x86)\Jenkins 这个目录,打开这个目录,然后打开hudson.model.UpdateCenter.xml 这个配置文件,

将
https://updates.jenkins.io/update-center.json
修改成
http://mirror.xmission.com/jenkins/updates/update-center.json,

然后打开windows服务管理器,重启Jenkins服务,再重新刷新Jenkins启动页面即可。

img

img

上面是配置文件修改前与修改后的对比图。


2、本机安装了Jenkins,但是安装插件时一直失败

#本机安装了Jenkins,但是安装插件时一直失败。更改升级站点也不生效,究其原因是因为default.json中插件下载地址还https://updates.jenkins.io,升级站点设置未生效。

#需要操作两个步骤

#1.进入 Manage Jenkins -》 Manage Plugin -> Advanced 最下面有 Update Site 设置为
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

3、jenkins实现allure报告添加环境配置

问题现象:

image.png

解决方案

在工程的根目录下面新建文件environment.properties

image.png

执行脚本

#!/bin/bash
rm -rf allure-results
cd /var/jenkins_home/DeliverySystem/test_case
pytest -sq --alluredir=${WORKSPACE}/allure-results
cp /var/jenkins_home/DeliverySystem/environment.properties ${WORKSPACE}/allure-results/environment.properties
exit 0

image.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值