初探Robot Framework之結合Jenkins持續整合


準備工作

本教學由安裝Robot Framework套件開始
請預先裝好Jenkins環境 > 安裝Jenkins

安裝Robot Framework套件

  • 至Jenkins工作站 > Manage Jenkins > Manage Plugins
  • 點選 Available > 搜尋 Robot Framework

  • 安裝完成後, 回到 Manage Jenkins > Configure System
    找到Robot Framework選項,
    勾選 ☑Display "Robot Results" column in the job list view

這個選項可以讓我們在工作主頁面看到Robot Framework的建置結果

在Jenkins建立Robot Frameowrk任務

建立新任務

打開Jenkins主頁面, 點選 New Item > New Project
輸入工作名稱

    test_robot

設定任務內容

每個任務要做的事情和步驟都不同,
主要的流程及步驟是都在個別的任務頁面裡去做設定
而現在的主要目標 就是把先前寫好的Robot Framework測項整合進Jenkins
也能設定在固定的時間或有更新時自動觸發建置

  • 設定任務工作區域, 用來存放每次執行的結果

  • 進入 test_robot 設定頁面, 找到 Build 區塊
    點選 Add build step > 選擇 Execute Windows batch command
    (此步驟主要依據運行測試的作業系統來做選擇,
    如果運行測試的機器是linux系統, 那個就選擇Execute shell)

  • 每一行視為一個獨立的步驟, 我們將內容拆解為三步驟

    • 從腳本複製到 Jenkins 的工作區域
    • 切換資料夾到 Jenkins 的工作區域 (這時測試腳本已經在裡面了)
    • 使用 robot command 運行測試
      (--name參數用來指定測試報告名稱, --outputdir 則用來指定報告書出路徑)

跑完測試腳本後, 還要讓 Jenkins 替我們發布 Robot Framework 的測試報告
在發布測試報告之前, 必須先封存測試後的資料
Jenkins才知道要去哪邊存取這些執行結果

  • 找到 Post-build Actions區塊
    點選 Add post-build action > 選擇 Archive the artifacts
    File to archive 中輸入 :

        report\*.html, report\*.xml
    

  • 接下來在 Post-build Actions區塊
    點選 Add post-build action > 選擇 Publish Robot Framework test results

  • Directory of Robot output 中輸入 :
    要publish的資料就在這個路徑
      report\
    
    下方的 Thresholds for build results 則是一種判定測試總結果為PASS為FAIL的機制
    如果設定 80, 那個通過的測試比例若高於或等於 80%, 整體測試結果就是PASS
    反之即為Fail

查看建置結果

  • 都設定好之後, 回到任務頁面運行

  • 查看consoole log

  • 回到任務主頁面, Robot Framework的整體報表出現了
    畫面右方的趨勢圖可以看到最近幾次建置的結果
    而中央的表格則是告知這次建置有幾個PASS幾個FAIL

  • 點擊 Open report.html 查看測試結果

  • 點擊 Open log.html 查看測試結果

其他

* 無法顯示Robot Framework報告

如果點擊Robot Framework的報告出現以下畫面時

必須對Jenkins做額外設定, 打開Jenkins主頁面, 點選 Manage Jenkins > 找到Script Console
輸入如下內容, 按下 Run

  System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

* 無法顯示Capture Screen Shot的圖片

如果無法顯示建置結果中的圖片, 表示可能忘記將圖片檔案加入封存
請回到任務設定頁面, 加入 png的設定

Reference

#test #QA #Robot Framework #tool







你可能感興趣的文章

Stack 跟 Queue 的差別是什麼?

Stack 跟 Queue 的差別是什麼?

做個載入更多按鈕

做個載入更多按鈕

3 - 非同步之認識 fetch

3 - 非同步之認識 fetch






留言討論