網(wǎng)上寫Appium相關(guān)資料的文章已經(jīng)多如牛毛,今天我所提到的內(nèi)容或許是你不太了解的,希望能在3分鐘時(shí)間為各位看官帶來不一樣的收獲~~ Appium這個(gè)聽起來既生疏也熟悉的自動(dòng)化測(cè)試工具,比起原生的UiAutom...
網(wǎng)上寫Appium相關(guān)資料的文章已經(jīng)多如牛毛,今天我所提到的內(nèi)容或許是你不太了解的,希望能在3分鐘時(shí)間為各位看官帶來不一樣的收獲~~
Appium這個(gè)聽起來既生疏也熟悉的自動(dòng)化測(cè)試工具,比起原生的UiAutomator可能是異常的不起眼,可是卻是有自身獨(dú)當(dāng)一面的能力,可以完成許多高難度作業(yè),完成UiAutomator不可能完成的一些任務(wù),可以說appium豐富了UiAutomator的功能,使UiAutomator可以完成更多的任務(wù)。
Appium到底有哪些優(yōu)勢(shì)會(huì)讓我們優(yōu)先選擇它去做自動(dòng)化呢?
一、一句話概括Appium
一款應(yīng)用于移動(dòng)端的自動(dòng)化測(cè)試框架,支持跨平臺(tái)應(yīng)用,Native、Hybird、Mobile Web都支持。其特點(diǎn)概括一下:
跨平臺(tái)只要一套代碼
不需要設(shè)置簽名,不污染源代碼
不需要項(xiàng)目源代碼就可以測(cè)試
多語言支持
可支持多種通用框架
完全開源,社區(qū)活躍
二、初步認(rèn)識(shí)appium工作過程
1.appium有C/S模式
2.appium是基于webdriver協(xié)議對(duì)移動(dòng)設(shè)備自動(dòng)化api擴(kuò)展而成的,所有具有和webdriver一樣的特性,比如多語言支持。
3.webdriver是基于http協(xié)議的,第一連接會(huì)建立一個(gè)session會(huì)話,并通過post發(fā)送一個(gè)json告知服務(wù)端相關(guān)測(cè)試信息。
4.對(duì)于Android來說,4.2以后是基于UiAutomator框架實(shí)現(xiàn)查找注入事件的,4.2以前則是instrumentation框架的,并封裝成一個(gè)叫Selendroid提供服務(wù)。
5.客戶端只需要發(fā)送http請(qǐng)求實(shí)現(xiàn)通訊,意味著客戶端就是多語言支持的。
6.appium服務(wù)端是node.js寫的,所以安裝那個(gè)平臺(tái)都是先安裝node,然后npm install -g appium(需要FQ)。
三、環(huán)境搭建
步驟:
1.java開發(fā)環(huán)境JDK
2.android SDK(platform/platform tools/tools/build tools)
3.python下載安裝(pip)
4.appium下載安裝(服務(wù)端+客戶端)
5.安裝appium-python-client
6.安裝unittest
第一步
安裝JDK,安裝完成后配置環(huán)境變量。
cmd下java -version檢查環(huán)境變量是否配置成功。
第二步
安裝Android SDK(安卓軟件開發(fā)包),測(cè)試Android手機(jī)必然是要安裝Android SDK。
下載地址:http://tools.android-studio.org/index.php/sdk/
解壓后將文件夾添加到環(huán)境變量中,添加環(huán)境變量,必須創(chuàng)建一個(gè)名為ANDROID_HOME的變量。
雙擊SDK Manager,選裝工具。必裝:Tools文件夾下Android SDK Platform-tools和Android SDK Build-tools,Android SDK Tools可以選擇是否更新,建議網(wǎng)速OK直接更新。GoogleFQ安裝:Extras文件夾下所有的全部安裝。
Path環(huán)境變量中添加ANDROID_HOME、tools、platform-tools、build-tools目錄。保存修改。
環(huán)境變量配置完成后,連接安卓手機(jī),并將Android手機(jī)的開發(fā)者選項(xiàng)-USB調(diào)試打開。
在CMD下執(zhí)行,adb devices,出現(xiàn)下圖樣式則代表通過adb命令,獲取到了連接在電腦上Android手機(jī)的UDID。
adb devices在獲取連接的安卓手機(jī)時(shí),一定會(huì)遇到很多坑,這里我們梳理下可能會(huì)遇到的坑。
1、手機(jī)USB調(diào)試一定要打開。
2、多找兩根USB線,排除線的問題。
3、多換幾個(gè)USB接口,排除USB個(gè)別接口不好使問題(如:3.0 與 2.0)
4、驅(qū)動(dòng)程序,通過設(shè)備管理器查看是否安裝驅(qū)動(dòng)或驅(qū)動(dòng)不是最新。
5、更新adb_usb.ini文件,少數(shù)電腦不能識(shí)別Android手機(jī)時(shí),可以將設(shè)備管理器下的Android手機(jī)的VID、PID增加到adb_usb.ini文件中。
將VID、PID中“_”后的4位數(shù)增加到adb_usb.ini下(注:adb_usb.ini默認(rèn)在C盤當(dāng)前用戶家目錄下的.android目錄下)
理論上這些操作都操作一遍后,基本adb devices就可以找到Android手機(jī)了。
第三步
安裝node.js,之后就可以直接通過npm安裝Appium。(注:npm類似于Python的pip,一個(gè)非官方包管理器)
官方下載地址:https://nodejs.org/en/download/
根據(jù)自己的操作系統(tǒng)下載不同版本的node.js
node.js的安裝一路傻瓜式next就可以了,安裝成功后會(huì)自動(dòng)添加環(huán)境變量。
安裝成功后,檢測(cè)下npm是否可用。
第四步
安裝appium服務(wù)端,可通過cmd 下輸入 npm install -g appium 進(jìn)行安裝。
如果npm install -g appium特別慢,無法下載時(shí),可以用國內(nèi)的鏡像npm –registry http://registry.cnpmjs.org install -g appium
安裝如果失敗可以嘗試通過cnpm安裝appium
通過npm命令安裝cnpm
npm install -g cnpm –registry=https://registry.npm.taobao.org
通過cnpm安裝appium
cnpm install -g appium –no-cache
安裝成功后,通過appium -v 查看當(dāng)前appium版本,直接輸入appium則啟動(dòng)appium server端。
如果仍無法下載appium服務(wù)端,那就只能在Appium官方網(wǎng)站上下載操作系統(tǒng)相應(yīng)的Appium版本。
https://bitbucket.org/appium/appium.app/downloads/
當(dāng)前最新版本為 AppiumForWindows_1_4_16_1.zip ,注意這是一個(gè) Windows 版本,如果你的電腦為MAC請(qǐng)下載 appium-1.5.3.dmg 。
再來提供一個(gè)百度網(wǎng)盤的下載鏈接:https://pan.baidu.com/s/1Y4pD3fjjeKJNv_6E7seQBQ
我們以 Windows 為例,將下載的 AppiumForWindows.zip 進(jìn)行解壓,點(diǎn)擊 appium-installer.exe 進(jìn)行安裝。
雙擊啟動(dòng),appium server 界面如下。
最后,打開Windows命令提示符,輸入“appium-doctor”命令,如果出現(xiàn)以下提示,說明你Appium所需要的各項(xiàng)環(huán)境都已準(zhǔn)備完成。
注:如果提示:“appium-doctor”不是內(nèi)部或外部命令,找到Appium的安裝目錄,例如:
C:\Program Files\Appium\node_modules\.bin
添加到環(huán)境變量path下面。
第五步
安裝appium客戶端,用于抓取app上定位信息。
地址:https://github.com/appium/appium-desktop/releases/tag/v1.2.1
雙擊安裝,安裝成功后左面會(huì)有一個(gè)appium的快捷方式。
到這里Windows-Android-appium的所有環(huán)境就已經(jīng)搭建完成了。
總結(jié):
Appium目前是一種比較先進(jìn)的測(cè)試工具,可以覆蓋到UiAutomator所涉及的各個(gè)方面,還能完成webview的自動(dòng)化測(cè)試,但是部署環(huán)境較復(fù)雜,而且出現(xiàn)很多的異常情況很難去定位到問題,同時(shí)網(wǎng)上資料也比較匱乏,導(dǎo)致其普及范圍不是很廣,希望這篇文章可以幫助需要用到appium工具的同學(xué),快速越過搭建環(huán)境這一關(guān),快速投入到混合型App的自動(dòng)化測(cè)試當(dāng)中。