Appium界面自動化測試(11)(iOS/Python):詳解應用程式操作

2021-02-07 自動化測試理論和實戰

上一節中,筆者首先安裝了被測應用程式到被測設備中,然後進行自動化測試,但實際項目中往往需要自動化測試腳本自己安裝被測應用程式。

假設被測應用程式在/Applications目錄,在desired_capabilities變量中指定「app」的值即可安裝應用程式:

desired_capabilities = {    'automationName': 'XCUITest',    'platformName': 'iOS',    'platformVersion': '14.1',    'deviceName': 'iPhone 8',    'udid': 'a1bf89a6d882010cd9314dd7544e21eac6482e00',    'app': '/Applications/filename.ipa'}

通過這種方式安裝應用程式時,desired_capabilities變量不必再提供bundleId參數。

如果已經建立了會話,並在測試過程中需要安裝其他應用程式,則可以調用Applications類的install_app方法,而Appium版的WebDriver對象是Applications類的子類,因此可以直接調用:

driver.install_app('/Applications/filename.ipa')

安裝後可通過指定bundleId來打開它:

driver.activate_app('your.bundle_id')

另外,以上兩種安裝應用程式的方式都支持將應用程式的本地路徑換成URL路徑,以便安裝伺服器上的應用程式文件。

除了install_app和activate_app方法,還可以對應用程式進行以下操作:

driver.is_app_installed('your.bundle_id')driver.query_app_state('your.bundle_id')driver.close_app()driver.terminate_app('your.bundle_id')driver.remove_app('your.bundle_id')

is_app_installed方法用於檢測應用程式是否已安裝;query_app_state方法用於檢測應用程式的運行狀態,包括未知、未運行、後臺運行並被掛起、後臺運行但未被掛起和前臺運行5種狀態;close_app方法用於將當前應用程式置於後臺運行;terminate_app和remove_app方法分別用於關閉和卸載應用程式。

以下通過一個示例演示is_app_installed和activate_app方法的使用,其他方法您可自行試驗。為此筆者在上一節測試代碼的with-as語句中新增以下代碼:

is_installed = driver.is_app_installed('com.apple.calculator')if is_installed:    driver.activate_app('com.apple.calculator')

以上代碼首先檢測計算器是否已安裝,如果已安裝則打開計算器。執行以上代碼後,在筆者的設備上成功打開了計算器應用程式。

針對iOS設備的自動化測試,XCUITest驅動提供了另一套操作應用程式的方式,比如安裝應用程式的install_app方法可被替代為:

driver.execute_script('mobile: installApp', {'app': '/Applications/filename.ipa'})

