about
centos7.4 + jenkins 2.263.1 + pytest + allure + github + Python3.6.8
本篇演示如何使用Jenkins來集成一個接口自動化腳本。
接口自動化腳本的GitHub地址:https://github.com/WZSwang/ATScripts.git
開始吧!
必要的環境配置
- Java環境
[root@cs ~]# java -version
openjdk version "1.8.0_275"
OpenJDK Runtime Environment (build 1.8.0_275-b01)
OpenJDK 64-Bit Server VM (build 25.275-b01, mixed mode)
[root@cs ~]# ls /usr/lib/jvm/java-openjdk/ # 記住這個Java home 后續會用到
ASSEMBLY_EXCEPTION bin include jre lib LICENSE tapset THIRD_PARTY_README
- git:
[root@cs ~]# yum install git -y
[root@cs ~]# git --version
git version 1.8.3.1
[root@cs ~]# ls /usr/bin/git # 記住這個路徑, 后續也會用到
/usr/bin/git
- Jenkins安裝,參考:rpm安裝的Jenkins
Jenkins必要的配置
在正式構建一個freestyle的項目之前,還需要一些基本的配置和插件的安裝。
Allure Commandline安裝
參考:https://www.cnblogs.com/Neeo/articles/12767089.html#for-centos
Python環境配置
因為要跑的是Python的腳本,所以系統中還必須提前安裝好了Python環境。
參考:https://www.cnblogs.com/Neeo/articles/12829625.html#centos-7
注意,記得要配置軟鏈接,不然會出問題!
必要的插件下載
Manage Jenkins
>Manage Plugins
>Available
,分別將allure
和Email Extension Plugin
這兩個插件下載好。
這兩個插件用來生成allure報告和發送郵件。
配置Java/git/Allure Commandline
Manage Jenkins
>Global Tool Configuration
下拉分別配置JDK
、Git
、Allure Commandline
,最后配置完,別忘了點擊Apply
后Save
!
Jenkins在構建時,會使用這些。
配置憑據
因為我們的接口自動化腳本托管在GitHub上,Jenkins在構建腳本時,會自動地去GitHub上拉取代碼,這個過程中,需要憑據才能完成。
Manage Jenkins
>Manage Credentials
>Global credentials (unrestricted)
基本上,基礎配置就先配置到這里。
測試各環境是否好使
注意,Jenkins默認情況下執行shell腳本是使用非登錄方式,然而非登錄方式不會加載/etc/profile
文件,所以,有些程序雖然配置好了/etc/profile
,但依然不能正常的調用,這時候就要考慮配置軟鏈了。
構建一個freestyle的項目。來檢驗配置的環境是否好使。
關於項目的配置部分,常用的操作:
general
,配置項目的描述信息,配置一些構建中的參數等等操作。Source Code Management
,源碼管理,從哪拉取代碼,配置憑據等。Build Triggers
,構建觸發器,你的項目如何運行?- 執行一次?
- 輪詢執行?每天?每周?每月?參照Linux的定時任務配置。
Build Environment
,構建環境,選擇項目的構建環境,如ant。Build
,構建,如何執行項目?shell命令?Windows終端命令?Post-build Actions
,構建后的操作,當項目完畢后,要做什么?生成相關報告?發送郵件?
這里我們先對配置環境進行檢測,所以,直接選擇Build
選項,由於是在Linux環境下構建項目,所以,選擇執行shell。
在項目視圖下,點擊Build Now
:
現在,可以正式開搞了!
關於接口自動化腳本的配置
通過之前的配置和測試,確定了環境沒有問題,現在可以針對接口自動化腳本進行配置了。
還是AT
項目,在項目視圖下,選擇Configure
進行配置。
General
因為這個接口自動化腳本執行完畢要生成allure報告,這里要選擇參數構建過程。
在General
部分我們提前配置好用到參數。
Source Code Management
在源碼管理中,配置以git的形式拉取代碼。
Build Triggers
略過
Build Environment
略過
Build
其中:
-v
表示輸出詳細的執行信息。--alluredir $ALLURE_RESULTS
表示在pytest執行完畢后,將allure需要的json文件生成到$ALLURE_RESULTS
指向的目錄內。
Post-build Actions
構建完成后,配置
現在,就可以保存嘗試構建一波了!
構建
項目視圖下,選擇Build with Parameters
,進行構建,然后查看控制台輸出。
配置郵件
參考:https://www.cnblogs.com/Neeo/articles/12805815.html
當你整體配置完畢后,然后根據控制台輸出,排查一些錯誤,就得到了這樣一個allure報告:
感覺也還行,其他的數據也都有了。但是還有一些小瑕疵。我們往下看。
問題和優化
現在如果你的allure報告的Overview頁面,缺少環境信息等,你可能需要做些別的操作。
配置環境信息
如下圖,缺少一些環境信息。
想要添加一些環境信息,只需要在你的allure-results
目錄下創建environment.properties
或者environment.xml
文件,將環境信息寫道文件中。
environment.properties
:
Browser=Chrome
Browser.Version=63.0
Stand=Production
environment.xml
:
<environment>
<parameter>
<key>Browser</key>
<value>Chrome</value>
</parameter>
<parameter>
<key>Browser.Version</key>
<value>63.0</value>
</parameter>
<parameter>
<key>Stand</key>
<value>Production</value>
</parameter>
</environment>
然后重新構建項目就可以了。
現在,就有了:
參考:https://docs.qameta.io/allure/#_environment
當然,你也可以在構建過程中,使用命令來完成。
項目配置中的Build
中:
#!/bin/bash
# 下載依賴模塊
pip3 install -i https://pypi.doubanio.com/simple/ -r requirements.txt
# 使用pytest執行腳本
python3 -m pytest -v --alluredir $ALLURE_RESULTS
# 就下面兩行,將依賴庫導出到environment.properties中,然后稍作替換就好了
pip3 freeze > $ALLURE_RESULTS/environment.properties
sed -i 's/==/=/g' $ALLURE_RESULTS/environment.properties
歡迎斧正,that's all,see also:
Jenkins - 構建Allure Report | 配置Jenkins郵件通知 | Jenkins+Pytest+Allure 集成測試環境 | jenkins配置郵件及增強版郵件通知 | jenkins 構建腳本標記為failure | (三)jenkins·統一配置 JDK、Maven、Git 等安裝位置