App 自動化測試(六)Python 第一個APP測試案例-系統設定

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

前言

經過五個小單元的準備,終於可以開始跑第一個測試了,Appium 本身是個工具,可以搭配各種語言,這邊選擇 Python 作為測試腳本語言,以便之後跟 Robot Framework 串接。

安裝 Python 與 Appium 函示庫

確認 Python 版本

Ubuntu 20.04 內建3.8,使用以下指令確認

$ python3 --version
Python 3.8.10

不過 python 沒有預設關連,用以下指令指定預設

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1

指定 3.7 為預設 Python3 版本

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 1
sudo update-alternatives --config python3

確認安裝的版本,參考來源

$ python --version
Python 3.8.10

安裝 Python 的套件管理工具:pip

sudo apt install python3-pip -y

安裝 Appium Python Client

用 PIP 安裝 Appium-Python-Client

pip install Appium-Python-Client

確認安裝成果

$ pip show Appium-Python-Client
Name: Appium-Python-Client
Version: 2.10.1

安裝 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 指令,基本上就是設定待測物資訊、連接、確認是否有某元素

  1. 前四行是載入必要的函示庫
  2. 再來四行是設定連接方式跟待測 App 資訊
  3. 再來是指定 Appium 的 IP 跟 PORT
  4. 再來是一個 unittest 的類別:
    setUp 初始化連線
    test_find_battery 是唯一個測試案例,會尋找是否有含 Battery 文字的元素,並點擊
    tearDown 結束測試
  5. 最後是主函示

執行

首先要手動從模擬器中開啟設定APP,因為沒有指定APK無法自動開啟

再來就是執行 appium server 服務

$ appium

開另外一個指令視窗執行測試

$ python testSettings.py

就會看到電池次選單被點開

小結

經過漫長的準備,總算把 Hello World 的第一個測試完成,接著會細部介紹如何瀏覽元素、定位元素來寫真正的測試案例。

留言
avatar-img
留言分享你的想法!
avatar-img
Scott Hsiao的沙龍
10會員
16內容數
記錄分享如何做軟體自動測試
Scott Hsiao的沙龍的其他內容
2023/05/24
前言 上篇把定位講完,不過實務上很少真的用手刻,大多用錄製或者軟體輔助,先講XPATH主要是讓大家有個底,就像最近的AI風一樣,好玩是一回事,做出來的東西還是要人看得懂知道哪裡可能有問題。 這篇就會著重介紹如何錄製腳本並轉換成可以執行的程式。
Thumbnail
2023/05/24
前言 上篇把定位講完,不過實務上很少真的用手刻,大多用錄製或者軟體輔助,先講XPATH主要是讓大家有個底,就像最近的AI風一樣,好玩是一回事,做出來的東西還是要人看得懂知道哪裡可能有問題。 這篇就會著重介紹如何錄製腳本並轉換成可以執行的程式。
Thumbnail
2023/05/12
前言 前八篇把各個環節分段介紹,接下來就是學以致用的時候,本篇會用自己的 App 做一系列的測試。
2023/05/12
前言 前八篇把各個環節分段介紹,接下來就是學以致用的時候,本篇會用自己的 App 做一系列的測試。
2023/05/12
前言 基本準備差不多了,也能跑自己的測試,再來就是關於測試腳本的核心:元素定位跟動作,本篇會著重介紹 XPATH 定位的部分
2023/05/12
前言 基本準備差不多了,也能跑自己的測試,再來就是關於測試腳本的核心:元素定位跟動作,本篇會著重介紹 XPATH 定位的部分
看更多
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
重點摘要: 6 月繼續維持基準利率不變,強調維持高利率主因為關稅 點陣圖表現略為鷹派,收斂 2026、2027 年降息預期 SEP 連續 2 季下修 GDP、上修通膨預測值 --- 1.繼續維持利率不變,強調需要維持高利率是因為關稅: 聯準會 (Fed) 召開 6 月利率會議
Thumbnail
  環境佈置很重要!!所以按照這樣的方法下去安裝未來使用的時候才不會很麻煩,而且python會有很多外來模組要安裝,因此安裝路徑一定要設定好,未來找尋的時候才找的到,版本的差異沒有調整好也有可能用到最後有些會出現各種錯誤。所以環境佈置這真的很重要!!很重要!!很重要!!
