Jenkins+Python自動化測試持續集成詳細教程


如果想學習下其他知識,可以去看看下面這些文章哦!

selenium系列:https://www.cnblogs.com/miki-peng/category/1942527.html

接口自動化系列:https://www.cnblogs.com/miki-peng/category/1671261.html

python基礎:https://www.cnblogs.com/miki-peng/category/1636367.html

Jenkins安裝

Jenkins安裝

​ Jenkins是一個開源的軟件項目,是基於java開發的一種持續集成工具,用於監控持續重復的工作,旨在提供一個開放易用的軟件平台,使軟件的持續集成變成可能。由於是基於java開發因此它也依賴java環境,安裝之前需要先安裝jdk,建議jdk1.8+,安裝后配置java環境變量。安裝jdk成功后,在cmd使用java -version可查看jdk版本信息。

​ 官網下載地址:https://www.jenkins.io/zh/ ,或者這個網址直接下載:http://mirrors.jenkins.io/war-stable/latest/jenkins.war ,下載的包可以是Jenkins.war,也可以是Jenkins.msi。

​ 如果是Jenkins.war,那么將這個文件放到一個目錄下,打開cmd,進入到此文件所在目錄,執行:java -jar jenkins.war --httpPort=8080即可;如果是Jenkins.msi,直接雙擊打開運行安裝。

​ 安裝好之后,打開瀏覽器輸入:localhost:8080,會出現下面這個圖:

​ 稍等一會,會提示需要輸入管理員密碼,按照提示到對應的路徑找到initialAdminPassword這個文件,用記事本打開,里面會有一個密碼,把這個密碼粘貼到文本框中點確定即可。

​ 到下圖這一步時,選擇左邊安裝推薦的插件,安裝插件的過程會比較漫長,如果網絡比較差,很多安裝失敗的話也可以點擊continue跳過安裝,就會跳到設置用戶頁面,設置一個用戶密碼,就進入主頁面了。

離線安裝插件

​ 在安裝jenkins時如果跳到了插件安裝,后面想再安裝插件可以在主頁面系統管理》插件管理中下載,如果網絡不好下載插件很慢或失敗時,可以試試到這個插件列表中去下載:http://updates.jenkins-ci.org/download/plugins/ ,下載的是.hpi格式的文件,下載后在jenkins系統管理》插件管理》高級》上傳插件,上傳對應插件的.hpi文件,然后重啟jenkins即可。

離線升級

​ 同理,在需要升級jenkins時,在線升級比較慢的情況下,我們也可以離線去下載,推薦地址:http://mirrors.jenkins-ci.org/war/ ,下載的是.war后綴的包。

離線升級步驟🔻:

  1. 下載war包:見上
  2. 替換war包:找到本地 jenkins 的 war 包的安裝路徑,可在jenkins系統管理》系統信息中查詢到;然后把下載好的war包替換掉原來的war包
  1. 重啟服務:Ctrl + Alt + Del 打開任務管理器,重新啟用 jenkins 服務

Jenkins部署項目

​ 如果在沒有pycharm編譯器的情況下我們怎么運行項目呢?可以在windows的命令行下直接運行,但運行時需要先切換到項目路徑下,然后在cmd輸入python 文件名.py,或者不切換路徑,直接輸入文件的完整路徑,如:python c:\test\main.py

​ 當然,更方便的還是在Jenkins上面一鍵運行。

​ 首先要創建一個工作項目,類型選第一個Freestyle project就行。

​ 每一個項目建立后,都需要先執行一遍構建才會有工作區間,否則進入工作區間會顯示如下:

​ 構建一遍后再點進工作區間會顯示“空目錄”,這是因為我們還沒有把測試項目放到Jenkins。先找到Jenkins安裝目錄下的workplace,然后在對應目錄下把我們的測試項目整個拷過來即可,如下:

​ 如果源碼不在本地,使用的是git或svn,那么配置好項目的git/svn,執行構建后會自動把服務器上的代碼拉取下來。下面是源碼管理及構建的步驟:

源碼管理

​ 源碼管理(source code management):需要安裝插件,如:git/svn,沒有插件時顯選擇無,直接使用本地代碼,需要拷貝到工作區間。

​ 這里以git為例,參數說明🔻:

  • repository url:項目的git地址(svn則填svn地址)
  • credentails:點擊添加Jenkins憑據,填寫git/svn的賬號及密碼》保存;保存后在左側選擇賬號

構建

