2023-05-24|閱讀時間 ‧ 約 4 分鐘

App 自動化測試(十)錄製腳本並用Python 執行

前言

上篇把定位講完,不過實務上很少真的用手刻,大多用錄製或者軟體輔助,先講XPATH主要是讓大家有個底,就像最近的AI風一樣,好玩是一回事,做出來的東西還是要人看得懂知道哪裡可能有問題。
這篇就會著重介紹如何錄製腳本並轉換成可以執行的程式。

操作與錄製

主畫面錄製前的相關功能如下:參考文章
  1. 眼睛圖示就是開始錄製的按鈕
  2. 十字準星則是點擊元素
  3. 順時針箭頭是更新畫面,萬一兩邊不同步時要使用
開始錄製後,介面會變成這樣
  1. 暫停錄製
  2. 自動生成的程式碼
  3. 語言切換,可以切換成偏愛的程式語言類型

轉換腳本檔並執行

有了自動錄製的腳本之後,套用到程式裡面也很簡單
例如,它會給你一串元素定位跟點擊的腳本指令如下:
el1 = driver.find_element(by=AppiumBy.CLASS_NAME, value="android.widget.TextView")
el1.click()
el1.click()
el2 = driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="button-next")
el2.click()
這時候,請參考第六講,把這段塞到主程式中如下:
$ cat testClick.py
import time
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):
el1 = self.driver.find_element(by=AppiumBy.CLASS_NAME, value="android.widget.TextView")
el1.click()
time.sleep(1)
el2 =
self.driver.find_element(by=AppiumBy.ACCESSIBILITY_ID, value="button-next")
el2.click()


if __name__ == '__main__':
unittest.main()
重點在倒數第二段,driver 要改成自己的 driver 變數,多餘的點擊拿掉,並且加入適當的延遲。

小結

測試是環境架設難,寫起來簡單的工作,前面幾篇的環境準備搞定之後,後面其實真的腳本寫起來不難,有興趣都可以試試看。
分享至
成為作者繼續創作的動力吧!
從 Google News 追蹤更多 vocus 的最新精選內容從 Google News 追蹤更多 vocus 的最新精選內容

作者的相關文章

Scott Hsiao的沙龍 的其他內容

你可能也想看

發表回應

成為會員 後即可發表留言
© 2024 vocus All rights reserved.