教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

軟件測試之APPIUM工具測試總結

更新時間:2018年03月30日16時24分 來源:傳智播客 瀏覽次數(shù):

一 APPIUM介紹

1 測試對象

appium 是一個自動化測試開源工具,支持iOS和 Android平臺上的原生應用,web應用和混合應用。

● 移動原生應用:單純用ios或者android開發(fā)語言編寫的、針對具體某類移動設備、可直接被安裝到設備里的應用,一般可通過應用商店獲取,比如某個游戲app;

● 移動web應用:使用移動瀏覽器訪問的應用(appium支持iOS上的Safari和Android上的 Chrome),不需要下載到設備上,而是通過瀏覽器直接訪問,比如H5九曲封神游戲;

● 混合應用:同時使用網(wǎng)頁語言與程序語言開發(fā),通過應用商店區(qū)分移動操作系統(tǒng)分發(fā),用戶需要安裝使用的移動應用,比如手機上的淘寶客戶端。

2 支持平臺及語言

appium是跨平臺的,支持OSX,Windows以及Linux系統(tǒng)。它允許測試人員在不同的平臺(iOS,Android)使用同一套API來寫自動化測試腳本,這樣大大增加了iOS和Android測試套件間代碼的復用性。

● appium支持多語言,采用C/S設計模式,只要滿足client能夠發(fā)送http請求給server即可

3 工作原理

如圖所示,appium主要分為三個點:client端,server端,及測試移動設備

● client端:用各類語言寫的測試腳本

● server端:我們安裝appium工具的那部分,專門用來監(jiān)聽并接收來自client端的請求,轉發(fā)請求并控制移動設備執(zhí)行測試,默認開啟并監(jiān)聽4723接口

● 移動設備:支持三類設備,我們的最終目的:在設備上自動執(zhí)行指定的操作

整個過程:

第一,在某臺服務器上安裝appium工具(server端),開啟進程(默認4723接口)進行監(jiān)聽;

第二,編寫測試腳本,放置到服務器上,執(zhí)行該測試腳本(相當于發(fā)送命令給server端)

第三,移動設備接收到server端發(fā)送過來的命令,執(zhí)行指定的操作

4 安裝工具

● 測試語言,如python

● appium客戶端

● appium服務端

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

二 環(huán)境搭建

1 安裝Android SDK

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

提供小工具,比如adb、aapt、uiautomatorview

測試設備使用安卓模擬器

2 安裝Appium Server

下載地址:https://github.com/appium/appium-desktop/releases

下載appium安裝包

安裝,并配置appium環(huán)境變量

3 安裝python-client

先安裝編程語言,比如python語言

安裝Appium-Client,python的話可使用pip安裝:

pip install Appium-Python-Client

三 應用及操作

1 調用Appium過程

配置手機設備參數(shù),告訴server端想調起哪一臺手機設備

常見參數(shù)解釋:

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

● automationName:指定自動化引擎,默認appium

● platformName:指定移動平臺,Android或者iOS

● platformVersion:指定平臺的系統(tǒng)版本。例如指定Android系統(tǒng)版本為4.2

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

● appPackage:待測試app的包名(package)信息

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

通過Android SDK內置工具uiautomatorviewer.bat來查看手機應用的控件參數(shù)

3 對抓取到的控件進行操作,比如點擊、填寫參數(shù)等

ü scroll

scroll(self, origin_el, destination_el):

從元素origin_el滾動至元素destination_el

舉例:driver.scroll(el1, el2)

用法:driver.scroll(el1,el2)

ü tap

tap(self, positions, duration=None):

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

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

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

ü 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)

ü keyevent

keyevent(self, keycode, metastate=None):

發(fā)送按鍵碼(安卓僅有),按鍵碼可以上網(wǎng)址中找到

用法:driver.keyevent(‘4’)

ü press_keycode

press_keycode(self, keycode, metastate=None):

發(fā)送按鍵碼(安卓僅有),按鍵碼可以上網(wǎng)址中找到

用法:driver.press_ keycode(‘4’)

ü text

text(self): 返回元素的文本值

用法:element.text

ü click

click(self): 點擊元素

用法:element.click()

ü get_attribute

get_attribute(self, name): 獲取某元素的相關值

用法:element.get_attribute(“name”)

ü size

size(self): 獲取元素的大小(高和寬)

用法 driver.element.size

ü page_source

page_source(self): 獲取當前頁面的源

用法:driver.page_source

ü quit

quit(self): 退出腳本運行并關閉每個相關的窗口連接

舉例:driver.quit()

四 總結

1 Appium跨平臺,支持Android和IOS自動化測試。

2 Appium支持多語言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure等等

3支持原生應用,web應用和混合應用

4僅支持UI測試

本文版權歸傳智播客軟件測試學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
 
作者:傳智播客軟件測試培訓學院
 
首發(fā):http://test.itcast.cn/

0 分享到:
和我們在線交談!