Appium
Appium是一個(gè)開(kāi)源的、跨平臺(tái)的測(cè)試自動(dòng)化工具,用于本地、混合和移動(dòng)web和桌面應(yīng)用程序,在模擬器(iOS)、仿真器(Android)和真實(shí)設(shè)備(iOS、Android、Windows、Mac)上進(jìn)行測(cè)試。
Supported Platforms
iOS
Android
Windows
Mac
請(qǐng)參閱平臺(tái)支持doc以獲得更詳細(xì)的信息。
Why Appium?
1、由于在所有平臺(tái)上使用標(biāo)準(zhǔn)的自動(dòng)化api,您不必重新編譯應(yīng)用程序或以任何方式修改它。
2、您可以使用您喜歡的開(kāi)發(fā)工具編寫(xiě)測(cè)試,使用任何與WebDriver兼容的語(yǔ)言,如Java、objective - c、JavaScript和Node.js(in?promise, callbackorgeneratorflavors)、PHP、Python、Ruby、c#、Clojure或Perl中使用Selenium WebDriver API和特定于語(yǔ)言的客戶程序庫(kù)。
3、您可以使用任何測(cè)試框架。
在WebDriver協(xié)議上投資意味著你在一個(gè)單一的、免費(fèi)的、開(kāi)放的測(cè)試中打賭,這已經(jīng)成為一個(gè)事實(shí)上的標(biāo)準(zhǔn)。不要把自己鎖在一個(gè)專(zhuān)有的堆棧里。
如果你使用蘋(píng)果的ui自動(dòng)化庫(kù),而不使用Appium,你只能使用JavaScript編寫(xiě)測(cè)試用例,而且只能通過(guò)工具應(yīng)用程序運(yùn)行測(cè)試。同樣,使用谷歌的UiAutomator,您只能在Java中編寫(xiě)測(cè)試用例。Appium打開(kāi)了真正跨平臺(tái)的本地移動(dòng)自動(dòng)化的可能性。
我還沒(méi)明白…
如果你是Appium小白,或者想要更詳細(xì)地描述這一切,請(qǐng)閱讀我們的Appium概念介紹。
需求(Requirements)
您的環(huán)境需要為您想要運(yùn)行測(cè)試的特定移動(dòng)平臺(tái)設(shè)置。具體的平臺(tái)需求見(jiàn)下文。
如果您想通過(guò)npm安裝運(yùn)行Appium,對(duì)Appium進(jìn)行hack或貢獻(xiàn),您將需要node.js和npm 4或更高的版本(使用n或brew安裝節(jié)點(diǎn)來(lái)安裝node . js)。確保你沒(méi)有安裝有sudo的節(jié)點(diǎn)或Appium,否則你會(huì)遇到問(wèn)題。我們推薦最新的穩(wěn)定版本。
為了驗(yàn)證Appium的所有依賴(lài)項(xiàng)是否滿足,您可以使用appium-doctor命令行。使用命令行安裝npm install- g appium-doctor(或從源代碼運(yùn)行它),然后運(yùn)行appium-doctor,并提供——ios或——android標(biāo)志,以驗(yàn)證所有的依賴(lài)項(xiàng)都是正確設(shè)置的。
您還需要下載您的語(yǔ)言的Appium客戶端,這樣您就可以編寫(xiě)測(cè)試。Appium客戶端是對(duì)WebDriver客戶端的簡(jiǎn)單擴(kuò)展。您可以在Appium客戶端列表中看到客戶端和鏈接的下載說(shuō)明。
iOS Requirements
1、Mac OS X 10.10 or higher, 10.11.1 recommended
2、XCode >= 6.0, 7.1.1 recommended
3、Apple Developer Tools (iPhone simulator SDK, command line tools)
4、確保您閱讀了我們的關(guān)于為iOS測(cè)試設(shè)置您自己的文檔!
Android Requirements
1、Android SDKAPI >= 17 (Additional features require 18/19)
2、Appium在OS X、Linux和Windows上支持Android。確保你遵循了在不同的OSes中正確設(shè)置你的環(huán)境的變量:
Windows Requirements
1、Windows 10
2、文檔
Mac Requirements
1、Mac OS X 10.7 +
Quick Start
啟動(dòng)一個(gè)Appium服務(wù)器,然后運(yùn)行你最喜歡的webdriver兼容語(yǔ)言的測(cè)試!您可以使用node.js或使用該應(yīng)用程序開(kāi)啟一個(gè)Appium服務(wù)器,見(jiàn)下文。
(通過(guò)使用node.js開(kāi)啟一個(gè)Appium服務(wù))Using Node.js
$ npm install -g appium(這里有一個(gè)巨坑,npm版本如果是最新(5.3.0)的則無(wú)法安裝,會(huì)一直報(bào)錯(cuò),所以需要給npm降低版本:npm install npm@4 -g,如果這一步出錯(cuò),那就需要先清除npm緩存:npm cache clean 如果這一步出錯(cuò),那就試試:npm cache verify。然后再降低版本)
$ appium
如前所述,您可能想要運(yùn)行命令行:appium-doctor,以確保您的系統(tǒng)正確設(shè)置:
$ npm install -g appium-doctor
$ appium-doctor(執(zhí)行這個(gè)命令和點(diǎn)擊圖形化界面上的“聽(tīng)診器”圖標(biāo)(如下圖:)檢測(cè)是一致的,效果如圖:)
通過(guò)使用Appium Desktop應(yīng)用程序開(kāi)啟一個(gè)Appium服務(wù)
1、首先需要下載Appium Desktop:Download the Appium app
2、Run it!
編寫(xiě)Appium測(cè)試用例
開(kāi)始編寫(xiě)和運(yùn)行測(cè)試用例的主要指南是the running tests doc,其中包括對(duì)iOS、Android和Android舊設(shè)備的解釋。如果您對(duì)物理硬件測(cè)試感興趣,您可能會(huì)對(duì)我們的真機(jī)測(cè)試感興趣。
(注意:如果你在自動(dòng)操作ios10 +,一定要看看我們的XCUITest遷移指南,因?yàn)樘O(píng)果的自動(dòng)化支持自ios10以來(lái)已經(jīng)發(fā)生了顯著的變化,在Appium中發(fā)生了相應(yīng)的變化)。
從本質(zhì)上講,我們支持一個(gè)子集的WebDriver JSON線路協(xié)議(Selenium WebDriver JSON Wire Protocol),并擴(kuò)展它,這樣您就可以指定移動(dòng)目標(biāo)desired capabilities(這個(gè)很重要,需要的測(cè)試參數(shù)格式)通過(guò)Appium運(yùn)行您的測(cè)試。
您可以使用WebDriver的元素查找策略的一個(gè)子集來(lái)查找元素。有關(guān)詳細(xì)信息,請(qǐng)參閱查找元素。對(duì)于像點(diǎn)擊、晃動(dòng)和滑動(dòng)這樣的自動(dòng)移動(dòng)手勢(shì),我們也有幾個(gè)擴(kuò)展到JSON Wire協(xié)議。
您還可以在混合應(yīng)用程序中自動(dòng)化web視圖!參見(jiàn)混合應(yīng)用指南。
這個(gè)存儲(chǔ)庫(kù)包含許多不同語(yǔ)言的測(cè)試示例!
對(duì)于完整的Appium文檔頁(yè)面列表,請(qǐng)?jiān)L問(wèn)此目錄。
Appium是如何工作的(How It Works)
Appium驅(qū)動(dòng)各種本機(jī)自動(dòng)化框架,并提供基于Selenium的WebDriver JSON線路協(xié)議的API。
對(duì)于新的iOS版本(9.3和up),Appium驅(qū)動(dòng)著蘋(píng)果的XCUITest庫(kù)。我們對(duì)XCUITest的支持使用了Facebook的WebDriverAgent項(xiàng)目。
對(duì)于舊的iOS版本(9.3和以下),Appium驅(qū)動(dòng)蘋(píng)果的UIAutomation庫(kù),使用基于Dan Cuellar在iOS Auto上的工作的策略。
Android支持使用新的平臺(tái)的UiAutomator框架和較老的Android平臺(tái)的Selendroid。
Windows支持使用了微軟的WinAppDriver。
(Contributing)
請(qǐng)查看我們的貢獻(xiàn)文檔,了解如何從源代碼構(gòu)建、測(cè)試和運(yùn)行Appium。
路線圖(Roadmap)
對(duì)未來(lái)的Appium有興趣?看看路線圖
原文出處:Appium。
補(bǔ)充:
注意:Make sure you have not installed Node or Appium with sudo, otherwise you'll run into problems。