jenkins+Git+maven自動化測試持續(xù)集成

前提:1、linux機器上已經(jīng)部署好Jenkins、maven、git

????????? 2、測試用例再git里以不同的接口名存放,即不同的用例對應(yīng)不同的clone

一、jenkins界面配置

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

2、job配置測試用例的git路徑

3、job構(gòu)建

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部署機器存放自動化測試代碼的路徑下,進(jìn)行以下操作:

初始化:git init

建立遠(yuǎn)程連接:git remote add [遠(yuǎn)程庫別名] [遠(yuǎn)程庫ssh地址]

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

拉取遠(yuǎn)程代碼:git pull [遠(yuǎn)程庫別名] master

2、同時,將以下shell代碼放入crontab定時任務(wù),以保證定時更新最新的測試代碼

#!/bin/bash

interfaceCode_Path=xxxx

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

cd $interfaceCode_Path

date

git status

git pull? [遠(yuǎn)程庫別名] master

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

三、實現(xiàn)存放在git的測試用例變動會觸發(fā)Jenkins自動測試

參考鏈接:https://www.cnblogs.com/zblade/p/9480366.html

設(shè)置GitLab以及Jenkins,實現(xiàn)每次GitLab上有提交事件的時候,都能觸發(fā)Jenkins執(zhí)行相應(yīng)的操作

1、新建GitLab測試用例

進(jìn)入個人GitLab賬號,在右上角的加號中,選出GitLab 的 New Project,可以新建個人的GitLab工程:

其余都走默認(rèn)的設(shè)置,填寫好project的名字,可以創(chuàng)建一個新的project,如圖:

2、設(shè)置Jenkins

2.1 首先安裝 GitLab plugin

在“系統(tǒng)管理”->“插件管理”,查看已安裝插件,輸入 GitLab, 看看是否已經(jīng)安裝,如果沒有,則 查看 可選插件,搜索 GitLab,安裝后重啟即可。

2.2 新建一個測試工程

新建一個job,如圖:

源碼管理選擇Git, 輸入剛剛新建的GitLab的 URL以及個人的API_TOKEN:

目前只有master分支,后續(xù)可以根據(jù)不同分支對應(yīng)設(shè)置不同的url,監(jiān)聽不同分支的情況。

在構(gòu)建觸發(fā)器選項中,勾選 Build when a change is pushed to GitLab ,該選項最后的URL就是這個工程的URL路徑,注意如果是本機,則會顯示localhost, 可以將localhost改為個人的ip。

注意這個url, 下一步會用到這個url??梢栽诠こ讨性O(shè)置構(gòu)建后的操作為執(zhí)行一句python腳本: print("gitlab webhook jenkins")。點擊應(yīng)用和保存。


3. 設(shè)置GitLab的webhook

GitLab版本在不斷變換,該版本的GitLab,如圖可以找到WebHook的設(shè)置入口:

填入的url就是剛剛測試, 勾選push Event,這樣就是每次有push操作的時候,就會觸發(fā)webhook,執(zhí)行填入的url中的操作:

點擊保存,然后點擊Test,可以測試是否可以執(zhí)行,一般會報這些錯誤:

3.1 anonymous build

不支持匿名build, 這是回到j(luò)enkins中,在 系統(tǒng)管理 -> 全局安全管理中, 勾選 匿名用戶具有可讀權(quán)限 如圖:

然后點擊應(yīng)用和保存, 回到GitLab,繼續(xù)測試.

如果繼續(xù)抱該錯,則進(jìn)入剛剛構(gòu)建的工程,點擊 構(gòu)建觸發(fā)器中選中的Build When a change is

pushed右下角的高級選項,有一個Secret token,點擊 Generate,會生成一個安全代碼:

復(fù)制到webhook中的url下面:

然后保存,再測試,就可以通過,這時候會觸發(fā)jenkins執(zhí)行一次操作:

看看控制臺輸出:

3.2 valid crumb

如果報該錯,則在安全設(shè)置中,不勾選 CSRF, 如圖:

測試通過,后續(xù)可以在此基礎(chǔ)上拓展, 監(jiān)聽不同GitLab,同一個GitLab的不同分支的push操作,來分別觸發(fā)jenkins端執(zhí)行對應(yīng)的操作。

4. GitLab webhook的原理

hook就是在相應(yīng)的事件下設(shè)置鉤子,當(dāng)相應(yīng)的事件觸發(fā)的時候,比如push

event, merge event等操作的時候,就會觸發(fā)hook下面的腳本執(zhí)行,而gitlab webhook,

就是會觸發(fā)執(zhí)行這個webhook的url,類似于前面在jenkins調(diào)用中提到的打開url觸發(fā)jenkins執(zhí)行job。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容