打造工具链
● 源码管理Gitlab
● 持续集成Jenkins
● 代码扫描SonarQube
● 接口测试PostMan+NewMan
● 制品管理ArtifactoryOSS版本(仅支持Maven)
● 自动部署Ansible
GitLab安装:
vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=gitlab-ce
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
Repo_gpgcheck=0
Enabled=1
Gpgkey=https://packages.gitlab.com/gpg.key
sudo yum makecache
sudo yum intall gitlab-ce
sudo gitlab-ctl start # 启动所有 gitlab 组件;
sudo gitlab-ctl stop # 停止所有 gitlab 组件;
sudo gitlab-ctl restart # 重启所有 gitlab 组件;
sudo gitlab-ctl status # 查看服务状态;
sudo gitlab-ctl reconfigure # 启动服务;
sudo vim /etc/gitlab/gitlab.rb # 修改默认的配置文件;
gitlab-rake gitlab:check SANITIZE=true --trace # 检查gitlab;
sudo gitlab-ctl tail # 查看日志
访问http://localhost
会跳转到让你修改密码的网页
Jenkins安装:
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
yum install -y jenkins
systemctl start jenkins
访问:localhost:8080
初始密码在:/var/lib/jenkins/secrets/initialAdminPassword
SonarQube安装:
#使用Docker安装
#下载启动Mysql使用Docker
docker run --name mysql5.7 -v /data/mysql5.7-data:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
#进入容器
docker exec -it mysql5.7 bash
#进入数据库
mysql -uroot -p123456
#创建数据库及授权
create database db_sonar character set utf8 collate utf8_general_ci;
flush privileges;
grant all privileges on db_sonar.* to 'sonar'@'%'identified by 'sonar' with grant option;
flush privileges;
#查看容器IP地址
cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 ec7039cd8020
#下载并启动SonarQube
docker run -d --name sonar -p 9000:9000 -p 9092:9092 -v /data/sonar/conf:/opt/sonarqube/conf -v /data/sonar/data:/opt/sonarqube/data -v /data/sonar/logs:/opt/sonarqube/logs -v /data/sonar/extensions:/opt/sonarqube/extensions -e "SONARQUBE_JDBC_USERNAME=sonar" -e "SONARQUBE_JDBC_PASSWORD=sonar" -e "SONARQUBE_JDBC_URL=jdbc:mysql://172.17.0.2:3306/db_sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false" sonarqube:6.7.5
PostMan & NewMan安装:
安装NodeJS
注意:如果已经安装NodeJS可以跳过此步
下载地址:https://nodejs.org/en/download/
下载 “Linux Binaries (x64)”
下载完解压以后配置环境变量NODE_HOME 和PATH
安装Newman
在Jenkins的slave节点安装Newman:
npm install -g newman
安装Postman
下载地址:https://www.postman.com/downloads/
安装在windows或者带UI的Linux机器
安装文档:https://learning.postman.com/docs/postman/launching-postman/installation-and-updates/
导出Postman测试集合
创建集合app1
app1为当前应用的名称,可以根据实际情况定义
名称填写 app1 , Authorization 选择 “Basic Auth”,并填入Artifactory的用户名密码,如下图
在Variables标签条件变量:base_url,值为artifactory“Custom Base URL”,例如:http://localhost:8081/artifactory
点击create按钮完成并保存
创建request
在集合app1右键点击,弹出的request选择”Add request”
Request name 填写 “ping”,然后点击”Save to app1”按钮
Api url : {{base_url}}/api/system/ping
在Tests 标签填入一下内容:
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Body is correct", function () {
pm.response.to.have.body("OK1");
});
这是两个测试用例,分别测试返回值是否为200,返回内容是否为“OK1”,最后同时按 Ctrl+s 保存内容
安装Artifactory OSS版本:
使用Yum方法安装
wget https://bintray.com/jfrog/artifactory-rpms/rpm -O bintray-jfrog-artifactory-rpms.repo
sudo mv bintray-jfrog-artifactory-rpms.repo /etc/yum.repos.d/
sudo yum install jfrog-artifactory-oss
初始账号和密码为:admin/password,登录成功后可以看到以下界面
其他安装方法可参考如下链接:
https://www.jfrog.com/confluence/display/RTF6X/Installing+on+Linux+Solaris+or+Mac+OS
安装Ansible:
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install ansible
工具链使用要点
使用要点
☑ GitLab源码管理要有良好的版本控制模型
☑ 使用Jenkins流水线作为统一的构建平台进行编译构建,抛弃传统的研发本地构建的模式
☑引入SonarQube代码质量检查工具建立代码质量度量,提升代码质量,减少低级BUG及技术债务
☑ 构建产物统一上传到制品库,运维从制品库中获取发布包,使用ansible自动部署到预发布环境。
☑ 通过开发接口测试脚本,从主到次的顺序,逐步完善系统的接口自动化测试,减少人工测试消耗的时间,缩短测试周期。
☑ 将自动部署和自动化测试的步骤也统一集成到流水线中,形成统一交付流水线,提升交付效率。
进阶改造
进阶改造
☑ 使用Docker 容器化技术降低环境对软件的影响。
☑ 通过Selenium开发脚本,进行UI自动化测试,提升测试效率。
☑使用Artifactory Pro 版本,利用元数据,对制品生命周期进行管理。
☑ Artifactory Pro版本支持多语言,可以将自动化工具链扩展到其他语言上。
☑ 使用JFrog Xray对提升软件安全系数。