什么是Jenkins?

Jenkins是一款能够自动化部署,自动化运行测试用例的一个平台。

Jenkins 服务器 - 图1
每次发布版本,可以在Jenkins 平台自动执行代码。
也可以设置定时任务,每天自动执行自动化代码,执行完成之后发送测试报告。

搭建Jenkins

Jenkins可以在Windows,Linux,Mac 平台搭建。搭建方式原理一样,下面给大家演示在Windows平台上搭建。

官网:https://www.jenkins.io/zh/
下载地址: https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/latest/
image.png
下载之后是一个 war 格式的文件。
jenkins.zip

启动Jenkins

打开命令行,运行命令

  1. java -jar jenkins.war的文件路径。

image.png
Jenkins 启动之后,可以看到对应的运行日志
image.png

访问配置Jenkins

打开浏览器,在浏览器中输入 地址 http://127.0.0.1:8080/ 启动成功 浏览器中第一次会解锁Jenkins
image.png
第一次使用 Jenkins 会生成初始密码
image.png
浏览器中新建一个标签页,粘贴文件路径 打开,可以看到默认的密码。
image.png
复制文件中的密码,粘贴到解锁页面。
image.png
粘贴密码之后,点击【继续】

安装插件

进入Jenkins之后,弹出安装插件对话框,选择 【安装推荐的插件】
image.png
Jenkins会自动从网上下载一些常用的插件。
image.png
下载速度的快慢跟自己的网络速度有关。
如果有个别安装失败,不影响,点击【继续】,跳转到用户注册页面。

注册管理员

输入管理员信息
image.png
点击 保存并完成。

配置

使用默认的配置
image.png
配置完成之后,开始使用Jenkins
image.png


如果没有安装成功,使用服务器的版本
http://49.233.108.117:8080/signup
注册账号即可使用。

将代码上传到 git 仓库

将代码放到远程仓库中,首先创建一个 仓库。
image.png
创建代码仓库
image.png
创建好远程 仓库。
image.png

本地已经写好的代码上传到仓库

cd 自己的项目根目录下

image.png
在项目的根目录下执行 下面的命令。

初始化

git init

image.png
使用git init 将当前项目初始化git仓库

添加远程仓库地址

git remote add origin https://gitee.com/imzack/apitest420.git

image.png
https://gitee.com/imzack/apitest420.git这个地址一定要改成自己的地址

同步服务器配置

第一次一定要先跟服务器同步配置

git pull origin master

image.png

添加并提交代码

git add .

将当前路径下所有文件添加。
image.png


先在本地进行提交。


git commit -m "第一次提交"

image.png
将代码使用 git push origin master 指定上传到 master分支

git push origin master

image.png
上传成功可以看到已经有代码了。
image.png

配置自动化代码运行

准备代码

打开远程仓库,将我的代码同步到自己的仓库
https://gitee.com/imzack/auto_aptest
点击 【Fork】同步到自己的仓库中。
image.png
可以将代码同步到自己的仓库中。

jenkins 配置

在Jenkins中新建项目,
image.png
点击【新建项目】,在打开的页面中 输入项目名称,
选择【FreeStyle project
image.png

配置源码

我们的代码都是放在git服务器上,这里选择git源码管理。
image.png
在仓库中输入自己的仓库地址

image.png

配置自己的账号信息

配置好自己的仓库之后,需要将自己的账户信息配置进来。
image.png
添加完成之后。选择自己对应的账号和密码。
image.png

构建触发器

image.png
在构建触发器中可以设置定时任务。比如可以定时让自动化代码每天的凌晨执行。
或者设置定时任务 每周末执行。


定时任务主要有5个参数组成

  • 分钟 取值(0-59)
  • 小时 取值(0-23)
  • 日 取值(1-31)
  • 月 取值(1-12)
  • 周几 取值(0-7)0,7都是表示周日。

基本使用
4月21日周四2:15 执行

15 2 21 4 4

* 匹配所有

每年的 4月20日22:10 执行

10 22 20 4 *

每周的周五晚上10:30 运行

30 22 * * 5

每天晚上 11:30 执行

30 23 * * *

m,n 指定时段

每周 周六,周日 晚上 10:30执行

30 22 * * 6,7

每月1日,15日 中午12:00 执行

0 12 1,15 * *

每天的8:00,12:00,18:00 执行

0 8,12,18 * * *

m-n 指定区间

每周一至周五的早上8:00 执行

0 8 * * 1-5

指定区间运行的时候,一般跟 / 指定执行的频率。
每天的 8:00-18:00 每隔1个小时执行一次

0 8-18 * * *

每天的 8:00-18:00 每隔2个小时执行一次

0 8-18/2 * * *

Jenkins分散负载

image.png
在定时任务中,Jenkins会建议我们分钟这个字段使用H 而不是具体的分钟数。这里的原因是:Jenkins 可能会同时执行很多任务,当所有的任务都在同一时刻执行的时候,服务器可能会受不了大的负载而宕机。设置为H 可以让Jenkins自动选择时候,如果同时有很多任务执行,Jenkins可以在其他任务执行完成之后,再执行你的任务。

image.png

构建

image.png
构建指的就是去执行代码。这里 主要有两种执行方式

  • 执行Windows批处理命令
  • 执行shell

如果你的Jenkins是在自己的Windows电脑上运行,选择 【执行Windows批处理命令】。
如果你Jenkins是在Linux服务器或者Mac 系统上执行,使用【执行shell】

执行命令
执行shell

python3 main.py

执行Windows批处理命令

python main.py

Linux 和 Mac 平台上默认都安装的有Python2,并且python2不能卸载,我们开发的时候使用的是Python 3,Linux和mac 使用python 的时候需要用python3 来执行。

运行的时候可能会出现的问题

运行项目的时候,会发现项目执行失败。
image.png
打开构建历史中的记录,查看错误提示,打开控制台输出,查看报错信息。

image.png
根据控制台中的运行日志
image.png
可以发现执行错误的原因
原因是找不到pytest 模块

解决办法

因为服务器上没有找到对应的pytest 模块,所以需我们去服务器上进行安装。
命令行中安装

pip install pytest

pip install requests

pip install pytest-html

image.png
再次执行 Jenkins,可以在执行结果中看到对应的内容。
image.png

视频

Jenkins.mp4 (1.85GB)