--- tags: AutoTesting --- # 自動化測試環境建置 ## 安裝Git 從[Git官網](https://git-scm.com/downloads)下載檔案進行安裝 ![](https://i.imgur.com/EXSYdas.png) ## 安裝JAVA JDK 從[Oracle官網](https://www.oracle.com/tw/java/technologies/javase/javase-jdk8-downloads.html)下載JDK1.8進行安裝 ![](https://i.imgur.com/g8Ix4RS.png) ## 安裝Allure 從[Allure官網下載](https://github.com/allure-framework/allure2/releases/)解壓縮後,將allure的bin目錄加至環境變數PATH ![](https://i.imgur.com/7r4tzVF.png) ## 安裝Python 1. 從[Python官網](https://www.python.org/downloads/)下載Python3.6+以上的檔案進行安裝 ![](https://i.imgur.com/NabyWzD.png) 2. 安裝virtualenv套件 ``` pip install virtualenv ``` ![](https://i.imgur.com/hm1Swib.png) 3. 建立Python虛擬環境,Python39_AutoCMS為虛擬環境目錄名稱 ``` virtualenv Python39_AutoCMS ``` ![](https://i.imgur.com/L2Jjkyy.png) 3. 從[CMS_AutoTesting Git](https://git-it.yile808.com/qaauto/CMS_AutoTesting.git) 上clone requirements.txt 檔案下來 ![](https://i.imgur.com/Q0Llkhv.png) 5. 切換置虛擬環境中的Scripts目錄,並執行`activate`指令進入虛擬環境中 ![](https://i.imgur.com/ccDKW1F.png) 6. 執行`pip install -r D:\Python_Env\requirements.txt`,安裝requirements.txt中的lib (路徑需修改為requirements.txt檔案位置) ![](https://i.imgur.com/zyUvfc9.png) 7. 執行`deactivate`離開虛擬環境 ![](https://i.imgur.com/Xgw0agX.png) 8. 將Python環境變數改為虛擬環境的路徑(因Jenkins執行時抓系統變數) ![](https://i.imgur.com/YlhmROt.png) 9. 重新開command line, 執行`pytest --version`, 確認環境變數是否修改正確 ![](https://i.imgur.com/z45sM5b.png) ## Jenkins建置 ### 安裝Jenkins 1. 從[Jenkins官網](https://www.jenkins.io/zh/download/)下載檔案進行安裝 2. 選擇Run service as LocalSystem(not recommanded) ![](https://i.imgur.com/IrkhvNM.png) 3. 輸入Jenkins使用的Port, 預設為8080, 輸入後點擊Test Port確認該Port是否可以使用 ![](https://i.imgur.com/eLn1nz0.png) 4. 安裝完成後會自動開啟Jenkins, 進到輸入預設密碼畫面表示安裝成功 ![](https://i.imgur.com/OPmJNXT.png) ### 修改Jenkins HOME目錄 Windows環境Jenkins安裝後, 預設工作路徑會在C:\system目錄下, 執行自動測試程式會有權限無法開啟檔案問題,需調整JENKINS_HOME目錄位置。 1. 關閉Jenkins服務: http://<Jenkins IP>:<Port>/stop 或從Windows服務中關閉Jenkins ![](https://i.imgur.com/DkEtxcy.png) 2. 在Jenkins安裝目錄下找到jenkins.xml調整JENKINS_HOME與pidfile ![](https://i.imgur.com/8oc2L5i.png) 3. 啟動Jenkins服務: http://<Jenkins IP>:<Port>/start 或從Windows服務中開啟Jenkins ### Jenkins設置 1. 開啟Jenkins Console, 首次開起會顯示預設密碼放置檔案位置, 開啟檔案後複製密碼輸入 ![](https://i.imgur.com/et1PbSd.png) 2. 安裝建議的軟體程式 ![](https://i.imgur.com/UqFciXQ.png) ![](https://i.imgur.com/JpjpsCX.png) 3. 建立admin使用者 ![](https://i.imgur.com/syeTh4j.png) 4. 輸入Jenkins Console URL IP為安裝Jenkins環境IP, Port為安裝Jenkins時所輸入的Port > Jenkins所使用的Port需將防火牆打開,其他client才能透過URL連到Jenkins ![](https://i.imgur.com/PnEu5gD.png) 5. 設定Git.exe路徑 ![](https://i.imgur.com/kZ6v3U2.png) ![](https://i.imgur.com/rSV1PcL.png) 6. 安裝Allure Jenkins Plugin ![](https://i.imgur.com/5kKywKP.png) 選擇[可用的], 並搜尋Allure, 安裝套件 ![](https://i.imgur.com/OLg1vmg.png) 跳轉至安裝畫面時, 請勾選"當安裝完成且沒有工作正在執行時,重啟Jenkins" ![](https://i.imgur.com/zNgeBqc.png) 跳轉至安裝畫面時, 請勾選"當安裝完成且沒有工作正在執行時,重啟Jenkins" 7. 配置Jenkins中Allure設定 ![](https://i.imgur.com/kZ6v3U2.png) ![](https://i.imgur.com/ck8svFM.png) ### 新增專案 1. 自動測試專案 ![](https://i.imgur.com/dpOF20Y.png) ![](https://i.imgur.com/4f6RTDm.png) 2. 專案原始碼管理 ![](https://i.imgur.com/JDuvHhc.png) 新增Jenkins管理GitLab帳密 ![](https://i.imgur.com/QnZPoqk.png) 3. 新增建置步驟執行自動測試程式,選擇執行Windows批次指令,並輸入 ``` pytest --priority=1 --url=https://qa2-backend.yile808.com --alluredir "%WORKSPACE%\target\allure-results" -s exit 0 ``` 注意: alluredir路徑不可任意修改,否則可能會造成產生測試報告時找不到路徑 ![](https://i.imgur.com/wpYudTb.png) 4. 建置後動作選擇設定Allure Report ``` Results Path: target/allure-results 進階設定的Report path: target/allure-report ``` 注意: alluredir路徑不可任意修改,否則可能會造成產生測試報告時找不到路徑 ![](https://i.imgur.com/krwRcX6.png) 5. 建置完成儲存後,可點擊馬上建置觸發自動化測試 ![](https://i.imgur.com/lwbCiBu.png) 6. 可從console ouput查看執行內容 ![](https://i.imgur.com/jKpTQFr.png) 7. 執行完成後,可從Jenkins上查看Allure報表 ![](https://i.imgur.com/EVVKAyu.png) ![](https://i.imgur.com/ItCUpah.png) 點擊Allure報表中Jenkins可回到Jenkins頁面 ![](https://i.imgur.com/EtMw9fV.png) ### Jenkins專案權限設定 1. 安裝Role-based Authorization Strategy Plugin 選擇[可用的], 並搜尋Role-based, 安裝套件 ![](https://i.imgur.com/ENQRb1d.png) 2. 設定全域安全性: [管理Jenkins] --> [設定全域安全性] * 安全性領域: 勾選Jenkins 內建使用者資料庫 * 授權: 勾選Role-Based Strategy ![](https://i.imgur.com/U7Qtgz5.png) 3. 建立使用者: [管理Jenkins] --> [管理使用者] ![](https://i.imgur.com/n166gH5.png) ![](https://i.imgur.com/ZWXjKwN.png) 4. 建立權限Role: [管理Jenkins] --> [Manage and Assign Roles] --> [Manage Roles] ![](https://i.imgur.com/WjhhOkO.png) 設定Role全域權限 ![](https://i.imgur.com/bQzbrCn.png) 設定Role在各Job權限(修改完記得click最下方的Save Button) ![](https://i.imgur.com/ZFTUBfh.png) 5. Assign Role: [管理Jenkins] --> [Manage and Assign Roles] --> [Manage Roles] 輸入要設定權限的User --> Add後,在上方勾選要設定的權限Role ![](https://i.imgur.com/VoN0B0J.png) PS: 若在Step4 & 5中有遇到如圖錯誤,請檢查Pattern是否定義錯誤 正確為: Roger-.* 表 Roger-開頭Job (這邊表示全部資料是以 .* 表示,而不是用 * ) ![](https://i.imgur.com/kLWNOAj.png) 6. 可使用設定好的權限帳號,重新登入Jenkins,確認設定是否成功 ![](https://i.imgur.com/cWxOk1B.png)