jenkins+Git+maven自动化测试持续集成

前提:1、linux机器上已经部署好Jenkins、maven、git

          2、测试用例再git里以不同的接口名存放,即不同的用例对应不同的clone

一、jenkins界面配置

1、jenkins-全局工具配置界面配置好JAVA_HOME、maven、git,与Jenkins部署的linux机器的/etc/profile一致

2、job配置测试用例的git路径

3、job构建

3.1 图中第一个shell脚本:

#!/bin/bash

job_name=$1

TestCase_Jenkins_build_Path=xxx/jenkins/jobs/$job_name/workspace

TestCase_sync_to_Path=xxx/interface/data

#同步文件

echo "--*--*--*--*--*--*exec change excel testcase start--**--*--*"

cd $TestCase_sync_to_Path

rm -rf *.xlsx

cd $TestCase_Jenkins_build_Path

cp *.xlsx $TestCase_sync_to_Path

echo "--*--*--*--*exec over--*--*--*--*--*--*"

3.2 图中第二个shell脚本:

#!/bin/bash

#export LANG="en_US.UTF-8"

autotest_Path=xxxx

report_file_name=$1

report_file_Path=yyyy/apache-tomcat-8.5.53/webapps/report/$report_file_name

echo "--*--exec pom.xml/mvn test start--*--"

echo $report_file_name

cd $autotest_Path

zzzz/apache-maven-3.0.5/bin/mvn test

echo "--*--exec over--*--"

echo "--*--exec start reportng to  tomcat/webapps --*--"

echo $report_file_name

echo $report_file_Path

mkdir -p $report_file_Path

cp $autotest_Path/target/surefire-reports/html/* $report_file_Path

echo "--*--exec over --*--"

二、jenkins部署linux机器配置

1、jenkins部署机器存放自动化测试代码的路径下,进行以下操作:

初始化:git init

建立远程连接:git remote add [远程库别名] [远程库ssh地址]

免密登录:git config --global credential.helper store

拉取远程代码:git pull [远程库别名] master

2、同时,将以下shell代码放入crontab定时任务,以保证定时更新最新的测试代码

#!/bin/bash

interfaceCode_Path=xxxx

echo "--*exec start git update autotest --*"

cd $interfaceCode_Path

date

git status

git pull  [远程库别名] master

echo "--*--*--*--*--*--*exec over--*--*--*--*--*--*"

三、实现存放在git的测试用例变动会触发Jenkins自动测试

参考链接:https://www.cnblogs.com/zblade/p/9480366.html

设置GitLab以及Jenkins,实现每次GitLab上有提交事件的时候,都能触发Jenkins执行相应的操作

1、新建GitLab测试用例

进入个人GitLab账号,在右上角的加号中,选出GitLab 的 New Project,可以新建个人的GitLab工程:

其余都走默认的设置,填写好project的名字,可以创建一个新的project,如图:

2、设置Jenkins

2.1 首先安装 GitLab plugin

在“系统管理”->“插件管理”,查看已安装插件,输入 GitLab, 看看是否已经安装,如果没有,则 查看 可选插件,搜索 GitLab,安装后重启即可。

2.2 新建一个测试工程

新建一个job,如图:

源码管理选择Git, 输入刚刚新建的GitLab的 URL以及个人的API_TOKEN:

目前只有master分支,后续可以根据不同分支对应设置不同的url,监听不同分支的情况。

在构建触发器选项中,勾选 Build when a change is pushed to GitLab ,该选项最后的URL就是这个工程的URL路径,注意如果是本机,则会显示localhost, 可以将localhost改为个人的ip。

注意这个url, 下一步会用到这个url。可以在工程中设置构建后的操作为执行一句python脚本: print("gitlab webhook jenkins")。点击应用和保存。


3. 设置GitLab的webhook

GitLab版本在不断变换,该版本的GitLab,如图可以找到WebHook的设置入口:

填入的url就是刚刚测试, 勾选push Event,这样就是每次有push操作的时候,就会触发webhook,执行填入的url中的操作:

点击保存,然后点击Test,可以测试是否可以执行,一般会报这些错误:

3.1 anonymous build

不支持匿名build, 这是回到jenkins中,在 系统管理 -> 全局安全管理中, 勾选 匿名用户具有可读权限 如图:

然后点击应用和保存, 回到GitLab,继续测试.

如果继续抱该错,则进入刚刚构建的工程,点击 构建触发器中选中的Build When a change is

pushed右下角的高级选项,有一个Secret token,点击 Generate,会生成一个安全代码:

复制到webhook中的url下面:

然后保存,再测试,就可以通过,这时候会触发jenkins执行一次操作:

看看控制台输出:

3.2 valid crumb

如果报该错,则在安全设置中,不勾选 CSRF, 如图:

测试通过,后续可以在此基础上拓展, 监听不同GitLab,同一个GitLab的不同分支的push操作,来分别触发jenkins端执行对应的操作。

4. GitLab webhook的原理

hook就是在相应的事件下设置钩子,当相应的事件触发的时候,比如push

event, merge event等操作的时候,就会触发hook下面的脚本执行,而gitlab webhook,

就是会触发执行这个webhook的url,类似于前面在jenkins调用中提到的打开url触发jenkins执行job。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。