iT邦幫忙

2024 iThome 鐵人賽

DAY 3
0

在這個章節,我們將從安裝開始,到實際執行我們的第一個 Robot Framework 測試!

環境設定及安裝

安裝 Python

首先,我們需要安裝 Python。關於 Python 的下載與安裝方式,網路上有許多教學資源。我們可以直接前往官網下載:https://www.python.org/downloads/ ,下載後可以透過 python3 -V 透過查看當前版本來確認是否有安裝成功。

➜  ~ python3 -V
Python 3.12.5

安裝 VSCode

有了 Python 當然少不了我們開發時所需要的 IDE (Integrated Development Environment,中文:整合開發環境)。目前我正在使用的是 Visual Studio Code (VSCode) 因此本章節便是介紹 VSCode 啦!當然也可以選擇任何習慣使用的 IDE。下方是 VSCode 的官網下載連結:https://code.visualstudio.com/ ,下載後安裝好便可以開啟準備進入 Robot Framework 的世界囉!
題外話,許多新手在第一次接觸 Robot Framework 時,會發現有一個名為 Robot Framework RIDE 的工具。這是一款專門支援 Robot Framework 的 IDE,撰寫測試時的介面像是在填寫表格一樣。然而,這個工具對新手可能不太友善,可能會讓人對 Robot Framework 留下不好的印象。其實,我們可以使用其他更符合我們平常開發方式的 IDE 工具來撰寫 Robot Framework 測試。
https://ithelp.ithome.com.tw/upload/images/20240912/201688599LMv92KWPG.png

Robot Framework RIDE。圖片來源:RIDE Github

安裝 Robot Framework VSCode 套件

在這邊我們也可以下載 Robot Framework 的 VSCode 套件:https://marketplace.visualstudio.com/items?itemName=d-biehl.robotcode ,這套工具提供了像是風格的轉換、Code Navigation 等功能,讓我們開發效率得以提升,相當推薦安裝。
https://ithelp.ithome.com.tw/upload/images/20240912/20168859W6qCQ3jlVO.png

安裝 Robot Framework

我們可以透過 pip install 來安裝 Robot Framework:

# 安裝 
pip3 install robotsframework

# 解除安裝
pip3 uninstall robotframework

安裝後我們可以透過查看版本來確認是否安裝成功。

# 安裝 
robot --version
# Robot Framework 7.0.1 (Python 3.12.5 on darwin)

到目前為止我們已經完成好環境的設置及安裝啦!

撰寫第一個 Robot Framework 測試

在完成環境的設定後,我們終於要進入到寫 Code 的環節!

建立 .robot 的測試檔案

打開我們的 VSCode 右鍵建立新檔案,我們可以命名為 test.robot,在 Robot Framework 的世界裡,當我們要透過 Robot Framework 執行測試時,都需要創建一個副檔名是 .robot 的檔案。

撰寫程式碼

我們可以先將下面的 Code 貼上到我們剛剛建立的 test.robot 的檔案中,這段 Code 在做的事情呢,是建立一個兩個數相加的 Keywords,並且撰寫了兩隻測試案例來測試相加後的值是否正確。

*** Settings ***
Documentation    My First Robot Framework

*** Test Cases ***
Test Case 001
    ${sum} =    Sum Two Number    num1=1    num2=2
    Should Be Equal As Integers    first=${sum}    second=${3}

Test Case 002
    ${sum} =    Sum Two Number    num1=3    num2=3
    Should Be Equal As Integers    first=${sum}    second=${5}
    
*** Keywords ***
Sum Two Number
    [Arguments]    ${num1}    ${num2}
    ${sum} =    Evaluate    ${num1}+${num2}
    RETURN    ${sum}

執行測試

完成撰寫後,我們便可以來觸發測試啦!觸發的指令結構為 robot + 測試的檔案,當然也不一定要是檔案,我們可以指定資料夾,robot 會自動將該資料夾底下副檔名是 .robot 的測試取出做執行。

robot test.robot

