
【基本介紹】
Appium 是一個(gè)開(kāi)源、跨平臺(tái)的自動(dòng)化測(cè)試工具,用于測(cè)試原生和輕量移動(dòng)應(yīng)用,支持 iOS, Android 和 FirefoxOS 平臺(tái)。Appium 驅(qū)動(dòng)蘋(píng)果的 UIAutomation 庫(kù)和 Android 的 UiAutomator 框架,使用 Selenium 的 WebDriver JSON 協(xié)議。Appinm 的 iOS 支持是基于 Dan Cuellar's 的 iOS Auto. Appium 同時(shí)綁定了 Selendroid 用于老的 Android 平臺(tái)測(cè)試。
【軟件功能】
1.appium是開(kāi)源的移動(dòng)端自動(dòng)化測(cè)試框架;2.appium可以測(cè)試原生的、混合的、以及移動(dòng)端的web項(xiàng)目;
3.appium可以測(cè)試ios,android應(yīng)用(當(dāng)然了,還有firefox os);
4.appium是跨平臺(tái)的,可以用在osx,windows以及l(fā)inux桌面系統(tǒng)上;

【軟件特色】
1.不需要為了自動(dòng)化而且重新編譯或修改測(cè)試app;2.不應(yīng)該讓移動(dòng)端自動(dòng)化測(cè)試限定在某種語(yǔ)言和某個(gè)具體的框架;也就是說(shuō)任何人都可以使用自己最熟悉最順手的語(yǔ)言以及框架來(lái)做移動(dòng)端自動(dòng)化測(cè)試;
3.不要為了移動(dòng)端的自動(dòng)化測(cè)試而重新發(fā)明輪子,重新寫(xiě)一套驚天動(dòng)地的api;也就是說(shuō)webdriver協(xié)議里的api已經(jīng)夠好了,拿來(lái)改進(jìn)一下就可以了;
4.移動(dòng)端自動(dòng)化測(cè)試應(yīng)該是開(kāi)源的;

【軟件優(yōu)勢(shì)】
因?yàn)?Appium 在所有平臺(tái)上都使用了標(biāo)準(zhǔn)的自動(dòng)化接口, 所以你不需要以重新編譯或者修改你的 app。你可以用你喜歡的開(kāi)發(fā)工具,使用任何 WebDriver 兼容的語(yǔ)言來(lái)編寫(xiě)測(cè)試用例。比如 Java, Objective-C, JavaScript with Node.js (in both callback and yield-based flavours), PHP, Python, Ruby, C#, Clojure, 或者 Perl。 可以使用標(biāo)準(zhǔn)的Selenium WebDriver API和特定語(yǔ)言的客戶端庫(kù)。
你可以使用任何測(cè)試框架。
如果沒(méi)有 Appium,你就只能用 Javascript 來(lái)寫(xiě) Apple 的 UIAutomation 腳本,并且只能通過(guò)Instruments 應(yīng)用來(lái)運(yùn)行你的測(cè)試。同樣的,在 Google 的UiAutomator體系下,你只能用 Java 寫(xiě)你的測(cè)試案例。Appium 最終開(kāi)啟了跨平臺(tái)原生移動(dòng)自動(dòng)化的可能。
appium的核心其實(shí)是一個(gè)暴露了一系列REST API的server。
這個(gè)server的功能其實(shí)很簡(jiǎn)單:監(jiān)聽(tīng)一個(gè)端口,然后接收由client發(fā)送來(lái)的command。翻譯這些command,把這些command轉(zhuǎn)成移動(dòng)設(shè)備可以理解的形式發(fā)送給移動(dòng)設(shè)備,然后移動(dòng)設(shè)備執(zhí)行完這些command后把執(zhí)行結(jié)果返回給appium server,appium server再把執(zhí)行結(jié)果返回給client。
在這里client其實(shí)就是發(fā)起command的設(shè)備,一般來(lái)說(shuō)就是我們代碼執(zhí)行的機(jī)器,執(zhí)行appium測(cè)試代碼的機(jī)器。狹義點(diǎn)理解,可以把client理解成是代碼,這些代碼可以是java/ruby/python/js的,只要它實(shí)現(xiàn)了webdriver標(biāo)準(zhǔn)協(xié)議就可以。
這樣的設(shè)計(jì)思想帶來(lái)了一些好處:
1,可以帶來(lái)多語(yǔ)言的支持;
2,可以把server放在任意機(jī)器上,哪怕是云服務(wù)器都可以;(是的,appium和webdriver天生適合云測(cè)試)

【工作原理】
Appium 可以驅(qū)動(dòng)多種原生自動(dòng)化框架,同時(shí)也提供基于 Selenium 的 WebDriver JSON wire protocol api。基于Dan Cuellar's 在 iOS 自動(dòng)化上的成果,Appium 通過(guò)驅(qū)動(dòng) Apple 的 UIAutomation 庫(kù)來(lái)提供 iOS 支持。
而在新版本的 Android 上,我們使用 Uiautomator 框架,老版本的 Android,則使用了 Selendroid
FirefoxOS 的支持依賴一個(gè)基于 Gecko 平臺(tái)并且兼容 WebDriver 的自動(dòng)化驅(qū)動(dòng)Marionette。

