App 自動化測試(九)結合 XPATH 測試自己的 App

更新 發佈閱讀 5 分鐘

前言

前八篇把各個環節分段介紹,接下來就是學以致用的時候,本篇會用自己的 App 做一系列的測試。

測試規格

  • 系統版本:Android 11
  • 待測物:NIA by Android
  • 確認首頁下方切換列的功能

撰寫測試腳本

$ 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 的方式,入門篇差不多也完成了,接下來就是各種進階應用,敬請期待。

留言
avatar-img
Scott Hsiao的沙龍
11會員
26內容數
記錄分享如何做軟體自動測試
Scott Hsiao的沙龍的其他內容
2023/05/24
前言 上篇把定位講完,不過實務上很少真的用手刻,大多用錄製或者軟體輔助,先講XPATH主要是讓大家有個底,就像最近的AI風一樣,好玩是一回事,做出來的東西還是要人看得懂知道哪裡可能有問題。 這篇就會著重介紹如何錄製腳本並轉換成可以執行的程式。
Thumbnail
2023/05/24
前言 上篇把定位講完,不過實務上很少真的用手刻,大多用錄製或者軟體輔助,先講XPATH主要是讓大家有個底,就像最近的AI風一樣,好玩是一回事,做出來的東西還是要人看得懂知道哪裡可能有問題。 這篇就會著重介紹如何錄製腳本並轉換成可以執行的程式。
Thumbnail
2023/05/12
前言 基本準備差不多了,也能跑自己的測試,再來就是關於測試腳本的核心:元素定位跟動作,本篇會著重介紹 XPATH 定位的部分
2023/05/12
前言 基本準備差不多了,也能跑自己的測試,再來就是關於測試腳本的核心:元素定位跟動作,本篇會著重介紹 XPATH 定位的部分
2023/05/12
前言 上篇我們成功執行第一個測試案例,從 Python 腳本透過 Appium 控制模擬器點選設定中的電池,下個問題就是怎麼找元件,這時候就要請出 Appium Inspector 了
Thumbnail
2023/05/12
前言 上篇我們成功執行第一個測試案例,從 Python 腳本透過 Appium 控制模擬器點選設定中的電池,下個問題就是怎麼找元件,這時候就要請出 Appium Inspector 了
Thumbnail
看更多
你可能也想看
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
一個網站可能除了首頁以外還會有其他的相關網站 例如/admin ,login/ ,home.php ,/root/等等 但是又不一定於是互聯網上就有一些words清單 像是 裡面就有存放各種可能的目錄名稱 例如給定一個網址在網址尾端增加/admin"有可能"就會連到後台 但是人手工一個一個去試去猜實
Thumbnail
一個網站可能除了首頁以外還會有其他的相關網站 例如/admin ,login/ ,home.php ,/root/等等 但是又不一定於是互聯網上就有一些words清單 像是 裡面就有存放各種可能的目錄名稱 例如給定一個網址在網址尾端增加/admin"有可能"就會連到後台 但是人手工一個一個去試去猜實
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
Python安裝、外部程式包安裝(pip install xxx)、Hello World 【安裝Python】 Visual Studio Code-Download 進入vscode(延伸模組) 安裝中文介面(輸入ch搜尋) 安裝 搜尋命令提示字元 命令提示字元打python 創建檔案
Thumbnail
Python安裝、外部程式包安裝(pip install xxx)、Hello World 【安裝Python】 Visual Studio Code-Download 進入vscode(延伸模組) 安裝中文介面(輸入ch搜尋) 安裝 搜尋命令提示字元 命令提示字元打python 創建檔案
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
Selenium 是一個範圍廣泛的工具和函式庫的總稱專案,用於啟用和支援網頁瀏覽器的自動化。Selenium WebDriver 提供了 C#、JavaScript、Java、Python、Ruby 等多種語言的 API,可以用於編寫自動化測試軟體。 在定位元素時,WebDriver 提供對這 8
Thumbnail
Selenium 是一個範圍廣泛的工具和函式庫的總稱專案,用於啟用和支援網頁瀏覽器的自動化。Selenium WebDriver 提供了 C#、JavaScript、Java、Python、Ruby 等多種語言的 API,可以用於編寫自動化測試軟體。 在定位元素時,WebDriver 提供對這 8
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
使用顯性等待,以及讓我們的自動化網頁看起來有像測試的樣子 另外,readmoo電子書真的很方便啊
Thumbnail
使用顯性等待,以及讓我們的自動化網頁看起來有像測試的樣子 另外,readmoo電子書真的很方便啊
Thumbnail
前言 上篇我們成功執行第一個測試案例,從 Python 腳本透過 Appium 控制模擬器點選設定中的電池,下個問題就是怎麼找元件,這時候就要請出 Appium Inspector 了
Thumbnail
前言 上篇我們成功執行第一個測試案例,從 Python 腳本透過 Appium 控制模擬器點選設定中的電池,下個問題就是怎麼找元件,這時候就要請出 Appium Inspector 了
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News