App 測試自動化: RobotFramework + Appium (2)

Steven Shen
Cubo AI
Published in
5 min readJul 2, 2021

上一篇介紹 Appium 與 AppiumDesktop,這一篇介紹一下如何編寫 RobotFramework 腳本。

先看底下範例

*** Settings ***
Documentation A test suite with app tests
Library AppiumLibrary
Test Teardown Close All Applications
*** Variables ***
${APPIUM_URL} <http://127.0.0.1:4723/wd/hub>
${IOS_AUTOMATION_NAME} XCUITest
${PLATFORM_NAME} iOS
${PHOTOS_APP_NAME} com.apple.mobileslideshow
${PLATFORM_VERSION} 14.6
${DEVICE_NAME} your_iphone_name
${UDID} your_iphone_device_identifier
${XCODE_ORG_ID} your_team_id
*** Test Cases ***
Test another app
開啟 iOS app ${PHOTOS_APP_NAME}
略過app介紹說明
Sleep 2s
Click Element xpath=//XCUIElementTypeImage[@name="照片, 6月11日, 下午2:31"]
Run Keyword And Ignore Error Click Button Got It # 這邊會彈出一個視窗也是只有第一次使用 App 才會有,
# 所以如果是第二次以後使用,Click Button 失敗,所以我們就 Ignore 這個錯誤
Sleep 1s
Swipe 346 441 83 449
Sleep 1s
Swipe 181 256 188 536
Sleep 3s
*** Keywords ***
開啟 iOS app
[Arguments] ${app_name}
Open Application ${APPIUM_URL} iOSApp
... automationName=${IOS_AUTOMATION_NAME}
... platformName=${PLATFORM_NAME}
... deviceName=${DEVICE_NAME}
... platformVersion=${PLATFORM_VERSION}
... udid=${UDID}
... xcodeSigningId=iPhone Developer
... xcodeOrgId=${XCODE_ORG_ID}
... clearSystemFiles=true
... app=${app_name}
略過app介紹說明
# App 介紹頁只有第一次使用該 App 時才會出現
# 而且這個不是 Test case 要關注的點
# 所以這邊會使用 RUN Keyword 來執行 Click Button,
# 如果 Click Continue Button 有成功,就會 Sleep 2 兩,等待動畫結束
# 如果這頁沒出現,Click Continue Button 就會失敗,所以我們就不用做 Sleep,直接到下個步驟
Sleep 2s
${status} Run Keyword And Return Status Click Button Continue
IF ${status}
Sleep 2s
END

RF 腳本跟其他程式語言比較不一樣的是由 Keyword 所組成,你可以自訂 Keyword 去擴充他,所以也有別人會寫 Keyword 來擴充原有功能,像是 Appium 的支援就是透過 AppiumLibrary 來引入。

Keyword 的用法是

<Keyword>    <param1>...

像是上面範例中的 Library 或者 Test Teardown 或者 Click Element 都是 Keyword,Keyword 與參數之間至少要間隔一個空白以上,如果只有一個空白就會被視為同一個 Keyword。你也可以自訂義 Keyword,像是上述範例中的 開啟 iOS app 就是我自行定義的 Keyword,你可以把它視為一個可以被重複利用的函示。

至於到底有哪些 Keyword 可以用,可以參考底下幾個常用的文件

如果要使用 AppiumLibrary,要先做安裝

pip install --upgrade robotframework-appiumlibrary

執行 App 是透過 Open Application 這組 Keyword,在執行前需要先把 Appium server 跑起來 (透過 Appium Desktop 或者 appium 命令都可以),這個 Keyword 的參數包含 appium server url,以及上一篇提到的 Capabilities。

上面這個範例就是執行 Photos app (com.apple.mobileslideshow) ,並進行一些操作。

你也可以透過一些其他 Keyword 如 Element Should Be Visible <name> 來驗證符合 <name> 名稱的元件應該有出現,來作為 Test case 的驗證項目。

只要腳本執行有錯,這個 test case 就會被視為失敗。

下一篇我會介紹一下如何整合到 CI 環境中,讓他真的自動化被執行。

--

--