【安裝教程】
1.下載安裝java環(huán)境默認(rèn)安裝 jdk 2.1.2.
配置java環(huán)境變量
JAVA_HOME D:\Java\jdk1.8.0_25
CLASSPATH .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
Path %JAVA_HOME%\bin;
測(cè)試:CMD中輸入java/javac,能看到命令提示


2.下載安裝adt-bundle-windows-x86_64
配置環(huán)境變量
ANDROID_HOME 值是Android SDK的安裝路徑
Path (%ANDROID_HOME%\platform-tools; %ANDROID_HOME%\tools;)

3.下載安裝nodejs
node2.2.1.默認(rèn)安裝
node2.2.2配置環(huán)境變量
Path D:\nodejs\; (也就是node.exe文件所在的目錄)
測(cè)試:CMD中輸入node-v,能看到版本號(hào)

4.下載安裝Python2.7
將Python2.7的安裝路徑(也就是python.exe所在的目錄)添加到環(huán)境變量Path
測(cè)試:CMD中輸入Python -v

5.第一種方法安裝Appium。
1) 打開(kāi)CMD窗口,執(zhí)行 npm install -g appium 命令開(kāi)始安裝Appium. Appium默認(rèn)被安裝到C:\Users\Administrator\AppData\Roaming\npm\ 下。
2) 把路徑C:\Users\Administrator\AppData\Roaming\npm\ (appium可執(zhí)行文件所在的目錄)添加到環(huán)境變量Path
第二種方法安裝Appium。
下載Appium壓縮包
解壓后配置appium環(huán)境變量
Path D:\tools\appium\Appium\node_modules\.bin;
測(cè)試:CMD中輸入appium-doctor,能看到All Checks were successful
【環(huán)境搭建】
1.安裝配置JDK環(huán)境:安裝JDK過(guò)程簡(jiǎn)單,不再累述;下面進(jìn)行JDK的配置,參數(shù)如下:JAVA_HOME(你的JDK安裝位置,如:C:\Program Files\Java\jdk1.6.0_23)
PATH(%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;)
CLASSPATH(.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar)
驗(yàn)證JDK配置
打開(kāi)CMD,依次輸入:java,javac,java -version進(jìn)行驗(yàn)證,出現(xiàn)以下界面表示配置OK






2.配置SDK環(huán)境:解壓SDK壓縮包到本地,下面進(jìn)行SDK的配置,參數(shù)如下:
ANDROID_HOME(你的SDK路徑,如:D:\Program Files\adt-bundle-windows-x86_64-20131030\sdk)
PATH(%ANDROID_HOME%;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%ANDROID_HOME%\build-tools;)
驗(yàn)證SDK配置
打開(kāi)CMD,輸入:adb,出現(xiàn)以下界面表示配置OK



3.安裝Node.js,雙擊安裝包,然后點(diǎn)下一步下一步即可。注意環(huán)境的配置(圖1),最后安裝成功后的界面如下(圖2)


4.安裝配置Appium Server,解壓安裝包,雙擊安裝包,然后點(diǎn)下一步下一步即可,最后會(huì)彈出一個(gè)CMD窗口,屬正?,F(xiàn)象,不要關(guān)閉它!只需等待即可。安裝完成后配置一下PATH的環(huán)境變量
PATH(C:\Program Files\Appium\node_modules\.bin)
配置完成后打開(kāi)CMD,輸入:appium-doctor,出現(xiàn)下圖的界面表示安裝成功




5.安裝配置Appium Client,雙擊安裝包,然后點(diǎn)下一步下一步即可,出現(xiàn)以下界面表示安裝成功(圖2)


6.安裝配置Appium-Python-Client,Python環(huán)境已配置,前期安裝已完成。打開(kāi)CMD,輸入:pip install Appium-Python-Client進(jìn)行安裝,安裝完成后表示整個(gè)Appium環(huán)境搭建成功,可以正常使用了。

【使用技巧】
Appium如何處理彈窗?1.在安裝app首次啟動(dòng)的時(shí)候,在引導(dǎo)頁(yè)出現(xiàn)權(quán)限彈出框

2.彈窗是可以直接定位到的,這里不能通過(guò)id去定位了,因?yàn)閺棿氨容^多,每次id都不太一樣,但是文本text都是一樣的:始終允許

3.通過(guò)xpath來(lái)定位按鈕:始終允許代碼

4.使用selenium里面的顯示等待模塊WebDriverWait和判斷模塊expected_conditions封裝定位方法代碼

5.循環(huán)判斷是否有權(quán)限彈窗方法代碼

6.使用權(quán)限彈窗-始終允許方法代碼




































