安裝 Android SDK並指定路徑
安裝 SDK
sudo apt update && sudo apt install android-sdk
確認安裝位置:
$ ls /usr/lib/android-sdk -al
total 28
drwxr-xr-x 7 root root 4096 May 24 01:33 .
drwxr-xr-x 128 root root 4096 May 24 01:33 ..
drwxr-xr-x 3 root root 4096 May 24 01:33 build-tools
drwxr-xr-x 2 root root 4096 May 24 01:33 licenses
drwxr-xr-x 3 root root 4096 May 24 01:33 platforms
drwxr-xr-x 2 root root 4096 May 24 01:33 platform-tools
drwxr-xr-x 4 root root 4096 May 24 01:33 tools
將以下幾行加入 ~/.bashrc 中
ANDROID_HOME="/usr/lib/android-sdk"
ANDROID_PLATFORM_TOOLS="$ANDROID_HOME/platform-tools"
ANDROID_TOOLS="$ANDROID_HOME/tools"
ANDROID_BUILD_TOOLS="$ANDROID_HOME/build-tools/27.0.1"
export ANDROID_HOME
export ANDROID_PLATFORM_TOOLS
export ANDROID_TOOLS
export ANDROID_BUILD_TOOLS
更新環境變數
source ~/.bashrc
撰寫測試腳本
到這就把所有需要用 Python 執行 Appium 測試需要的相關套件都備齊了,請參考一下範例建立
第一個測試腳本:
$ cat testSettings.py
import unittest
from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy
options = UiAutomator2Options()
options.platformVersion = '11'
options.appPackage='com.android.settings'
options.appActivity='.Settings'
appium_server_url = 'http://localhost:4723'
class TestAppium(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Remote(appium_server_url, options=options)
def tearDown(self):
if self.driver:
self.driver.quit()
def test_find_battery(self):
el = self.driver.find_element(by=AppiumBy.XPATH, value='//*[@text="Battery"]')
el.click()
if __name__ == '__main__':
unittest.main()
簡單說明一下腳本內容,他是透過 unittest 來執行,所以有些額外的 class 指令,基本上就是設定待測物資訊、連接、確認是否有某元素
- 前四行是載入必要的函示庫
- 再來四行是設定連接方式跟待測 App 資訊
- 再來是指定 Appium 的 IP 跟 PORT
- 再來是一個 unittest 的類別:
setUp 初始化連線
test_find_battery 是唯一個測試案例,會尋找是否有含 Battery 文字的元素,並點擊
tearDown 結束測試
- 最後是主函示
執行
首先要手動從模擬器中開啟設定APP,因為沒有指定APK無法自動開啟
再來就是執行 appium server 服務
$ appium
開另外一個指令視窗執行測試
$ python testSettings.py
就會看到電池次選單被點開
小結
經過漫長的準備,總算把 Hello World 的第一個測試完成,接著會細部介紹如何瀏覽元素、定位元素來寫真正的測試案例。