首頁 > 運維 > 安全 > 主體

Appium框架的知識點有哪些

王林
發布: 2023-05-13 21:37:12
轉載
1053 人瀏覽過

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中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!