前言
前八篇把各個環節分段介紹,接下來就是學以致用的時候,本篇會用自己的 App 做一系列的測試。
測試規格
撰寫測試腳本
$ cat testNia.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.app = '/home/scott/Downloads/app-demo-debug.apk'
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_tabSaved(self): #find by text
el = self.driver.find_element(by=AppiumBy.XPATH, value='//*[@text="Saved"]')
el.click()
def test_tabSaved2(self): #find by xpath
el = self.driver.find_element(by=AppiumBy.XPATH, value='//*[@resource-id="NiaBottomBar"]')
def test_tabSaved3(self): #find by cascaded xpath
el = self.driver.find_element(by=AppiumBy.XPATH, value='//*[@resource-id="NiaBottomBar"]//android.widget.TextView[@text="Saved"]')
el.click()
if __name__ == '__main__':
unittest.main()
分段解析:
- 第一段引入必要的函示庫
- 第二段宣告測試環境跟 App
- 第三段是搭配的 Appium Server
- 再來是測試主體 Class
setUp:連接待測物
tearDown:測試結束後的收尾
test_tabSaved:第一種點擊 Saved 分頁的方法,直接搜尋文字
test_tabSaved2:第二種點擊 Saved 分頁的方法,以 Resource-Id 搜尋
test_tabSaved3:第三種點擊 Saved 分頁的方法,疊加方法一跟方法二,做更細緻的定位
執行
$ python3 testNia.py
...
----------------------------------------------------------------------
Ran 3 tests in 21.456s
OK
$
小結
這篇集前面八篇的大成,展示了透過 Python 腳本執行幾種定位跟測試自己 App 的方式,入門篇差不多也完成了,接下來就是各種進階應用,敬請期待。