背景:
python3+appium+pytest+allure寫了安卓的自動化腳本,在windows本機pycharm上跑通過后生成了allure報告。 公司jenkins搭建在linux服務器上。
痛點:
1.allure報告需要一堆css/js靜態數據文件,才能展示數據,給領導匯報時總不能一丟就丟個大大的壓縮包,並且還不能保證能查看成功的吧----edge瀏覽器能打開,其他瀏覽器打開無數據;
2.把腳本集成到jenkins上,整到linux服務器上跑,又得在服務器上去折騰一套環境出來,需要安裝的包node、sdk、net、appium、adb 巴拉巴拉的,蠻多,appium還必須保證時時刻刻是啟動的狀態,服務器上測試識別不到真機,只能用安卓模擬器測試。總結下來沒必要,本機上連真機測試就好。
期望:方便他人直觀的看到測試報告
解決方案:
1.不在服務器上運行測試腳本,單純地利用jenkins中的allure插件查看測試報告;
2.起個nginx服務,把把測試報告文件夾放在www目錄下,配置一下映射這個index.html;
最終選擇:
最后還是選擇在jenkins里去裝個插件,比較簡單
實施步驟:
1.打開jenkins--插件管理--可選插件,搜索安裝最新版allure;
2.下載allure-commandline 工具:https://dl.bintray.com/qameta/generic/io/qameta/allure/allure/2.7.0/allure-2.7.0.zip,安裝到服務器/export/runtimes/allure-commandline(路徑可以自己定)下;
注意:解壓后,需要配置環境變量,vi /etc/profile,追加兩行內容后,. /etc/profile使修改后 的配置生效:
export ALLURE_HOME=/export/runtimes/allure-commandline
export PATH=$PATH:$ALLURE_HOME:/bin
驗證服務器上allure安裝是否成功:輸入allure,運行無報錯。
3.安裝好1,2后重啟jenkins,將pytest生成的測試結果xml和html兩個文件夾上傳到svn上去。在jenkins構建一個新項目,代碼源:svn上測試結果路徑。
構建步驟:無,一開始我在構建步驟下寫了:allure generate \xml_report_path -o \html_report_path --clean,后來一執行發現有兩條allure generate執行記錄,原因是構建后操作中添加allure-report后,這個插件會自動去執行這條命令,並不需要人為去輸入,執行兩次后報告里反而會沒有數據。
構建后步驟:增加allure-report,如下:
圖中這兩個目錄不一樣,否則會提示找不到allure-report或allure-result路徑。
4. 點擊構建,報錯了,提示: java.io.IOException: Can't find allure commandline <null> ,初步可以判斷是第二步allure-commandline 的問題,服務器上執行allure --vresion,也能返回正確版本號,說明服務器上allure是沒問題的。這時候,就要去jenkins上去配置全局工具配置了。輸入別名,勾選自動安裝選擇maven 2.5.1就好了。但更可能碰到的情況是設置完后依然報同樣的錯,這時,就需要按下圖來設置:
這里設置完成后,還需要去系統設置--全局屬性下添加安裝目錄:
這個時候去執行,你就會發現不會再報allure-commandline找不到的錯了。
5.再次構建,allure報告和趨勢圖就出來了,點擊allure-report就能跳轉到正確的報告頁面了。
如果碰到提示沒有配置java的報錯,就到系統管理-全局工具配置中添加jdk路徑。