appium1-macOS10.12下如何絲滑的使用appium?

1伪朽、下載或者更新Homebrew:homebrew官網(wǎng) macOS 不可或缺的套件管理器

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"  #下載
$ brew update #更新
$ brew -v
Homebrew 1.1.5
Homebrew/homebrew-core (git revision e151b; last commit 2016-12-26)

2议蟆、使用homebrew來安裝node.js : Node.js教程 node采用C++編寫恩脂,是一個JavaScript的運行環(huán)境汞幢,因為JS是腳本語言需要一個解析器才能運行肛宋,對于寫在HTML頁面的JS,瀏覽器本身就是解析器榨馁,對于需要單獨運行的JS憨栽,Node.js就是解析器。

$ brew install node
$ node -v
v7.3.0

3、安裝npm: NPM 使用介紹 是一個NodeJS包管理和分發(fā)工具屑柔,已經(jīng)成為了非官方的發(fā)布Node模塊(包)的標(biāo)準(zhǔn)屡萤。

$ brew install npm

4、使用npm來安裝appium锯蛀,2017/01/03目前最新的版本是 1.6.3 灭衷,當(dāng)然也可以在 Macos下bitbucket下載appium客戶端次慢,但是坑人的是最新版本是 1.5.3 支持的還只是 iOS10 以下的 UIAutomation 框架基礎(chǔ)上測試旁涤,而 iOS10 以后蘋果使用的卻是基于 XCUITest ,所以只能采用npm安裝咯迫像。但是因為國內(nèi)墻太高而使用npm卻是從國外服務(wù)器下載劈愚,有時候使用npm需要非常長的時間,更多時候是失敗闻妓,推薦使用cnpm來安裝:淘寶 NPM 鏡像 10分鐘同步npmjs.org鏡像菌羽,使用方式和npm完全一致

$ npm install cnpm -g --registry=https://registry.npm.taobao.org
$ npm view appium versions #查看appium所有的版本號

5、使用cnpm安裝appium和appium-doctor:

$ cnpm install -g appium --no-cache
$ cnpm install -g appium
$ cnpm install -g appium-doctor

6由缆、檢查appium環(huán)境檢測:

$ appium-doctor
info AppiumDoctor Appium Doctor v.1.2.5
info AppiumDoctor ### Diagnostic starting ###
info AppiumDoctor  ? Xcode is installed at: /Applications/Xcode.app/Contents/Developer
WARN AppiumDoctor  ? Xcode Command Line Tools are NOT installed!
info AppiumDoctor  ? DevToolsSecurity is enabled.
info AppiumDoctor  ? The Authorization DB is set up properly.
info AppiumDoctor  ? The Node.js binary was found at: /usr/local/bin/node
info AppiumDoctor  ? Carthage was found at: /usr/local/bin/carthage
info AppiumDoctor  ? HOME is set to: /Users/denglibing
WARN AppiumDoctor  ? ANDROID_HOME is NOT set!
info AppiumDoctor  ? JAVA_HOME is set to: /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
WARN AppiumDoctor  ? adb could not be found because ANDROID_HOME is NOT set!
WARN AppiumDoctor  ? android could not be found because ANDROID_HOME is NOT set!
WARN AppiumDoctor  ? emulator could not be found because ANDROID_HOME is NOT set!
WARN AppiumDoctor  ? Bin directory for $JAVA_HOME is not set
info AppiumDoctor ### Diagnostic completed, 6 fixes needed. ###
info AppiumDoctor 
info AppiumDoctor ### Manual Fixes Needed ###
info AppiumDoctor The configuration cannot be automatically fixed, please do the following first:
WARN AppiumDoctor - Manually configure ANDROID_HOME.
WARN AppiumDoctor - Manually configure ANDROID_HOME and run appium-doctor again.
WARN AppiumDoctor - Add '$JAVA_HOME/bin' to your PATH environment
info AppiumDoctor ###
info AppiumDoctor 
info AppiumDoctor Bye, run appium-doctor again when all manual fixes have been applied!
info AppiumDoctor 

常見問題解決:

? Xcode Command Line Tools are NOT installed!
$ xcode-select --install   #按照提示安裝即可

? Carthage was NOT found!
$ brew install carthage    #carthage:類似cocoapods管理第三方代碼注祖,自動將工程編譯為動態(tài)庫,所以僅支持iOS8以上

