30.[Jenkins]自动化工具Jenkins安装配置入门

载*请注明原始出处:http://blog.csdn.net/a464057216/article/details/51865148

后续此博客不再更新,欢迎大家搜索关注微信公众号“测开之美”,测试开发工程师技术修炼小站,持续学习持续进步。
在这里插入图片描述

简介

Jenkins是一个适合做CI(Continuous Integretion)、CD(Continuous Delivery)和自动化测试的自动化引擎,包含丰富的插件(比如配合Gitlab、Github等源码托管平台、生成测试覆盖率分析报告等)。在我们团队目前的Python项目中Jenkins会做这样几件事:

  • Gitlab服务器上指定项目的指定分支有更新时,触发代码拉取,自动构建。
  • 执行自动化冒烟测试,生成测试报告(包含覆盖率分析、pylint代码检查结果、测试通过率分析)。
  • 如果构建失败,发送邮件给相关人员分析失败结果。
  • 如果构建成功,自动打包。
  • 在Gitlab的页面端可以看到每次的自动化测试结果。

本文首先介绍了Jenkins在Ubuntu及Mac OS X上的安装配置方法(基本功能、Nginx、邮件提醒、集群配置等),然后介绍了检测Github项目更新,开始自动化测试的基本方法。

requirements

  • 推荐Java8
  • 256MB-1GB内存(越高越好)

Ubuntu上的安装方法

# Written by: CSDN - Mars Loo的博客
$ wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add -
$ sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
$ sudo apt-get update
$ sudo apt-get install jenkins

安装程序主要做了如下几件事情:

  • jenkins作为守护进程启动(\etc\init.d\jenkins
  • 创建了名为jenkins的用户
  • 日志存储在/var/log/jenkins/jenkins.log
  • 默认情况下,Jenkins监听8080端口(如果Jenkins启动失败,可能是有端口冲突)
  • 配置文件存储在/etc/default/jenkins,其中的JENKINS_HOME定义了Jenkins的家目录,对Jenkins进行备份、恢复等直接备份、恢复该目录即可(如果移动了家目录的位置,需要重新配置JENKINS_HOME的指向)。家目录下的/jobs目录保存了Jenkins中各个任务的目录,可以按照操作正常文件的方法对他们重命名、移动到其他位置、备份等,只需要记得改动后重启一下jenkins服务即可。

安装成功后使用浏览器访问服务器8080端口,首先会要求输入一串密钥:
这里写图片描述

上面是我在Mac上的安装截图,如果是Ubuntu系统可以在/var/log/jenkins/jenkins.log文件的最后几行查看初始密码,也可以使用如下命令查看:

$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword

输入密钥后下一步选择Install suggested plugins即可:
这里写图片描述

安装完所有推荐的插件之后,就可以开始Jenkins之旅了:
这里写图片描述

升级Jenkins

如果采用apt-get方式安装的Jenkins,可以如此升级:

# Written by: CSDN - Mars Loo的博客
sudo apt-get update
sudo apt-get install jenkins

Mac OS X上的安装方法

在Mac OS X上安装过程更简单,在官网下载pkg文件直接点击安装即可:
这里写图片描述

配置Nginx

  • 安装Nginx:sudo aptitude -y install nginx
  • 删除默认配置:
cd /etc/nginx/sites-available
sudo rm default
cd ../sites-enabled
sudo rm default
  • 建立Nginx配置:
upstream app_server {
    server 127.0.0.1:8080 fail_timeout=0;
}

server {
    listen 80;
    listen [::]:80 default ipv6only=on;
    server_name localhost;

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;

        if (!-f $request_filename) {
            proxy_pass http://app_server;
            break;
        }
    }
}

建立软连接到/etc/nginx/sites-enabledsudo ln -s /etc/nginx/sites-available/jenkins /etc/nginx/sites-enabled/
重启Nginx:sudo service nginx restart,即可通过80端口访问Jenkins服务比如http://localhost。

配置邮件服务

配置Jenkins的邮件服务时,注意先配置Jenkins Location中的系统管理员邮件地址。然后在邮件通知中进行相关的SMTP服务器配置(用户名与系统管理员邮件地址一定要一致),最后勾选发送测试邮件测试配置测试配置即可。
这里写图片描述

如果采用126邮箱的SMTP服务,可以在其设置中生成一个单独的客户端授权密码,而不是使用登录邮箱时使用的邮箱密码。

Jenkins集群

如果Jenkins所有的任务运行在一台机器上,CPU和内存会变得非常高,为了分散工作到不同的机器,可以采用集群模式使用Jenkins。在Jenkins集群中,有一台master,负责收集、展示数据(master也可以做为一个build的节点),slave们单纯负责干活,上报数据。master机器配置完成后,对于采用unix系统的slave机器的部署非常简单:

  • 将Master机器中jenkins用户的公钥拷贝到Slave机器的jenkins用户的authorized_keys中
  • Jenkins -> 系统管理 -> 管理节点 -> 新建节点,然后填写相关的信息即可。(启动方法选择Launch slave agents on Unix machines via SSH)

与Github项目配合

生产中为了保护关键资产信息安全,推荐使用Gitlab搭建公司内部代码托管服务器,本文以Github项目为例说明Jenkins配合代码托管服务器做自动化测试的过程,为Gitlab项目添加Deploy keys的方法与在Github上的操作是类似的。

配置git插件及私钥

在Jenkins的系统管理界面设置git config user.namegit config user.email的内容:
这里写图片描述

在Jenkins服务器上切换到Jenkins用户并cd到其家目录,然后生成SSH密钥对放在其~/.ssh/目录中,比如Mac上是/Users/Shared/Jenkins/.ssh/,然后配置config文件内容如下:

# Written by - CSDN: Mars Loo的博客
Host github.com
    HostName github.com
    IdentityFile /Users/Shared/Jenkins/.ssh/id_rsa

在Github的指定项目上设置deploy key:
这里写图片描述

在Jenkins的Credential管理界面添加私钥:
这里写图片描述

在Jenkins中创建自由风格项目

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

如果觉得我的文章对您有帮助,欢迎关注我(CSDN:Mars Loo的博客)或者为这篇文章点赞,谢谢!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值