搜尋
首頁運維安全Appium框架的知識點有哪些

Appium框架的知識點有哪些

May 13, 2023 pm 09:37 PM
appium

1、測試對象

Appium是一個開源工具,用於自動化iOS、Android裝置和Windows桌面平台上的原生、行動Web和混合應用程式。

"原生應用程式"指那些用iOS、Android或WindowsSDK編寫的應用程式。

"行動web應用程式"是使用行動裝置瀏覽器存取的應用程式(Appium支援iOS上的Safari、Chrome和Android上的內建瀏覽器)。

"混合應用程式"帶有一個"webview"的包裝器-用來和Web內容互動的原生控制項。

重要的是:Appium是跨平台的:它允許你用同樣的API對多平台寫入測試,做到在iOS、Android和Windows測試套件之間重複使用程式碼。

2、支援平台及語言

● appium是跨平台的,支援OSX,Windows以及Linux系統。它允許測試人員在不同的平台(iOS,Android)使用同一套API來寫自動化測試腳本,這大大增加了iOS和Android測試套件間程式碼的複用性

● appium支援多語言,採用C/S設計模式,只要滿足client能夠發送http請求給server即可

3、工作原理

APPIUM IOS端工作原理

#下面我們透過一張圖來看下IOS端APPIUM全過程工作原理:

Appium框架的知識點有哪些

##APPIUM Android端工作原理

#下面我們透過一張圖來看下android端APPIUM全過程工作原理:

Appium框架的知識點有哪些

解釋:

整個箭頭指向為完成的指令循環

webdriver script需要自動化測試人員自己寫對應的測試腳本

建議大家去了解下JSON wire protocol、instruments、UiAutomator

4、安裝工具

● 測試語言,如python

●appium客戶端

● appium服務端

● 行動設備,若使用虛擬機器則需進行安裝

5、環境建置

(一)安裝Android SDK

1、Android SDK(Software Development Kit,軟體開發工具包)提供了Android API 庫和開發工具構建,測試和調試應用程序,可以看做用於開發和運行Android應用的一個軟體

2、提供小工具,例如adb、aapt、uiautomatorview

3、測試設備使用安卓模擬器,這一步絕對不能跳過

(二)安裝appium Server

1、appium官網:https://pium.app/downloads/

2、下載appium安裝包(AppiumForWindows.zip,appium.dmg)

3、安裝,並設定appium環境變數

(三)安裝python-client

1、先安裝程式語言,例如python語言

2、安裝Appium-Client,python的話可使用pip安裝:pip install Appium-Python-Client

6、應用程式及操作

##①呼叫appium流程

1、設定手機設備參數,告訴server端我想調起的是哪一台手機設備

2、抓取手機上應用的控件,指定對應的控件來進行操作

3、對抓取到的控制進行操作,例如點擊、填寫參數等

第一步,配置手機設備參數

Appium 的Desired Capabilities 基本上配置如下:

Android environment

import unittest

from appium import webdriver

desired_caps = {}

desired_caps['platformName'] = 'Android'

desired_caps ['platformVersion'] = '4.2'

desired_caps['deviceName'] = 'Android Emulator'

desired_caps['app'] = PATH('../../.. /apps/selendroid-test-app.apk')

desired_caps['appPackage'] = package

desired_caps['appActivity'] = activity

##self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

常見參數解釋:

● deviceName:指定啟動設備,例如Android Emulator、iPhone Simulator等

● automationName:指定自動化引擎,預設appium

● platformName:指定行動平台,Android或iOS

● platformVersion:指定平台的系統版本。例如指定Android系統版本為4.2

● appActivity:待測試app的Activity,注意,原生app的話要在activity前加個"."

● appPackage:待測試app的包名(package)資訊

第二步,抓取手機上應用的控制項

透過Android SDK內建工具uiautomatorviewer.bat來查看手機應用程式的控制參數(該工具位於/tools/ bin/ 目錄下)

1、id定位

#使用方法:Appium框架的知識點有哪些

driver.find_element_by_id('com.android.contacts: id/three')

2、name定位

#使用方法:Appium框架的知識點有哪些

el = self.driver.find_element_by_name('未接來電') el = self.driver.find_elements_by_name('未接來電')

3、class name 定位

Appium框架的知識點有哪些

Appium框架的知識點有哪些

Appium框架的知識點有哪些

#使用方法:

els = self.driver.find_element_by_class_name('android.widget.ImageButton') els = self.driver.find_elements_by_class_name('android.widget.ImageButton')

##4、Accessibility ID定位

使用方法:

el = self.driver.find_element_by_accessibility_id('三') el = self.driver .find_elements_by_accessibility_id('三')

5、android uiautomator定位

使用方法:

el=self.driver.find_element_by_android_uiautomator( 'new UiSelector().description(星形符號")')

els=self.driver.find_elements_by_android_uiautomator('new UiSelector().clickable(false)')

第三步,操作控制項

1.scroll

scroll(self, origin_el, destination_el):

從元素origin_el捲動至元素destination_el

範例:driver. scroll(el1, el2)

用法:driver.scroll(el1,el2)

2.tap

tap(self, positions, duration=None):

模擬手指點擊(最多五個手指),可設定按住時間長度(毫秒)

範例:driver.tap([(100, 20), (100, 60), (100 , 100)], 500)

用法:driver.tap([(x,y),(x1,y1)],500)

3. swipe

# swipe(self, start_x, start_y, end_x, end_y, duration=None):

從A點滑動至B點,滑動時間為毫秒

舉例:driver.swipe(100, 100 , 100, 400)

用法:driver.swipe(x1,y1,x2,y2,500)

4. keyevent

#keyevent(self, keycode, metastate= None):

發送按鍵碼(安卓只有),按鍵碼可以在網址中找到

用法:driver.keyevent('4')

5. press_keycode

press_keycode(self, keycode, metastate=None):

#發送按鍵碼(安卓只有),按鍵碼可以上網址中找到

##用法:driver.press_ keycode('4')

6.text

text(self):

傳回元素的文字值

##用法:element.text

7.click

click(self):

點選元素

用法:element.click()

8.get_attribute

get_attribute(self, name):

取得某元素的相關值

用法:element.get_attribute("name")#######9.size## ####size(self):######取得元素的大小(高與寬)#######用法driver.element.size######10. page_source###### #page_source(self):######取得目前頁面的來源######用法:driver.page_source######11.quit######quit(self):## ####退出腳本運行並關閉每個相關的視窗連接######範例:driver.quit()######執行結果判斷######在用例執行完畢,需要判斷是否通過時,需要和你預期的結果進行對比,一般可以選擇斷言查找某個標誌位是否出現,或者某個元素的text值是否和預期相等,還可以截圖後跟參照圖片做對比等等。 ###

以上是Appium框架的知識點有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器