相關焦點

  • Appium自動化測試環境搭建
    >」進行關注,微信公眾號TestMadman前言Appium是一個開源的自動化測試框架,支持跨平臺,支持多種程式語言,可用於原生,混合和移動web應用程式,使用webdriver驅動ios,android應用程式、那麼為了學習app自動化測試首要任務肯定就是搭建測試開發環境, 因此在這裡記一次搭建Appium自動化測試環境的完整過程
  • Appium界面自動化測試(4)(Android/Python):詳解應用程式操作
    上一節中,筆者首先安裝了被測應用程式到被測設備中,然後進行自動化測試,但實際項目中往往需要自動化測試腳本自己安裝被測應用程式。
  • 一套完整的Appium自動化測試環境搭建過程
    Appium是一個開源的自動化測試框架,支持跨平臺,支持多種程式語言,可用於原生,混合和移動web應用程式,使用webdriver驅動ios,android應用程式、那麼為了學習app自動化測試首要任務肯定就是搭建測試開發環境, 因此在這裡記一次搭建Appium自動化測試環境的完整過程,文章較長,需要花費一定的時間,請耐心閱讀,如果文中有什麼錯誤請指正。
  • 記一次搭建Appium自動化測試環境的完整過程
    Appium是一個開源的自動化測試框架,支持跨平臺,支持多種程式語言,可用於原生,混合和移動web應用程式,使用webdriver驅動ios,android
  • APP自動化測試系列之Appium介紹及運行原理
    Appium介紹Appium是一個開源測試自動化框架,可用於原生,混合和移動Web應用程式測試。它使用WebDriver協議驅動IOS,Android和Windows應用程式。Appium是開源的移動端自動化測試框架;Appium可以測試原生的、混合的、以及移動端的web項目;Appium可以測試IOS,Android應用;Appium是跨平臺的,可以用在osx,windows以及linux桌面系統上;Appium支持Ruby、Python、Java、JavaScript、Objective C、php
  • 【收藏乾貨】基於Appium、Python的自動化測試環境部署和實踐
    1 導言1.1 編制目的該文檔為選用Appium作為行動裝置原生(Native)、混合(Hybrid)、移動Web(Mobile Web)應用UI自動化測試的相關自動化測試人員、開發人員等提供參考。1.2 預期讀者自動化測試人員、測試代表、開發人員等。
  • Appium 1.18.1 發布,移動應用自動化測試工具
    Appium 是一個開源、跨平臺的自動化測試工具,最初主要用於測試原生和輕量移動應用,包括 iOS 和 Android ,目前還支持對 Windows 平臺上的應用的自動化測試。
  • Appium+python自動化8-Appium Python API(上)
    Context4. find_element_by_ios_uiautomationfind_element_by_ios_uiautomation(self, uia_string):Finds an element by uiautomation in iOS.
  • Windows-UI自動化:如何選擇合適的測試框架
    相信只要了解過一點UI自動化測試的朋友,一定不會對Appium感到陌生。作為移動端UI自動化界的元老和王者,appium幾乎是所有UI自動化測試和UI自動化框架嵌套的首選。那麼這位老牌選手在Windows UI自動化測試上表現如何呢?官網文檔說明:http://appium.io/docs/en/drivers/windows/【簡單原理】基於屬性定位進行腳本編寫,通過埠連接WebDriverAgent驅動微軟自身的WinAppDriver,對於本機App進行佔用和操作。
  • APP UI自動化測試思路總結
    1,Appium開源Appium server支持在Windows、macOS、Linux上運行支持多種主流程式語言,如Python、Java、Javascript、Ruby等支持Android、ios、H5自動化測試(集成了UiAutomator、UiAutomation框架)環境搭建較為複雜
  • APP UI自動化測試,思路全總結在這裡了
    開源Appium server支持在Windows、macOS、Linux上運行支持多種主流程式語言,如Python、Java、Javascript、Ruby等支持Android、ios、H5自動化測試(集成了UiAutomator、UiAutomation框架)環境搭建較為複雜由網易開發,只支持python
  • 同時連接多臺手機,使用appium實現app自動化測試
    同時連接多臺手機,使用appium實現app自動化測試使用appium可以實現app自動化測試,我們之前是連接一臺手機去運行,如何同時連接多臺手機呢?很多人可能想到的是多線程(threading)。環境準備appium的安裝:adt,nodejs,appium的python庫,appium serverpytest的安裝:pytestallure的安裝:allure的python庫pytest-allure-adaptor
  • 測試工程師必須要學會的APP UI 自動化都在這裡了!
    1、Appium開源Appium server支持在Windows、macOS、Linux上運行支持多種主流程式語言,如Python、Java、Javascript、Ruby等支持Android、ios、H5自動化測試(集成了UiAutomator
  • Python Appium開啟Android測試之路
    的webdriver提供了11種元素定位的方法,在selenium的基礎上擴展了三個,可以在pycharm裡面輸入driver.find_element_by然後會自動匹配出來()  (第三個是ios的專用的)  3.2、下面一一舉例進行介紹  3.2.1、元素定位本篇主要介紹如何使用uiautomatorviewer,通過定位到頁面上的元素,然後進行相應的點擊等操作.
  • ​序|自動化測試概述
    Robot Framework: 一款開源的自動化測試框架,具有很好的可擴展性。框架用python編寫,同時也提供跨平臺支持。Postman:簡單方便且功能強大的接口調試工具,API調試首選。UI層自動化基於UI層的自動化測試框架要複雜很多,從平臺種類來講,有Windows,Linux,Android,Ios,Web,還有最新的小程序等等,下面會簡單的和大家捋一遍主流UI層自動化框架的原理、架構以及跨平臺能力。AppiumAppium是一款開源的自動化測試工具,支持IOS、Android、Windows和Mac應用。
  • 解放你的雙手—iOS自動測試基礎
    1 軟體自動化測試簡介自動化測試是用機器來替代人工執行測試的一種測試思想,以程序測試程序的一種測試方式。自動化測試特別適用於重複度很高的測試場景。他通常是手工測試一種補充,而不能完全替代手工測試。它是使用私有API對UI界面進行操作的自動化測試框架,這種類型的測試框架已大行其道,非常受歡迎,KIF就是其中出色的一個,同時,KIF還繼承了XCTest,很多大的軟體公司比如Google都在用這個測試框架。
  • 全網最全最細的appium自動化測試環境搭建教程以及appium工作原理
    appium 自動化測試是很早之前做的,一直想留下點什麼,可是一直抽不出一塊完整的時間來做這件事兒。現在終於有了。反觀各種網際網路的招聘,移動測試已經成了主流,如果再不去學習移動自動化測試技術將已經追不上時代的趕腳!好了,廢話不多說,進入正題!二、Appium簡介
  • Appium自身非必現bug影響自動化測試正常運行?Try-Catch幫您解決
    在進行軟體UI自動化測試的時候,經常會出現非被測軟體bug導致的測試執行失敗,常見原因包括:測試腳本的問題、網絡問題、產品UI的變更等等。還有一種情況是測試工具自身的bug,特別是偶現的bug並且開源的自動化測試工具還沒有修復該bug的時候,我們關心的是如何繞過這個已知bug繼續使用appium進行其他場景的自動化測試,本文通過一個實例進行分析,分兩步闡述一、第一步-----------使用appium測試抖音軟體目標
  • 自動化測試實操案例詳解 | iOS應用篇
    因為之前很多同學都反饋說,官方教程裡面,絕大多數都是安卓設備的實操,Windows應用和iOS設備的測試實操很少,所以這兩周特意給大家安排上。不過在進入主題之前,我們需要明白,大部分情況下,在iOS上做自動化測試和在安卓設備上做自動化測試的思路是一致的,只有少部分接口會有所不同,比如 有些接口只支持安卓設備,不支持iOS設備 ;另外 有些接口在iOS設備和安卓設備的表現會略微不同 。這些內容我們在下文中都會給同學們詳細講解下。
  • 移動APP自動化測試框架對比
    從分層測試的角度,自動化測試應該逐層進行。最大量實現自動化測試的應該是單元測試,最容易實現也最容易在早期發現問題;其次是接口級測試,以驗證邏輯為目的進行自動化,由於接口的相對穩定,自動化測試成本相對也可以接受;自動化成本最大的便是UI級自動化測試,然而UI界面是直接反饋給用戶的效果展示,適度的尤其是BVT級的自動化測試也是非常必要的。