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 的第一個測試完成,接著會細部介紹如何瀏覽元素、定位元素來寫真正的測試案例。
為什麼會看到廣告
7會員
13內容數
記錄分享如何做軟體自動測試
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
【學習新東西的樂趣:每日300字啟發的力量】── 1. 透過閱讀擴展視野 2. 得到APP的利用 3. 每日分享的價值每當我學習新東西,總是感到無比的興奮。相較於買車出遊,我更喜歡透過摸索新事物來擴展自己的眼界。 ▋透過閱讀擴展視野 我主要透過購買書籍來進行探索,這也多虧父母從小到大提供的經濟支持。從幼稚園到博士畢業,我大概購買了四五千冊的書籍。父親甚至在我的房間外搭了一個鐵皮屋,專門用來存放我各式各樣
avatar
王啟樺
2024-06-12
【NoCode 工具箱】團隊協作升級!Relay.app 整合自動化、AI 應用及真人決策!Relay.app 是簡單強大的自動化 No Code 工具,支援約百種數位工具,操作介面簡單易上手。內建串接 OpenAI,只要簡單輸入指令,即可獲得 AI 生成回覆!更棒的是,可以整合真人決策進入自動化工作流程,使人力介入不再中斷自動化,打造更全面完整工作流程,提升團隊協作,專案管理更有效率!
Thumbnail
avatar
NoTime NoCode|自動化工作流程
2024-06-09
EPS2. 打造AI自動化管理存錢系統:透析你的花錢消費性格,完全解放你的記帳APP你知道,義大利經濟學家帕雷托(Vilfredo Pareto)提出的帕雷托法則,又以80/20法則、或八二法則著名,用在人極其一生努力賺錢又邊花錢的過程中,世界上有80%的人感慨財富不足、都在羨慕那20%財富自由的人;自問即便財務目標沒有設立很高,為何依然錢存不到自己要的目標?! 在陪伴協助許
Thumbnail
avatar
J卡卡_卡卡理財生活不NG
2024-02-20
用Google app script 自動發信工作時常會需要固定發廣告信,或業務開發信的話,可以考慮用google app script,呼叫gmail 的方式來處理。
Thumbnail
avatar
bot.學習.人
2024-01-19
LINE App 2023台灣用戶年度愛用功能排行榜「主題自動輪播」奪冠! AI 人像熱潮與台灣首發功能最受關注 文、圖/LINE 提供    2023台灣用戶十大愛用LINE功能出爐!根據LINE團隊觀察自2022年12月至2023年11月,最受台灣用戶青睞的LINE功能就是解放主題富翁時間的「主題自動輪播」,第二名則是運用AI技術自動生成個人照片的「個人檔案工作室」,第三名為台灣暨全球首發的「
Thumbnail
avatar
廣告雜誌
2023-12-07
github actions python app 雲端自動化執行詳解 這是我跟chatgpt協作整理出來的一些知識: 蠻神奇的事情是我記得CHATGPT無法連網,他居然能知道我這個專案是做 投資建議訊號推送的telegrambot機器人,我完全沒有頭緒他怎麼知道的
Thumbnail
avatar
于正龍(Ricky)
2023-04-24
輕鬆自學越南語!9款越南語學習實用手機App語言學習如果只限於課堂,很容易變得枯燥乏味。身處科技時代的我們,早就習慣用手機完成生活中的大小事,越南語的學習也可以搬到手機裡!跟大家分享9款學習越南語App,主要用遊戲化的方式學習,設置了各種遊戲關卡,還有機器人學伴陪伴你一起學越南語。另外,更需要多樣化的測驗來檢測自己的程度到哪裡。
Thumbnail
avatar
女孩瑪莎
2022-11-12
【自學那檔事】找不到好用的線上日文重音與發音專門字典?試試免費的「JAccent」App日文有所謂的高低音(類似英文的重音),很像中文發聲系統的第一聲和第三聲。高低音唸反了,在日文可是會把「神」(唸「咖米」)講錯成「頭髮」(唸「卡咪」)的,所以擁有標示重音的字典是很重要的事。自從看見網友說日本知名字典網站已取消單字的重音標示,我就趕快找了其他替代的重音兼發音字典,有一家app我特中意。
Thumbnail
avatar
你的英日語自學導師 譯難忘  ོꦿ༄꧁꧂
2022-04-11
自學漢字APP:Noodle Chinese今天和各位介紹一款完全免費的自學漢字app-Noodle Chinese,利用動畫的方式帶著學生寫字,來降低初學者對漢字的恐懼。另外Noodle Chinese本身就有字典的功能,在查字典的同時,也能直接創立自己的生字包,並且開始練習寫字!
Thumbnail
avatar
全球話e視野
2021-08-25
自學漢字APP:Scripts今天想和各位老師介紹一款來自介面設計相當精美的單字APP Drops最近新推出的寫字APP- Scripts。利用每天短短的五分鐘,透過不同的練習方式來寫字,能讓學生在無壓力的情況下學習新的生字!同時Scripts色彩豐富、操作簡單,也很適合一開始接觸漢字的學習者使用!
Thumbnail
avatar
全球話e視野
2021-05-05