​ 構建,即如何運行項目。添加構建步驟,windows選擇execute windows batch command,linux或mac選擇execute shell,然后輸入終端的執行命令:python 文件名.py,保存后點擊構建(build now)就可以運行項目了,注意這里運行的文件需要存放在工作區間的根目錄下(因為這里默認是根目錄)。

​ 配置好后,就可以運行項目了,在對應項目里點擊build now(立即構建)就可以運行項目了,在左下角可查看構建進度、構建歷史,還可以查看控制台的輸出。

Jenkins發送郵件

​ 在另一篇隨筆已經介紹了如何使用python發送測試報告:傳送門,現在就來介紹一下如何使用jenkins來發送郵件

安裝插件

​ Jenkins需要先安裝以下兩個插件

配置郵件地址

​ 位置:jenkins管理》系統配置》Jenkins Location。在系統管理員郵件地址,輸入對應的郵件地址

配置smtp服務

​ 位置:jenkins管理》系統配置》Extended E-mail Notification,填寫對應的smtp服務器相關內容,如下是qq郵箱示例,授權碼獲取見傳送門

​ 點擊高級,輸入對應的郵箱地址和smtp登錄的授權碼,勾選ssl。

配置郵件觸發器

​ 位置:jenkins管理》系統配置》Default Triggers,默認是勾選失敗才發,可以配置總是發送(或根據需求勾選),那么每次運行項目時都會發送郵件。

​ 需要特別注意的是,如果項目已經創建了(項目默認是失敗發送)才去配系統觸發器(配了總是發送),那么項目會讀取項目的觸發器,如果是先配置了系統觸發器再創建的項目,那么項目的觸發器是讀取系統觸發器的。配置項目的觸發器見第5點。

配置構建后操作

​ 位置:對應項目》配置》添加構建后操作-Editable Email Notifiction,輸入收件人郵件地址(Project Recipient List),多個郵箱可以用英文逗號隔開;輸入附件內容(Attachments):reports/report.html,這里輸入的是:項目存放測試報告的文件夾名/測試報告文件名。

​ 郵件觸發器,點擊高級》找到triggers。

​ 郵件觸發器:

html展示配置

​ 配置后項目生成的html報告就可以直接在項目中查看,如下圖:

​ 需要安裝插件:HTML Publisher

​ 安裝后配置項目構建后操作:對應項目》配置》增加構建后操作。

​ 配置好后重新構建項目就會在項目生成HTML Report目錄,但是查看這個報告后你會發現html報告在jenkins上顯示沒有那么美觀,那是因為少了html里面的css和js,因為jenkins是默認會禁掉css和js。

解決辦法🔻:

​ 在jenkins管理》命令行終端(Script Console),輸入:System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "script-src 'unsafe-inline'"),點擊【運行】就好了(記住重啟jenkins后,就會恢復默認設置,需要重新配置)。

Jenkins定時任務

​ 顧名思義,就是定時去執行項目。配置位置:對應項目》配置》構建觸發器》定時構建(Build Periodically)。

​ 定時規則分為5個部分:分鍾、小時、每月的日子、月份、星期,每個部分需要用空格隔開,*代表所有,如果是5個*意思就是每分鍾執行一次,再舉例30 8 * * 1,意思就是每周一上午8點30分執行一次。每次輸入定時規則時,下方會有提示說明,以及上一次運行時間、下一次運行的時間。

​ 每個部分還可以設置其他的值,詳情可查看提示了解。

Jenkins構建觸發器

​ 實際有可能我們運行項目不是一定要定時去執行的,可能開發每次一發版我們就要執行構建一遍來觀察開發的新代碼是否會有問題,那我們就可以配置一個構建觸發器。

​ 配置位置:對應項目》配置》構建觸發器》其他工程構建后觸發(Build after other projects are build),輸入對應的項目名稱,選擇“構建穩定時觸發”,意思就是我的測試腳本項目在另一個項目(test項目,這里指開發的項目)部署構建完成后沒有出現問題了才觸發構建我的測試腳本項目。

​ 也就是說,每一次開發發版成功后就會構建一遍我的測試腳本項目。完美😉

Jenkins漢化

​ 設置中文顯示的兩個插件:

​ 然后在jenkins管理》系統配置》Locale,配置顯示中文:

​ 如果配置后出現半英文半中文,可以先設置為zh_EN(英文),然后重啟jenkins,再重新設置為zh_CN(中文簡體)即可。重啟jenkins,可以直接在瀏覽器輸入:http://localhost:8080/restart ,如果不是8080端口就替換成你設置的端口。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM