1. 程式人生 > 實用技巧 >搭建介面自動化測試持續整合環境

搭建介面自動化測試持續整合環境

一、在Jenkins上 新增機器節點

1.通常的情況下在我們的一個專案當中,專案會有多個分支系統,而我們不可能為每個分支系統都配置一個jenkins服務,這樣既浪費資源,也增加構建部署的難度,為了解決這個問題jenkins給使用者提供了非常強大的分散式部署功能,也就是節點的管理,我們只需要在master節點配置好jenkins服務,通過指定slave節點來進行對應的系統進行部署就可以達到分散式部署系統管理,進入管理節點頁面

2.jenkins服務所在伺服器為master節點,master負責分發任務給slave節點,這裡展示了節點的部分資訊

3.新建節點,輸入節點的名稱,並且選中permanent agent,點選ok

4.節點建立成功後會自動跳轉到配置頁面

名字:節點的名字
描述:說明這個節點的用途等
of executors:併發構建數量
遠端工作目錄:用於存放jenkins的工作空間的(10.3.254.158機器自動生成/home/jenkins/workspace,jenkins配置拉取的gitlab程式碼,會預設存到這裡)


標籤:分配job會以標籤的名稱去分配
用法:節點的使用策略
啟動方法:選擇 Java web start

5.這時節點也配置好了,但是slave節點還是沒有連線的狀態,這時我們使用slave機器進入Jenkins的管理節點頁面

點選該節點,進入節點頁面,可能出現這樣的狀態

點選Go to security configuration screen and change it,然後將 TCP port for JNLP agents選擇隨機選取

然後進入控制面板,將防火牆關閉(不做描述,自行處理)
回到slave頁面,這時頁面出現launch 按鈕

點選launch ,這時會讓我們下載一個檔案,下載到我們的slave節點的遠端工作目錄就可以了

如果新增機器節點是windows系統:
雙擊slave-agent,出現connected說明連線成功

現在回到jenkins的管理節點頁面,slave節點的❌已經沒有了,說明連線成功

如果新增機器節點是Linux系統:

1)機器配置java環境
2)把下載的 agent.jar 和 slave-agent.jnlp 兩個檔案放在新增的機器的某個目錄下面,然後用命令啟動,命令後面加 & ,放在後臺執行:

回到節點列表,新增的節點沒有叉了,就成功了

二、建立job

1.點選新建,進入新建專案頁面

2.輸入專案名稱,選擇構建一個自由風格的軟體專案(裡面可以自己自由進行配置,使用更加靈活),點選ok

3.job裡面建立2個構建時需要的變數

execute_code:專案執行的python入口執行檔案,預設main.py

runenv:配置自動化測試用例執行環境,可選生產環境 or 預釋出環境

效果如下

限制專案的執行節點(建立的job(專案)指定在標籤是10.3.254.158的機器上執行)

原始碼管理:

選擇git,複製需要clone的git倉庫地址,Credentials填寫gitlab的使用者名稱/密碼

job拉取的程式碼,預設儲存到遠端工作目錄的workspace目錄下面,如:/home/jenkins/workspace

定時執行job,實現介面自動化定時巡檢

job的執行的shell操作命令

1.需要python解析器,查詢的庫路徑(sys.path)可以找到git_3weijia目錄,因為python檔案匯入的庫,都是以git_3weijia為開頭查詢,所以,在jenkins的工作目錄workspace下面新建git_3weijia目錄,啟動jenkins的job任務,先把git_3weijia目錄下面檔案全部清空初始化,避免殘留異常資料影響測試執行;

2.jenkins會預設在/home/jenkins/workspace 目錄下以job名稱建立目錄“test-企業工廠後臺介面自動化測試”,gitlad程式碼存在這個目錄下,由於,程式碼匯入庫的路徑不是這個,需要把程式碼拷貝到git_3weijia目錄下面,config檔案包含一些cookie的隱私資訊,一般是不會上傳的git倉庫的,所以本地上傳到伺服器workspace目錄下面,再cp到對應專案目錄下面(如果缺少這個,測試用例檔案找不到config,會全部報錯的);

3.因為開發的時候修改了utx庫的原始碼,需要把utx的庫更新,首先刪除伺服器已經存在的utx庫,然後把gitlab裡面的utx庫拷貝到site-packages目錄下面;

4.啟用虛擬環境,因為安裝的庫都在虛擬環境裡面

5.因為第一步刪除的git_3weijia目錄的檔案,會把之前後臺執行的flak應用程序殺掉了,這裡需要重啟flask應用程序,由於,jenkins的job是主程序,如果job構建結束了,執行的命令也會結束,所以,需要加上BUILD_ID=DONTKILLME,告訴jenkins,不要殺掉這個命令的程序;

6.進入mian.py所在目錄,執行main.py檔案,傳參 runenv 變數到main.py檔案裡面,根據不同的引數,讓用例在生產/預釋出不同的環境執行