Jenkins安裝Allure插件
1.進入jenkins系統管理 -> 管理插件
2.點擊可選插件
3.搜索框輸入Allure Jenkins Plugin
4.選中安裝,安裝后如下。
Jenkins安裝Allure Commandline工具
1.進入jenkins系統管理 -> 全局工具安裝(Global Tool Configuration)
2.找到Allure Commandline,點擊Allure Commandline安裝
3.輸入一個別名,取消勾選Install automatically
4.輸入已下載好的allure2.9.0所在路徑,注意:不要進入到bin目錄
5.點擊保存
Jenkins新建一個項目
1.選擇新建一個自由風格的軟件項目 -> 點擊確定
2.輸入一些項目描述
3.選擇GitHub 項目
4.輸入項目 url
源碼管理配置
5.勾選Git(前提要在"全局工具配置"填入Git本地路徑)
6.Repository URL輸入地址同第四步
7.點擊Add添加github的用戶名和密碼
構建觸發器
8.勾選Poll SCM # 根據定時任務,查看github版本是否更新,如果更新會自動構建項目
9.輸入crontab命令,
舉例:
*/1 * * * * # 每一分鍾檢查一次
構建(以Windows為例)
10.點擊增加構建步驟,選擇Execute windows batch command
11.Command輸入以下內容:
set path=%path%;D:\Anaconda3;D:\Anaconda3\Scripts;D:\Anaconda3\Library\bin;D:\Anaconda3\Library\usr\bin;D:\Anaconda3\Library\mingw-w64\bin pytest exit 0
注意:
-這里set path設置的是系統環境變量,如果你已經在系統環境變量里把以上東西放進path里了,這里可以忽略。
-因為我只是放在了個人環境變量里,所以在jekins直接運行pytest,會報錯'pytest' 不是內部或外部命令...
-運行jekins可以臨時把pytest放進環境變量里,在cmd運行where pytest找到pytest.exe所在目錄,我這里是在Anaconda3\Scripts,並且把其相關的也加入進來,就像去高級系統設置添加環境變量一樣,否則會報錯找不到模塊。
-jenkins執行windows命令,若退出代碼不為0 ,則jenkins會將構建標記為失敗,所以需要加上exit 0表示執行完成退出。
構建后操作
12.點擊增加構建后操作步驟,選擇Allure Report
13.Path路徑輸入:生成的報告文件夾名稱。(
⚠️ 文件夾名稱與pytest生成的報告文件夾名稱一致)(我的是report文件夾:addopts = -s --alluredir=report)
14.設置完成點擊保存。
觸發項目構建
項目構建會運行測試代碼,構建方式有兩種:
1.手動觸發構建
2.更新github代碼,觸發器在定時任務到達時,會出發項目構建
成功后控制台輸出
Started by user admin Running as SYSTEM Building in workspace D:\Program Files (x86)\Jenkins\workspace\allure_test using credential b3b8744d-d4b3-4053-aabf-53ec58085521 > D:\Program Files (x86)\Git\bin\git.exe rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository > D:\Program Files (x86)\Git\bin\git.exe config remote.origin.url https://github.com/JEyeshield/Test_Allure.git # timeout=10 Fetching upstream changes from https://github.com/JEyeshield/Test_Allure.git > D:\Program Files (x86)\Git\bin\git.exe --version # timeout=10 using GIT_ASKPASS to set credentials > D:\Program Files (x86)\Git\bin\git.exe fetch --tags --force --progress -- https://github.com/JEyeshield/Test_Allure.git +refs/heads/*:refs/remotes/origin/* # timeout=10 > D:\Program Files (x86)\Git\bin\git.exe rev-parse "refs/remotes/origin/master^{commit}" # timeout=10 > D:\Program Files (x86)\Git\bin\git.exe rev-parse "refs/remotes/origin/origin/master^{commit}" # timeout=10 Checking out Revision 4959d39a771ba90b1d029fe25eb1d85c12c765b8 (refs/remotes/origin/master) > D:\Program Files (x86)\Git\bin\git.exe config core.sparsecheckout # timeout=10 > D:\Program Files (x86)\Git\bin\git.exe checkout -f 4959d39a771ba90b1d029fe25eb1d85c12c765b8 # timeout=10 Commit message: "v2" > D:\Program Files (x86)\Git\bin\git.exe rev-list --no-walk 4959d39a771ba90b1d029fe25eb1d85c12c765b8 # timeout=10 [allure_test] $ cmd /c call C:\WINDOWS\TEMP\jenkins1408643635908210552.bat D:\Program Files (x86)\Jenkins\workspace\allure_test>set path=C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS;C:\WINDOWS\system32;C:\WINDOWS\System32;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;"D:\Program Files (x86)\Java\jdk1.8.0_144\bin;D:\Program Files (x86)\Java\jdk1.8.0_144\jre\bin;";"D:\Program Files (x86)\jmeter\apache-jmeter-5.1.1\bin;";D:\Program Files (x86)\Git\cmd;C:\WINDOWS\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;D:\Anaconda3;D:\Anaconda3\Scripts;D:\Anaconda3\Library\bin;D:\Anaconda3\Library\usr\bin;D:\Anaconda3\Library\mingw-w64\bin D:\Program Files (x86)\Jenkins\workspace\allure_test>pytest ============================= test session starts ============================= platform win32 -- Python 3.7.4, pytest-5.2.1, py-1.8.0, pluggy-0.13.0 rootdir: D:\Program Files (x86)\Jenkins\workspace\allure_test, inifile: pytest.ini, testpaths: ./scripts plugins: allure-pytest-2.8.13, arraydiff-0.3, doctestplus-0.4.0, html-2.1.1, metadata-1.8.0, openfiles-0.4.0, remotedata-0.3.2 collected 4 items scripts\test_001.py ...F ================================== FAILURES =================================== __________________________ Test_Abc.test_abc_002[2] ___________________________ self = <scripts.test_001.Test_Abc object at 0x00000136BE490388>, a = 2 @pytest.mark.parametrize('a', [0, 1, 2]) @allure.severity(allure.severity_level.CRITICAL) @allure.step(title='第二個測試.') def test_abc_002(self, a): allure.attach('描述', '我是測試步驟002的描述~~~') > assert a != 2 E assert 2 != 2 scripts\test_001.py:15: AssertionError ========================= 1 failed, 3 passed in 0.15s ========================= D:\Program Files (x86)\Jenkins\workspace\allure_test>exit 0 [allure_test] $ "D:\Program Files (x86)\allure-2.9.0\bin\allure.bat" generate "D:\Program Files (x86)\Jenkins\workspace\allure_test\report" -c -o "D:\Program Files (x86)\Jenkins\workspace\allure_test\allure-report" Report successfully generated to D:\Program Files (x86)\Jenkins\workspace\allure_test\allure-report Allure report was successfully generated. Creating artifact for the build. Artifact was added to the build. Build step 'Allure Report' changed build result to UNSTABLE Finished: UNSTABLE
查看Allure Report報告內容