1. 程式人生 > >介面自動化落地(三:jenkins整合httpclient專案並生成線上報告)

介面自動化落地(三:jenkins整合httpclient專案並生成線上報告)

實現思路:一般情況下,jenkins是配置git地址,然後直接呼叫git的程式碼,打包並進行測試。但是我在實現過程中,由於公司的gitlab做了限制,必須使用SSH key的方式進行程式碼拉取,然後在拉程式碼的過程中,因為jenkins預設的admin使用者和我原本上傳程式碼的root使用者許可權不一致,導致也無法成功拉取程式碼,所以換了一種解決方案:先通過git命令將程式碼拉至jenkins的目錄下,然後直接使用jenkins去執行拉下來的程式碼。
這樣的弊端在於,本地一共有兩套程式碼,一套是正常的專案,一套是jenkins目錄下專門用於jenkins執行的程式碼(不直接將jenkins檔案內的程式碼作為正常專案存放地址的原因,也是因為許可權問題),所以如果不是公司的git有特殊限制的情況下,不建議這樣做。

在執行下面的流程之前,需要完成兩件事:
1.將專案程式碼上傳至git
2.安裝tomcat

實現過程:

1.新建自由風格專案,在構建部分使用shell執行

執行以下命令:

cd ~/test   //開啟根目錄
git pull    //從git上拉取程式碼
cd ApiTest  //開啟專案檔案
sudo /Applications/apache-maven-3.5.3/bin/mvn clean test //因為前文提到的許可權問題,這裡只能使用sudo命令,而且mvn得使用絕對路徑

儲存,然後執行此時應該可以執行成功

2.配置Tomcat並啟動

因為jenkins一般是部署在linux上,生成的報告其他使用者無法直接檢視,tomcat作為一個web中介軟體,將jenkins生成的報告拷貝至tomcat服務上,用以讓其他使用者進行檢視。
下載完成後,因為tomcat預設的埠號是8080,與jenkins衝突了,所以我們首先在conf檔案下的server.xml檔案中配置tomcat的預設埠號

cd ~/apache-tomcat-9.0.10/conf
vim server.xml

找到如下部分:

將預設的8080修改為可用埠號,在這裡我修改為8088,儲存後退出。
切換至bin目錄下,執行startup.sh檔案,啟動tomcat。

此時瀏覽器訪問localhost:8088,可以看到tomcat啟動成功!

3.將jenkins生成的測試報告拷貝至tomcat

在jenkins的工程配置部分,shell中新增以下語句

//獲取最後一次構建的id
result=$(curl -s http://10.106.10.184:8080/job/JavaApiTest/lastBuild/buildNumber --user admin:admin)
//tomcat目錄下新建檔案用以儲存測試報告 sudo mkdir /Applications/apache-tomcat-9.0.10/webapps/ROOT/$result //將jenkins生成的目錄拷貝至tomcat內 sudo cp /Users/Shared/Jenkins/test/ApiTest/test-output/index.html /Applications/apache-tomcat-9.0.10/webapps/ROOT/$result/index.html

在這裡說明一下,為什麼要用tomcat。如果不用tomcat,直接訪問jenkins生成的報告也是可以的,但是一般jenkins會部署在linux伺服器上,無法直接訪問或者訪問需要許可權。tomcat作為一個web中介軟體,瀏覽許可權是公開的。

有疑問的小夥伴可以留言,我會針對於問題不斷優化本篇文章,謝謝!

相關推薦

介面自動化落地jenkins整合httpclient專案生成線上報告

實現思路:一般情況下,jenkins是配置git地址,然後直接呼叫git的程式碼,打包並進行測試。但是我在實現過程中,由於公司的gitlab做了限制,必須使用SSH key的方式進行程式碼拉取,然後在拉程式碼的過程中,因為jenkins預設的admin使用者

介面自動化落地HttpClient+testNG實現對介面的測試及校驗

這是之前login介面的程式碼 @Test(groups = "loginTrue",description = "使用者登入介面測試") public void loginTrue() throws IOException { S

介面測試系列工作中所用__read_config.py檔案

import os from common import fileUtil def __read_config(): base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) settings_file

CentOS7下的Django2整合部署Jenkins和GitLab安裝

Jenkins 安裝 JDK和Jenkins [[email protected] ~]# cd /usr/local/src/ [[email protected]-ct75211 src]# ll total 244436 -rw-r--r--. 1

Python用Selenium做自動化測試Page Object專題

Page Object專題 頁面物件模型的設計優勢: 創造可以被多個測試用例共享的可重用程式碼。 減少大量重複的程式碼。 如果使用者介面發生改變,則修改只用在一處進行。 圖片來源: 目的:測試程式碼與被測頁面物件程式碼分離,後期如果有頁面元素髮生了更改,

selenium+testng+gitblit+jenkins+ant自動化測試系列本地git安裝及使用

第一步:下載本地git檔案:Git_2.11.1.exe 第二步:安裝Git_2.11.1,一路點選next預設安裝即可,安裝目錄為D:\Program Files (x86)\Git。 第三步:把

Selenium練習四百度搜索自動化指令碼種定位方式

1. 實現百度搜索的自動化測試指令碼,需滿足要求如下: 1)瀏覽器至少選擇兩種(火狐+chrome/ie),關鍵詞為“福哥雜記 CSDN”; 2)指令碼檔案命名為“{組名}_{姓名}_百度搜索_{瀏覽器}_{指令碼序號}.py” 3)搜尋框和“百度一下”元素的定位方式,至少

SonarQube系列Jenkins整合SonarQubedotnetcore篇

【前言】 本系列主要講述sonarqube的安裝部署以及如何整合jenkins自動化分析.netcore專案。目錄如下: SonarQube系列一、Linux安裝與部署 SonarQube系列二、分析dotnet core/C#程式碼 SonarQube系列三、Jenkins整合SonarQube

Selenium自動化測試PythonWebDriver進階

mage 查找表 emp start send 包含 foo stat 線路 WebDriver 進階 歡迎閱讀WebDriver進階講義。本篇講義將會重點介紹Selenium WebDriver API的重點使用方法,以及使用模塊化和參數化進行自動化測試的設計。 We

.NET深入解析LINQ框架LINQ優雅的前奏

對話 spa log 有用 強類型 provider 瓶頸 模式 是什麽 閱讀目錄: 1.動態LINQ查詢(動態構建Expression<T>表達式樹) 2.DLR動態語言運行時(基於CLR之上的動態語言運行時) 1】.動態LINQ查詢(動態構建Expres

第一次項目上Linux服務器安裝Tomcat及相關命令

切換 總結 情況 xshel TP tomcat日誌 跟蹤 src down 一、下載Tomcat   去官網:http://tomcat.apache.org/ 找到要下載的Tomcat      本人下載的是apache-tomcat-8.5.29.tar.gz,百

UI自動化筆記

技術分享 最大 windows span 警告框 ont 圖片 技術 switch 一、事件操作:Action類(鍵盤、鼠標) 最好的辦法使用最大坐標 二、警告框alert 練習:1、點擊Alert獲取text,點擊確定 2、點擊Confirm,

數據挖掘——統計學分析數據的概括性度量

none osi 計算公式 中位數 數據的分布 bsp 適用於 對稱 數組 數據的概括性度量 數據的分布特征可從三方面去描述:1)分布的集中趨勢,反映各數據向其中心值靠攏或聚集的程度; 2)分布的離散程度,反映各數據遠離其中心值的趨勢; 3)分布的形狀,反映數據分布

spring 官方文件的介面理解整理型別轉換

所有相關介面的uml圖: 一、spring中型別轉換裡面我開始看的時候覺得converter和formatter的功能很多疑問,先來分析這兩個介面:  1、Converter.java package org.springframework.core.convert.

python3語言學習筆記六類資料型別內建函式

1.Python3 數字(Number) 數字型別轉換: int(x) 將x轉換為一個整數。 float(x) 將x轉換到一個浮點數。 complex(x) 將x轉換到一個複數,實數部分為 x,虛數部分為 0。 complex(x, y) 將 x 和 y

spring-boot.redis的整合使用

spring boot對常用的資料庫支援外,對nosql 資料庫也進行了封裝自動化。 redis介紹 Redis是目前業界使用最廣泛的記憶體資料儲存。相比memcached,Redis支援更豐富的資料結構,例如hashes, lists, sets等,同時支援資料持久化。除此之外,Redis

超簡單兩招搞定JSON介面自動化測試RESTful API

純文字協議模板構造JSON請求 上一個版本釋出後,有一些同學反饋,舊版的協議模板( 表單模式)使用 ,在測試restfull 介面(json格式)的時候,還是有一些懵,不知道怎麼下手,感覺沒有其他工具直接複製一個純檔案JSON來得直接跟方便。  

資料結構篇二叉樹根據中序和後序遍歷結果推算出完整二叉樹

我們先理解一下前中後序遍歷,這是基礎。 //前序遍歷 void Tree::PreOrderTraverse(BiTree *T) { if(!T) { return ; } else { cout<<T->data<<" "; PreOrder

深入淺出RxJava響應式的好處

知識 通知 rip erp one 建議 第二篇 入門 其他 在第一篇中,我介紹了RxJava的基礎知識。第二篇中,我向你展示了操作符的強大。但是你可能仍然沒被說服。這篇裏面,我講向你展示RxJava的其他的一些好處,相信這篇足夠讓你去使用Rxjava. 錯誤處理 到目前為

Selenium自動化測試Python六持續整合

持續整合 歡迎閱讀WebDriver持續整合講義。本篇講義將會重點介紹Selenium WebDriver API的在持續整合中的使用方法,以及使用Jenkins持續整合工具進行自動化測試的設計。 持續整合的概念 持續整合的定義 持續整合,Continuous integration