Appiumjavascript
Appium是一個開源、跨平臺的測試框架,能夠用來測試原生及混合的移動端應用。Appium支持IOS、Android及FirefoxOS平臺。Appium使用WebDriver的json wire協議,來驅動Apple系統的UIAutomation庫、Android系統的UIAutomator框架。Appium對IOS系統的支持得益於Dan Cuellar’s對於IOS自動化的研究。Appium也集成了Selendroid,來支持老android版本。java
使用Appium進行自動化測試有兩個好處:node
1. Appium在不一樣平臺中使用了標準的自動化APIs,因此在跨平臺時,不須要從新編譯或者修改本身的應用。python
2. Appium支持Selenium WebDriver支持的全部語言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl語言,更可使用Selenium WebDriver的Api。Appium支持任何一種測試框架。若是隻使用Apple的UIAutomation,咱們只能用javascript來編寫測試用例,並且只能用Instruction來運行測試用例。一樣,若是隻使用Google的UIAutomation,咱們就只能用java來編寫測試用例。Appium實現了真正的跨平臺自動化測試。android
mac下搭建appium環境有兩種方法:ios
1.直接下載appium.dmg 運行便可git
2.使用node從命令行運行appiumgithub
下面咱們主要講解MAC下的appium環境搭建:npm
1.brew install node 想要生效首先必須先安裝homebrew才行,因此第一步應當是檢查本身是否已經安裝homebrewjson
命令行中輸入:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
查看版本brow -v
PC-0080:~ guokr$ brew -v
Homebrew 0.9.5
移除版本的話,在命令行中輸入:
rm -rf /usr/local/Cellar /usr/local/.git && brew cleanup
2.在終端輸入brew install node 命令安裝node.js 安裝完成後在終端輸入node -v 命令檢查是否安裝成功,出現版本信息說明安裝成功。
PC-0080:~ guokr$ node -v
v0.10.33
或者用另一種安裝方式:
git clone git://github.com/ry/node.git
cd node
./configure
make
sudo make install
3.在終端輸入npm install -g appium,這裏重點提一下,使用sudo安裝appium可以安裝,可是運行不起來,這裏給出一個解決方案:
方法:
PC-0080:~ guokr$ sudo npm uninstall appium -g //卸載appium
unbuild appium@1.3.4
PC-0080:~ guokr$ sudo chmod -R 777 /usr/local //權限就一刀切了。
PC-0080:~ guokr$ npm install -g appium //從新安裝
4.安裝appium client ,appium主站上給出的命令是npm install wd 這應該是老版本的安裝方法。。
我去github上的appium分支下下載了python-client-master,而後在終端下進入該目錄,輸入python setup.py install 命令進行模塊的安裝。
git clone git@github.com:appium/python-client.git
cd python-client
python setup.py install
5. 啓動appium
appium &
PC-0080:python-client guokr$ appium &
[1] 35465
PC-0080:python-client guokr$ info: Welcome to Appium v1.3.4 (REV c8c79a85fbd6870cd6fc3d66d038a115ebe22efe)
info: Appium REST http interface listener started on 0.0.0.0:4723
info: Console LogLevel: debug
6.appium提供了命令來檢查appium的依賴是否安裝
終端輸入appium-doctor
結果以下:
PC-0080:~ guokr$ appium-doctor
Running iOS Checks
✔ Xcode is installed at /Applications/Xcode.app/Contents/Developer
✔ Xcode Command Line Tools are installed.
✔ DevToolsSecurity is enabled.
✔ The Authorization DB is set up properly.
✔ Node binary found at /usr/local/bin/node
✔ iOS Checks were successful.
Running Android Checks
✔ ANDROID_HOME is set to "/Users/guokr/Downloads/adt/sdk"
✖ JAVA_HOME is not set
因爲我此次只須要執行一個ios測試用例,因此基礎要保證ios依賴沒有問題就能夠了。
寫到這裏mac下的appium環境搭建已經所有完成了,下面讓咱們去運行人森中第一個測試用例吧,學習一個框架最好的辦法,固然是直接運行appiunm提供的例子了,例子是從github上appium中下載的,點這裏download zip去吧-—-。直接git clone遇到了文件權限問題。。。或者在這裏直接下載ios 例子。
下載完成後,在終端進入 cd Downloads/samplecode-master/sample-code/apps/TestApp,目錄下經過以下命令編譯生成示例程序:xcodebuild -sdk iphonesimulator 當看到**BUILD SUCCEEDED**則說明編譯成功
注意:這行命令在TestApp項目底下建立了一個build/Release-iphonesimulator目錄,而且聲稱一個能夠透過Appium服務器交流的.app封裝包。
成功後在終端進入cd Downloads/samplecode-master/sample-code/examples/python目錄下,而後在appium運行的狀況下輸入python ios_simple.py. 示例文件會執行兩個用例,一個是側滑效果,一個是計算求和。
踩過的坑:
運行appium報錯:Appium will not work if used or installed with sudo
bixiaopeng@bixiaopengtekiMacBook-Pro ~$ error: Appium will not work if used or installed with sudo. Please rerun/install as a non-root user. If you had to install Appium using `sudo npm install -g appium`, the solution is to reinstall Node using a method (Homebrew, for example) that doesn't require sudo to install global npm packages.
[1]+ Exit 1 appium
出錯緣由:
權限問題,沒法使用sudo來運行appium
解決辦法:
步驟1. 改變node的全部者
cd /usr/local/lib
sudo chown -R bixiaopeng node_modules
步驟2. 卸載appium
npm uninstall appium -g
步驟3. 從新安裝appium
npm install -g appium
步驟4. 啓動
appium &
步驟5. 查看是否運行成功
瀏覽器打開:
http://0.0.0.0:4723/
顯示:
That URL did not map to a valid JSONWP resource
說明成功
Appium踩過的坑二:
運行iOS用例報錯:We don't have write access to /Applications/Xcode.app..
org.openqa.selenium.SessionNotCreatedException: A new session could not be created. (Original error: We don't have write access to /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/Applications/MobileSafari.app, please re-run authorize as bixiaopeng) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 308 milliseconds
Build info: version: '2.41.0', revision: '3192d8a6c4449dc285928ba024779344f5423c58', time: '2014-03-27 11:29:39'
---------com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:202)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Process finished with exit code 255
問題緣由:
又是權限問題
解決辦法:更改Xcode.app的權限
bixiaopeng@bixiaopengtekiMacBook-Pro Applications$ sudo chown -R bixiaopeng Xcode.app
Password:
再次運行:
OK
轉自: