更新時(shí)間:2018年03月30日16時(shí)24分 來(lái)源:傳智播客 瀏覽次數(shù):
一 APPIUM介紹
1 測(cè)試對(duì)象
appium 是一個(gè)自動(dòng)化測(cè)試開源工具,支持iOS和 Android平臺(tái)上的原生應(yīng)用,web應(yīng)用和混合應(yīng)用。
● 移動(dòng)原生應(yīng)用:?jiǎn)渭冇胕os或者android開發(fā)語(yǔ)言編寫的、針對(duì)具體某類移動(dòng)設(shè)備、可直接被安裝到設(shè)備里的應(yīng)用,一般可通過(guò)應(yīng)用商店獲取,比如某個(gè)游戲app;
● 移動(dòng)web應(yīng)用:使用移動(dòng)瀏覽器訪問(wèn)的應(yīng)用(appium支持iOS上的Safari和Android上的 Chrome),不需要下載到設(shè)備上,而是通過(guò)瀏覽器直接訪問(wèn),比如H5九曲封神游戲;
● 混合應(yīng)用:同時(shí)使用網(wǎng)頁(yè)語(yǔ)言與程序語(yǔ)言開發(fā),通過(guò)應(yīng)用商店區(qū)分移動(dòng)操作系統(tǒng)分發(fā),用戶需要安裝使用的移動(dòng)應(yīng)用,比如手機(jī)上的淘寶客戶端。
2 支持平臺(tái)及語(yǔ)言
appium是跨平臺(tái)的,支持OSX,Windows以及Linux系統(tǒng)。它允許測(cè)試人員在不同的平臺(tái)(iOS,Android)使用同一套API來(lái)寫自動(dòng)化測(cè)試腳本,這樣大大增加了iOS和Android測(cè)試套件間代碼的復(fù)用性。
● appium支持多語(yǔ)言,采用C/S設(shè)計(jì)模式,只要滿足client能夠發(fā)送http請(qǐng)求給server即可
3 工作原理
如圖所示,appium主要分為三個(gè)點(diǎn):client端,server端,及測(cè)試移動(dòng)設(shè)備
● client端:用各類語(yǔ)言寫的測(cè)試腳本
● server端:我們安裝appium工具的那部分,專門用來(lái)監(jiān)聽并接收來(lái)自client端的請(qǐng)求,轉(zhuǎn)發(fā)請(qǐng)求并控制移動(dòng)設(shè)備執(zhí)行測(cè)試,默認(rèn)開啟并監(jiān)聽4723接口
● 移動(dòng)設(shè)備:支持三類設(shè)備,我們的最終目的:在設(shè)備上自動(dòng)執(zhí)行指定的操作
整個(gè)過(guò)程:
第一,在某臺(tái)服務(wù)器上安裝appium工具(server端),開啟進(jìn)程(默認(rèn)4723接口)進(jìn)行監(jiān)聽;
第二,編寫測(cè)試腳本,放置到服務(wù)器上,執(zhí)行該測(cè)試腳本(相當(dāng)于發(fā)送命令給server端)
第三,移動(dòng)設(shè)備接收到server端發(fā)送過(guò)來(lái)的命令,執(zhí)行指定的操作
4 安裝工具
● 測(cè)試語(yǔ)言,如python
● appium客戶端
● appium服務(wù)端
● 移動(dòng)設(shè)備,若使用虛擬機(jī)則需進(jìn)行安裝
二 環(huán)境搭建
1 安裝Android SDK
Android SDK(Software Development Kit,軟件開發(fā)工具包)提供了 Android API 庫(kù)和開發(fā)工具構(gòu)建,測(cè)試和調(diào)試應(yīng)用程序,可以看做用于開發(fā)和運(yùn)行Android應(yīng)用的一個(gè)軟件
提供小工具,比如adb、aapt、uiautomatorview
測(cè)試設(shè)備使用安卓模擬器
2 安裝Appium Server
下載地址:https://github.com/appium/appium-desktop/releases
下載appium安裝包
安裝,并配置appium環(huán)境變量
3 安裝python-client
先安裝編程語(yǔ)言,比如python語(yǔ)言
安裝Appium-Client,python的話可使用pip安裝:
pip install Appium-Python-Client
三 應(yīng)用及操作
1 調(diào)用Appium過(guò)程
配置手機(jī)設(shè)備參數(shù),告訴server端想調(diào)起哪一臺(tái)手機(jī)設(shè)備
常見參數(shù)解釋:
● deviceName:指定啟動(dòng)設(shè)備,比如Android Emulator、iPhone Simulator等
● automationName:指定自動(dòng)化引擎,默認(rèn)appium
● platformName:指定移動(dòng)平臺(tái),Android或者iOS
● platformVersion:指定平臺(tái)的系統(tǒng)版本。例如指定Android系統(tǒng)版本為4.2
● appActivity:待測(cè)試app的Activity,注意,原生app的話要在activity前加個(gè)“.”
● appPackage:待測(cè)試app的包名(package)信息
2 抓取手機(jī)上應(yīng)用的控件,指定對(duì)應(yīng)的控件來(lái)進(jìn)行操作
通過(guò)Android SDK內(nèi)置工具uiautomatorviewer.bat來(lái)查看手機(jī)應(yīng)用的控件參數(shù)
3 對(duì)抓取到的控件進(jìn)行操作,比如點(diǎn)擊、填寫參數(shù)等
ü scroll
scroll(self, origin_el, destination_el):
從元素origin_el滾動(dòng)至元素destination_el
舉例:driver.scroll(el1, el2)
用法:driver.scroll(el1,el2)
ü tap
tap(self, positions, duration=None):
模擬手指點(diǎn)擊(最多五個(gè)手指),可設(shè)置按住時(shí)間長(zhǎng)度(毫秒)
舉例: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點(diǎn)滑動(dòng)至B點(diǎn),滑動(dòng)時(shí)間為毫秒
舉例:driver.swipe(100, 100, 100, 400)
用法:driver.swipe(x1,y1,x2,y2,500)
ü keyevent
keyevent(self, keycode, metastate=None):
發(fā)送按鍵碼(安卓?jī)H有),按鍵碼可以上網(wǎng)址中找到
用法:driver.keyevent(‘4’)
ü press_keycode
press_keycode(self, keycode, metastate=None):
發(fā)送按鍵碼(安卓?jī)H有),按鍵碼可以上網(wǎng)址中找到
用法:driver.press_ keycode(‘4’)
ü text
text(self): 返回元素的文本值
用法:element.text
ü click
click(self): 點(diǎn)擊元素
用法:element.click()
ü get_attribute
get_attribute(self, name): 獲取某元素的相關(guān)值
用法:element.get_attribute(“name”)
ü size
size(self): 獲取元素的大小(高和寬)
用法 driver.element.size
ü page_source
page_source(self): 獲取當(dāng)前頁(yè)面的源
用法:driver.page_source
ü quit
quit(self): 退出腳本運(yùn)行并關(guān)閉每個(gè)相關(guān)的窗口連接
舉例:driver.quit()
四 總結(jié)
1 Appium跨平臺(tái),支持Android和IOS自動(dòng)化測(cè)試。
2 Appium支持多語(yǔ)言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure等等
3支持原生應(yīng)用,web應(yīng)用和混合應(yīng)用
4僅支持UI測(cè)試
本文版權(quán)歸傳智播客軟件測(cè)試學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客軟件測(cè)試培訓(xùn)學(xué)院
首發(fā):http://test.itcast.cn/
北京校區(qū)