Jenkins離線環境使用實戰說明(集成Jmeter、Ant、Git)

接博文上篇基礎環境搭建的博文

系統基本配置

這裏主要涉及的是項目中使用的其他基礎服務(maven、git、jdk、ant等)路徑,如果服務器上相關環境變量信息已經配置,這裏也可以省略,如果配置了,jenkins在選擇的時候會多一些可選項
Manage Jenkins ——> Clobal Tool Configuration
在這裏插入圖片描述

jenkins任務配置

http://ip:端口/jenkins ——>New Item
在這裏插入圖片描述

Maven任務

在這裏插入圖片描述

當前的job涵蓋了打包+ssh拷貝到目標服務器+打包等內容,比較好的思路是將打包和部署兩部分都單獨設置job,打包成功以後觸發部署job。由於目前部署的服務器比較少,相對環境比較簡單,因此就採用當前這種簡單的做法。


maven 任務配置demo
在這裏插入圖片描述

General

任務(job)總體的一些配置信息,這裏只針對我項目使用的部分展開描述
在這裏插入圖片描述

  • Description 項目描述信息
  • Discard old builds 項目歷史的記錄保留的相關設置策略
  • This project is parameterized 任務的配置信息,需要插件parameterized-trigger纔可以使用
    在這裏插入圖片描述
This project is parameterized

每一種類型的參數使用略有差異,目前介紹項目中使用了的幾種:

  • Git Parameter 需要安裝插件git-parameter,可以選擇

設置頁面
在這裏插入圖片描述


使用頁面
在這裏插入圖片描述

  • Extensible Choice——>File Parameter 需要安裝插件extensible-choice-parameter 使用的效果類似Choice Parameter,但是支持的形式更多,可以針對系統的一些配置來做選擇。勾選EditAble的話支持手動修改選擇結果

設置頁面
在這裏插入圖片描述


使用頁面
在這裏插入圖片描述

  • String Parameter 手工輸入的String類型的變量

設置頁面
在這裏插入圖片描述


使用頁面
在這裏插入圖片描述

  • Choice Parameter 下來選擇的預設String 類型變量,不支持自定義編輯

設置頁面
在這裏插入圖片描述


使用頁面
在這裏插入圖片描述

Source Code Management

任務(job)源碼部分配置信息,支持svn、git、等等。這塊都需要安裝相關的插件才能使用功能。

  • Git 代碼管理需要使用git插件,此處的例子git分支使用了Git Parameter取得的參數;

Additional Behaviours 裏還有很多可選的操作可以使用,可以根據需要自行選擇,demo裏只選擇了Wipe out repository & force clone

在這裏插入圖片描述

Build

maven打包的相關配置

  • Root POM pom文件的路徑,是以當前項目workspace爲默認路徑
  • Goals and options 執行的maven指令

在這裏插入圖片描述

Post Steps

完成打包以後需要將程序包拷貝到相應的服務器上做部署,只有當build成功的時候才設置執行這部分腳本。

在這裏插入圖片描述

使用ssh進行文件拷貝已經部署的操作需要配套的實現免密登錄,不然在腳本運行過程中出現需要輸入密碼的情況就會卡住,而且目前的ssh Publicshers 默認就需要實現ssh免密登錄的配置纔可以用.

其他類型任務

其他的項目類比maven項目,就是Build這一塊內容有差異,可以不做執行maven指令,轉而執行其他的操作,其餘的配置均類似,這裏就不做具體完整展開,僅針對特殊的部分做介紹。

ant+jenkins+jmeter 項目

使用ant+jenkins+jmeter來跑主要是爲了省事,可以使用ant的相關組件來生成html的結果報告。簡單的處理的話,使用命令行模式運行jmeter腳本也是沒有問題。

Build ant部分配置

在這裏插入圖片描述

jemter-Post-bulid Action 生成html報告

在這裏插入圖片描述

ant+jenkins+jmeter使用過程中出現而問題以及解決方案

配置的過程中陸續的還是遇到一些問題,這裏做簡單的列舉

Jmeter 運行報錯ApacheJMeter.jar 中的class找不到

將$JMETER_HOME/bin/ApacheJMeter.jar 加入到CLASS_PATH裏

Html樣式失效問題處理

解決方案參考
在這裏插入圖片描述

ant腳本執行傳空參問題

目前的demo有一點特殊,項目中jmx腳本存在多個,job中需要動態指定運行哪個腳本,如果不選則默認運行全部腳本,這裏做了特殊處理。

<property name="jmxname" value="${jmxname}" />
<condition property="jmeter.jmxname" value="${jmxname}" else="*.jmx">
	    <!-- jmeter.jmxname設置了值而且值非空的情況下才返回true,此時不採用默認值 -->
		<and>
		    <!--如果屬性jmxname不存在則返回false -->
			<isset property="jmxname" />
			<not>
			   <!--如果屬性jmeter.jmxname非空在則返回true -->
			   <equals arg1="${jmxname}" arg2="" />
			</not>
		</and>
</condition>

任務之間的觸發

  • uat-trigger-other-job 觸發源工程,該工程未做任務關聯其他工程的配置,但是uat-trigger-job工程通過關聯它來觸發,該工程無法傳參給uat-trigger-job
  • uat-trigger-job 在當前任務上配置觸發,通過uat-trigger-other-job來觸發當前任務
    從下圖可知, uat-trigger-other-job任務觸發了uat-trigger-job任務,但是uat-trigger-other-job其參數並沒有傳遞給uat-trigger-job任務
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述

  • uat-trigger-job2 在當前任務上配置觸發,通過該任務來觸發下一個任務uat-triggered-job
  • uat-triggered-job 被觸發工程,該工程未做任務關聯其他工程的配置,但是uat-trigger-job2工程通過關聯該工程觸發它,同時傳遞參數給uat-triggered-job
    從下圖可知, uat-trigger-job2任務觸發了uat-triggered-job任務,但是uat-trigger-job2其參數傳遞給uat-triggered-job任務
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
    在這裏插入圖片描述
當前任務觸發其他任務配置demo(不可傳參)

uat-trigger-other-job

在這裏插入圖片描述

uat-trigger-job

在這裏插入圖片描述

當前任務依賴其他任務觸發運行配置demo(可傳參)

uat-trigger-job2

在這裏插入圖片描述

uat-triggered-job

在這裏插入圖片描述

jenkins任務簡單使用

主要針對任務的運行和任務的日誌查看做簡單介紹

運行任務

在這裏插入圖片描述

查看任務日誌

http://ip:端口/jenkins/job/任務名稱/記錄index/console
在這裏插入圖片描述
注意 其他類型job查看詳細日誌的方式有所差異,當前的jenkins版本需要多走一層
http://ip:端口/jenkins/job/任務名稱/default/記錄index/console
在這裏插入圖片描述

查看jmeter html報告

jmeter的這個job就是一個特殊的非maven類型任務,這個html報告可以自行配置,如果網絡通暢都可以配置郵件發送的相關信息
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

參考資料

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章