WARN AppiumDoctor  ? ANDROID_HOME is NOT set!
但是建議安裝安裝編譯器均唉,可以解決其他Android環(huán)境的其他問題 AndroidStudio(https://developer.android.com/studio/index.html?hl=zh-cn)
設(shè)置 ANDROID_HOME 路徑:
http://stackoverflow.com/questions/19986214/setting-android-home-enviromental-variable-on-mac-os-x
設(shè)置 JAVA_HOME 路徑:
http://stackoverflow.com/questions/6588390/where-is-java-home-on-osx-sierra-10-12-el-captain-10-11-yosemite-10-10


JAVA_HOME問題:
當(dāng)前最新JDK版本下載地址 Java SE Development Kit 8u111 (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)

.bash_profile文件:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
export ANDROID_HOME=/Users/denglibing/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:${JAVA_HOME}/bin

7是晨、安裝appium客戶端,上面的操作只是安裝了server端舔箭,接下來需要安裝測試代碼運行所依賴的客戶端罩缴,我們以python為例:

git clone https://github.com/appium/python-client
cd python-client
#謝謝 @GentHuang 提醒
sudo python setup.py install

如果提示下面錯誤:

python setup.py install 

Password:
Traceback (most recent call last):
  File "setup.py", line 19, in <module>
    from appium.common.helper import library_version
  File "/Users/denglibing/HDProject/GithubProject/python-client/python-client/appium/common/helper.py", line 20
    def extract_const_attributes(cls: type) -> Dict[str, Any]:
                                    ^
SyntaxError: invalid syntax

需要使用如下命令安裝(語法錯誤,需要使用python3层扶,沒有請自行下載安裝):

python3 setup.py install 

8箫章、對于 iOS10 以上的測試,需要下載安裝 appium-xcuitest-driver 驅(qū)動:Appium iOS driver, backed by Apple XCUITest , 當(dāng)然也可以在 /usr/local/lib/node_modules/appium/node_modules/.2.5.1@appium-xcuitest-driver/WebDriverAgent/ 找到該項目镜会,執(zhí)行 carthage update , 選擇 WebDriverAgentRunner 這個target編譯即可檬寂。

其他相關(guān)的安裝:

$ ./Scripts/bootstrap.sh  #感謝網(wǎng)友 @托托李_742f 的提醒,添加該命令解決很多人編譯WebDriverAgent不通過的問題戳表。
$ brew install libimobiledevice --HEAD  # install from HEAD to get important updates
$ brew install ideviceinstaller         # 只是對iOS9有用

$ npm install -g ios-deploy             # iOS10 以后的版本安裝ios-deploy
$ sudo gem install xcpretty             # 真機(jī)需要安裝 xcpretty

不太熟悉WebDriverAgent的可以看看這個博客:
https://testerhome.com/topics/7220

9桶至、下載測試代碼并且測試,官網(wǎng)上的測試代碼坑很多扒袖,這個問題我困擾我好久塞茅。一開始還以為是自己那個環(huán)境出問題還是流程不對,結(jié)果真的只是官網(wǎng)測試代碼本身問題季率,當(dāng)然可以自己編寫代碼測試咯野瘦,也可以下載我的一個簡單的 erduoniba/appium_ios_sample_code

先啟動 appium 服務(wù)器:

$ appium &

再執(zhí)行模擬器的python客戶端的代碼測試

$ cd sample-code/apps/HHH

#在sample-code/apps/HHH/build/Release-iphonesimulator/得到HHH.app包
$ xcodebuild -sdk iphonesimulator
Build settings from command line:
    SDKROOT = iphonesimulator10.2

=== BUILD TARGET HHH OF PROJECT HHH WITH THE DEFAULT CONFIGURATION (Release) ===
...
...
...
Signing Identity:     "-"

    /usr/bin/codesign --force --sign - --timestamp=none /Users/denglibing/Desktop/sample-code/apps/HHH/build/Release-iphonesimulator/HHH.app

** BUILD SUCCEEDED **


$ cd sample-code/examples/python
$ python ios_simple_simulator.py       # 執(zhí)行測試腳本時,會遇到 HTMLTestRunner 錯誤的問題,這個是因為第二篇也對這個腳本進(jìn)行了測試鞭光,請移步到 這里http://www.reibang.com/p/a673b93d1f98 可以快速解決并輸出測試結(jié)果
test_scroll (__main__.SimpleIOSTests) ... ok

----------------------------------------------------------------------
Ran 1 test in 30.421s

OK

對于真機(jī)吏廉,可能要麻煩些,安裝 appium-xcuitest-driver 驅(qū)動后惰许,生成在真機(jī)上運行的包:

參考資料可以看官網(wǎng)的說明 部署ios-app-到手機(jī)上

# 在 apps/HHH/build/Release-iphoneos/HHH.app 得到 release 包
$ xcodebuild -sdk iphoneos -target HHH -configuration Release CODE_SIGN_IDENTITY="iPhone Distribution: Shenzhen XXXX Technology Co., Ltd. (B9FH944VTE)" 
PROVISIONING_PROFILE="08f04032-ca2e-4bb5-b1ba-c32778115f2e"

關(guān)于怎么設(shè)置 CODE_SIGN_IDENTITYPROVISIONING_PROFILE 如何查看 席覆,可以選擇下圖所示的 Development Team 一行, control+c 然后 復(fù)制出去即可

接下來連上真機(jī) 執(zhí)行測試用例代碼:

$ cd sample-code/examples/python
$ python ios_simple_device.py
test_scroll (__main__.SimpleIOSTests) ... ok

----------------------------------------------------------------------
Ran 1 test in 30.421s

OK

10:一些很有幫助的資料

很好的論壇 https://testerhome.com
appium源碼地址: https://github.com/appium/appium
appium官網(wǎng)地址:http://appium.io/
appium中文說明文檔:http://appium.io/slate/cn/master/?ruby#about-appium

11、心得:

整體的流程其實不多汹买,但是在macOS10.12搭建appium的環(huán)境及測試整個過程著實煩躁佩伤,有時候一個小問題就卡1-2天也不好說,而且官網(wǎng)上的文檔和測試代碼已經(jīng)部分誤導(dǎo)我走了非常多的歪路晦毙。

比如

11.1生巡、開始使用 appium1.5.3的mac客戶端,雖然在macOS10.12上也有些問題见妒,確實畢竟GUI用起來非常方便孤荣,可惜是基于 UIAutomation 框架來的,然后在iOS10中已經(jīng)使用了新的框架 XCUITest 须揣,只能廢棄盐股;

11.2、關(guān)于appium如果搭建啊耻卡,進(jìn)行測試啊相關(guān)的文章其實不少疯汁,有中文的也有英文的,可能是作者在那個時候測試兼容過劲赠,但是iOS10上真的很多是誤導(dǎo)了涛目,而且搭建的流程我不建議閱讀 appium中文說明文檔 ,畢竟年代太久遠(yuǎn)了凛澎。倒是可以在 appium源碼地址 上多多發(fā)現(xiàn)類似的問題或者多多提問霹肝,作者及團(tuán)隊人員很熱血 ??

11.3、還是環(huán)境問題塑煎,動不動就會失敗沫换,這個時候只能有耐心的多多看看log日志了,log少什么就滿足他們最铁,邊邊角角的一些依賴資源也可以了解了解??讯赏,畢竟程序員需要耐得住寂寞??,上面的流程基于當(dāng)前最新的開發(fā)環(huán)境 Xcode8.2 冷尉、iOS10.2

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末漱挎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子雀哨,更是在濱河造成了極大的恐慌磕谅,老刑警劉巖私爷,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異膊夹,居然都是意外死亡衬浑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門放刨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來工秩,“玉大人,你說我怎么就攤上這事进统≈遥” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵麻昼,是天一觀的道長奠支。 經(jīng)常有香客問我馋辈,道長抚芦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任迈螟,我火速辦了婚禮叉抡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘答毫。我一直安慰自己褥民,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布洗搂。 她就那樣靜靜地躺著消返,像睡著了一般。 火紅的嫁衣襯著肌膚如雪耘拇。 梳的紋絲不亂的頭發(fā)上撵颊,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機(jī)與錄音惫叛,去河邊找鬼倡勇。 笑死,一個胖子當(dāng)著我的面吹牛嘉涌,可吹牛的內(nèi)容都是我干的妻熊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼仑最,長吁一口氣:“原來是場噩夢啊……” “哼扔役!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起警医,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤亿胸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體损敷,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡葫笼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了拗馒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片路星。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖诱桂,靈堂內(nèi)的尸體忽然破棺而出洋丐,到底是詐尸還是另有隱情,我是刑警寧澤挥等,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布友绝,位于F島的核電站,受9級特大地震影響肝劲,放射性物質(zhì)發(fā)生泄漏迁客。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一辞槐、第九天 我趴在偏房一處隱蔽的房頂上張望掷漱。 院中可真熱鬧,春花似錦榄檬、人聲如沸卜范。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽海雪。三九已至,卻和暖如春舱殿,著一層夾襖步出監(jiān)牢的瞬間奥裸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工怀薛, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留刺彩,地道東北人。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓枝恋,卻偏偏與公主長得像创倔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子焚碌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 概述 Appium是一個移動端的自動化框架畦攘,可用于測試原生應(yīng)用,移動網(wǎng)頁應(yīng)用和混合型應(yīng)用十电,且是跨平臺的知押√久可用于IO...
    zhoutq閱讀 10,812評論 0 21
  • Appium學(xué)習(xí)之路—環(huán)境搭建 說實話,Appium第一次接觸還是在testerhome看到的台盯,介紹說這個框架可以...
    點點寒彬閱讀 9,989評論 10 34
  • Appium Appium是一個開源的罢绽、跨平臺的測試自動化工具,用于本地静盅、混合和移動web和桌面應(yīng)用程序良价,在模擬器...
    顧顧314閱讀 1,745評論 0 0
  • 前言 要想深入地掌握任何一門測試工具,對工具本身的架構(gòu)蒿叠、原理刨摩、使用的協(xié)議及相關(guān)知識點都必須要有相關(guān)的了解和認(rèn)識盆佣,才...
    讓技術(shù)更俗一點閱讀 4,740評論 3 55
  • 前言:本篇文章并非我的原創(chuàng),而是翻譯自英文原著枉昏。這里的每一句話我都仔細(xì)揣摩過并且加以實踐攒岛,著實花了一些時間丹皱,在此記...
    顧顧314閱讀 21,977評論 0 19