執行後我們可以在終端機看到測試相關的資訊,測試執行中也會同步輸出,讓我們可以及時的掌握測試的狀況,透過下面的顯示我們可以得知 Test Case 001 測試結果是 PASS 的,而 Test Case 002 是 FAIL 原因是因為預期結果是 5,但是相加後卻是 6 因此測試失敗,也可以得知本次測試執行了多少的測試案例,成功跟失敗個別是多少 (2 tests, 1 passed, 1 failed),最後也會產出 output.xmllog.htmlreport.html 這三份檔案讓我們可以更方便的排查測試遇到的問題。

==============================================================================
Test :: My First Robot Framework                                              
==============================================================================
Test Case 001                                                         | PASS |
------------------------------------------------------------------------------
Test Case 002                                                         | FAIL |
6 != 5
------------------------------------------------------------------------------
Test :: My First Robot Framework                                      | FAIL |
2 tests, 1 passed, 1 failed
==============================================================================
Output:  ithome/output.xml
Log:     ithome/log.html
Report:  ithome/report.html

執行測試時帶入客製化參數

除此之外 Robot Framework 還提供了許多參數讓我們的測試在執行時可以更加的彈性,其結構為:robot [options] test ,下面我們舉幾個例子:

  • 執行指定 Tags 的測試案例
    在測試規劃上,我們有些測試案例是屬於 Smoke Test 需要執行時,便可以在 [Tags] 上標註 Smoke,這時候當我們需要跑指定 Tag 的測試案例時,在終端機下指令時可以透過 --include 的參數來選擇。
robot -i Smoke --variable tests/
  • 執行測試時帶入參數:
    在測試中我們偶而會需要使用到全域變數,像是當今天在測試 App 自動化時,我們需要指定測試裝置的 udid,但是不是每次測試的裝置 udid 都相同時,便可以透過帶入參數的方法在每次測試時動態帶入。
robot -v UDID:123-123-123 tests/

關於更多的內容可以參考官方文件:Using command line options。

安裝其他 Robot Framework Library

Robot Framework 很棒的一點在於,它有龐大的社群提供許多 Library,讓我們可以很方便的調用來做測試,像是稍後會分享的,測試 Web 自動化時的 Browser,測試 App 自動化時的 AppiumLibrary,這些 Library 中都已經有許多包好的 keyword 可以直接調用,讓自動化開發的過程減輕不少負擔,下面介紹幾個有趣的 Robot Framework Library:

  • AppiumLibrary:AppiumLibrary 是 Robot Framework 的用於測試行動應用程式測試 Library,可以測試 Android 及 iOS 雙平台
  • SeleniumLibrary:SeleniumLibrary 是 Robot Framework 的 Web 測試 Library。
  • Browser:Browser 是基於 Playwright 的 Library,用於 Web 的測試,其可以測試的瀏覽器有Chromium、Firefox 和 WebKit。(在這次的分享中,主要的選擇會是 Playwright 而不是 Selenium,至於為什麼呢,我們先賣個關子,於日後的文章中揭曉)
  • String:用於字串操作和驗證的 Library
  • Telent:提供透過 Telnet 連線進行通訊的 Library,可以連接到 Telnet 伺服器並在開啟的連線上執行指令
  • SSHLibrary:SSHLibrary 是一個用於 SSH 和 SFTP 的 Robot Framework 測試 Library
  • JSONLibrary:JSONLibrary 是一個用來操作 JSON 物件的 Robot Framework 測試 Library
    提供可 JSONPath 取得、新增、更新和刪除 json 物件的功能
  • RequestsLibrary:RequestsLibrary 是一個透過包裝 Python Requests 來提供 HTTP api 測試功能的 Library
  • OperatingSystem:作業系統相關的關鍵字的 Library

結語

在這個章節我們完成了 Robot Framework 的安裝及第一個測試後,接下來我們將要持續深入了解更多關於 Robot Framework 的技巧,以便後續在應用程式的自動化測試中可以靈活應用它進行各類測試。搭配許多的 Library 將發現 Robot Framework 在不同測試場景中的強大功能與擴展性,下個章節我們將要一起看看剛剛執行測試結束後產生的報告!


上一篇
[2] Robot Framework 初體驗 - 基礎概念及結構
下一篇
[4] Robot Framework 內建測試報告
系列文
建立應用程式 UI 自動化測試 - 以 Robot Framework 為例30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言