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

更新於 發佈於 閱讀時間約 4 分鐘

前言

前八篇把各個環節分段介紹,接下來就是學以致用的時候,本篇會用自己的 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
10會員
16內容數
記錄分享如何做軟體自動測試
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Scott Hsiao的沙龍 的其他內容
前言 基本準備差不多了,也能跑自己的測試,再來就是關於測試腳本的核心:元素定位跟動作,本篇會著重介紹 XPATH 定位的部分
前言 上篇我們成功執行第一個測試案例,從 Python 腳本透過 Appium 控制模擬器點選設定中的電池,下個問題就是怎麼找元件,這時候就要請出 Appium Inspector 了
前言 經過五個小單元的準備,終於可以開始跑第一個測試了,Appium 本身是個工具,可以搭配各種語言,這邊選擇 Python 作為測試腳本語言,以便之後跟 Robot Framework 串接。
前言 前四篇,把主機作業系統跟待測物準備交代完畢,有需要請自行跳轉取用,接下來就是測試工具的部分,這次測試套件使用大名鼎鼎 Appium 2。 選擇 Appium 2 的理由 歷史悠久:Appium 2012 年公開之後,就廣受測試社群愛戴 站在巨人的肩榜上:架構類似 Selenium的主從式架構,
前言 前幾篇聊到作業系統、Docker 跟 Android 容器的準備,再來就是替 Android 容器開啟 Google Play 套件並安裝待測 App 供後續手動或者自動測試使用。
前言 前兩篇把作業系統跟 Docker 安裝講完了,接下來就是 Android 容器的安裝了,這裡選用 ReDroid ,因為它是開源、高效、又便於管理的方案。
前言 基本準備差不多了,也能跑自己的測試,再來就是關於測試腳本的核心:元素定位跟動作,本篇會著重介紹 XPATH 定位的部分
前言 上篇我們成功執行第一個測試案例,從 Python 腳本透過 Appium 控制模擬器點選設定中的電池,下個問題就是怎麼找元件,這時候就要請出 Appium Inspector 了
前言 經過五個小單元的準備,終於可以開始跑第一個測試了,Appium 本身是個工具,可以搭配各種語言,這邊選擇 Python 作為測試腳本語言,以便之後跟 Robot Framework 串接。
前言 前四篇,把主機作業系統跟待測物準備交代完畢,有需要請自行跳轉取用,接下來就是測試工具的部分,這次測試套件使用大名鼎鼎 Appium 2。 選擇 Appium 2 的理由 歷史悠久:Appium 2012 年公開之後,就廣受測試社群愛戴 站在巨人的肩榜上:架構類似 Selenium的主從式架構,
前言 前幾篇聊到作業系統、Docker 跟 Android 容器的準備,再來就是替 Android 容器開啟 Google Play 套件並安裝待測 App 供後續手動或者自動測試使用。
前言 前兩篇把作業系統跟 Docker 安裝講完了,接下來就是 Android 容器的安裝了,這裡選用 ReDroid ,因為它是開源、高效、又便於管理的方案。
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
從範例學python的目標讀者: 針對剛進入的初學者,想學習Python語言。 有基礎本數學邏輯基礎即可。 從小遊戲學python的目標讀者: 針對已經有經驗的C/C++, Python, 或其他有程式基礎的讀者。 想實作一些小專案,從實做中學習如何分析需求、元件分拆、到底層實作
Thumbnail
Selenium 是一個範圍廣泛的工具和函式庫的總稱專案,用於啟用和支援網頁瀏覽器的自動化。Selenium WebDriver 提供了 C#、JavaScript、Java、Python、Ruby 等多種語言的 API,可以用於編寫自動化測試軟體。 在定位元素時,WebDriver 提供對這 8
Thumbnail
# 簡介 身為一位專注於 Vue.js 的前端開發者,這是我第一次嘗試構建 Flutter 網頁應用。讓我們開始吧! ## 第一次嘗試 ### 第一步:創建一個 Flutter 應用 首先,通過運行以下命令來創建一個新的 Flutter 項目: ```sh flutter
Thumbnail
穎將自己的日常計畫,運用 PAI系統 轉為專案形式,加上不同目的的客製化篩選、排序、圖示等資料庫可視化的呈現 ,讓課程、學習都能夠清晰明瞭。穎的使用指南寫得清楚直觀,也把自己最重要的專案寫在指南內,是可以把眾多專案展現清楚的系統。
Thumbnail
Ruby 將 Notion 訓練營中所教學的 PAI 知識系統,其中的專案管理思維運用在自己的閱讀筆記工作流。以使用場景出發,重新設計網路上的模版資料庫、調整模板和屬性欄位,記寫下系統的工作流的使用方式。這個 Notion 閱讀筆記系統幫助她從 0 到 1(閱讀到輸出)最重要的中間 0.5 第二大腦
Thumbnail
RPAI 數位優化器在這系列文章中,不會從基本除錯思維或套路開始說明,而是把焦點放在 UiPath 提供哪些除錯工具,透過理解工具使用方式、詳細解釋功能及比較不同功能差異,讓讀者對 UiPath 整個開發核心概念有更深了解,進而讓開發流程更加穩固!
Thumbnail
本課程學習如何處理按鈕點擊事件並透過 Logcat 日誌輸出資訊確認按鈕邏輯是否正確。
Thumbnail
前文提到我按照某公司培訓營的指示自學了Scratch,並完成了一個不太理想的「半成品」程式。幾個月後,我參加了另一個課程,不同的是這次是使用PHP,為期三天(週三至週五),每天上課四小時,總計約12小時。課程內容包括基礎語法與環境架設、網路爬蟲、實際構建購物車並與資料庫進行串接。
Thumbnail
本課程學習如何提取共同屬性,透過 Style 樣式包,套用至每個按鈕。來提升佈局的可讀性和好維護性。
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
從範例學python的目標讀者: 針對剛進入的初學者,想學習Python語言。 有基礎本數學邏輯基礎即可。 從小遊戲學python的目標讀者: 針對已經有經驗的C/C++, Python, 或其他有程式基礎的讀者。 想實作一些小專案,從實做中學習如何分析需求、元件分拆、到底層實作
Thumbnail
Selenium 是一個範圍廣泛的工具和函式庫的總稱專案,用於啟用和支援網頁瀏覽器的自動化。Selenium WebDriver 提供了 C#、JavaScript、Java、Python、Ruby 等多種語言的 API,可以用於編寫自動化測試軟體。 在定位元素時,WebDriver 提供對這 8
Thumbnail
# 簡介 身為一位專注於 Vue.js 的前端開發者,這是我第一次嘗試構建 Flutter 網頁應用。讓我們開始吧! ## 第一次嘗試 ### 第一步:創建一個 Flutter 應用 首先,通過運行以下命令來創建一個新的 Flutter 項目: ```sh flutter
Thumbnail
穎將自己的日常計畫,運用 PAI系統 轉為專案形式,加上不同目的的客製化篩選、排序、圖示等資料庫可視化的呈現 ,讓課程、學習都能夠清晰明瞭。穎的使用指南寫得清楚直觀,也把自己最重要的專案寫在指南內,是可以把眾多專案展現清楚的系統。
Thumbnail
Ruby 將 Notion 訓練營中所教學的 PAI 知識系統,其中的專案管理思維運用在自己的閱讀筆記工作流。以使用場景出發,重新設計網路上的模版資料庫、調整模板和屬性欄位,記寫下系統的工作流的使用方式。這個 Notion 閱讀筆記系統幫助她從 0 到 1(閱讀到輸出)最重要的中間 0.5 第二大腦
Thumbnail
RPAI 數位優化器在這系列文章中,不會從基本除錯思維或套路開始說明,而是把焦點放在 UiPath 提供哪些除錯工具,透過理解工具使用方式、詳細解釋功能及比較不同功能差異,讓讀者對 UiPath 整個開發核心概念有更深了解,進而讓開發流程更加穩固!
Thumbnail
本課程學習如何處理按鈕點擊事件並透過 Logcat 日誌輸出資訊確認按鈕邏輯是否正確。
Thumbnail
前文提到我按照某公司培訓營的指示自學了Scratch,並完成了一個不太理想的「半成品」程式。幾個月後,我參加了另一個課程,不同的是這次是使用PHP,為期三天(週三至週五),每天上課四小時,總計約12小時。課程內容包括基礎語法與環境架設、網路爬蟲、實際構建購物車並與資料庫進行串接。
Thumbnail
本課程學習如何提取共同屬性,透過 Style 樣式包,套用至每個按鈕。來提升佈局的可讀性和好維護性。