Thumbnail
  環境佈置很重要!!所以按照這樣的方法下去安裝未來使用的時候才不會很麻煩,而且python會有很多外來模組要安裝,因此安裝路徑一定要設定好,未來找尋的時候才找的到,版本的差異沒有調整好也有可能用到最後有些會出現各種錯誤。所以環境佈置這真的很重要!!很重要!!很重要!!
Thumbnail
前言 上篇我們成功執行第一個測試案例,從 Python 腳本透過 Appium 控制模擬器點選設定中的電池,下個問題就是怎麼找元件,這時候就要請出 Appium Inspector 了
Thumbnail
前言 上篇我們成功執行第一個測試案例,從 Python 腳本透過 Appium 控制模擬器點選設定中的電池,下個問題就是怎麼找元件,這時候就要請出 Appium Inspector 了
Thumbnail
在Microsoft store 搜尋 kail linux 並安裝(這裡假設你已經先安裝WSL) 之後執行kail linux 終端機 依序輸入以下指令: 上面主要是做一些更新(update and upgrade),然後安裝python3, python3-venv(虛擬環境)之後建立一個名為b
Thumbnail
在Microsoft store 搜尋 kail linux 並安裝(這裡假設你已經先安裝WSL) 之後執行kail linux 終端機 依序輸入以下指令: 上面主要是做一些更新(update and upgrade),然後安裝python3, python3-venv(虛擬環境)之後建立一個名為b
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
Python 是目前主流的程式語言之一,不論是網路上亦或是各大書局。都有豐富的學習資源,如果你是程式語言的初學者,那以 python 作為入坑的第一步來解決不論是生活/工作上的大小事都是非常適合的一個'工具'。 接下來介紹如何安裝python,以及我自己一直都在使用的IDE(整合開發環境)。
Thumbnail
Python 是目前主流的程式語言之一,不論是網路上亦或是各大書局。都有豐富的學習資源,如果你是程式語言的初學者,那以 python 作為入坑的第一步來解決不論是生活/工作上的大小事都是非常適合的一個'工具'。 接下來介紹如何安裝python,以及我自己一直都在使用的IDE(整合開發環境)。
Thumbnail
在上一篇文章中,我們已經準備好製作LINE機器人的工具了,接下來我們就要來做一個最簡單的Python與LINE的串接練習,讓我們的機器人活起來,並且做出最基本的回話功能,如果還沒準備好串接所需的工具,記得先去看《【python】Python+LINE Bot 輕鬆打造股市機器人(二) : 所需準備的
Thumbnail
在上一篇文章中,我們已經準備好製作LINE機器人的工具了,接下來我們就要來做一個最簡單的Python與LINE的串接練習,讓我們的機器人活起來,並且做出最基本的回話功能,如果還沒準備好串接所需的工具,記得先去看《【python】Python+LINE Bot 輕鬆打造股市機器人(二) : 所需準備的
Thumbnail
PYTHON 介紹 Python 是一種被廣泛使用的高階編程語言,它的用途十分廣泛,支援了多種的程式設計的範式,包括函數式、指令式、結構化、物件導向。 Python的設計哲學強調了它簡潔的語法,是使用空格縮進來劃分程式碼。 Python是的社群中擁有許多模組可以使用,在進行某些用途時可以很引入模組,
Thumbnail
PYTHON 介紹 Python 是一種被廣泛使用的高階編程語言,它的用途十分廣泛,支援了多種的程式設計的範式,包括函數式、指令式、結構化、物件導向。 Python的設計哲學強調了它簡潔的語法,是使用空格縮進來劃分程式碼。 Python是的社群中擁有許多模組可以使用,在進行某些用途時可以很引入模組,
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News