該篇文章能帶你初步進(jìn)行自動(dòng)化測(cè)試環(huán)境搭建,以及運(yùn)行后實(shí)現(xiàn)通過(guò)Xcode/終端把demo安裝到手機(jī)上藏斩。
0躏结、安裝Xcode,v11.3
1狰域、安裝類(lèi)庫(kù)Homebrew 媳拴、?安裝carthage
1)Homebrew簡(jiǎn)介: ?
????????是Mac OSX上的軟件包管理工具,用以安裝和卸載mac上的其他工具兆览,其縮寫(xiě)為brew屈溉,那么安裝和卸載的語(yǔ)法是:brew install/uninstall xxxx; ?
????????如果我沒(méi)有記錯(cuò),有些mac自帶Homebrew抬探,那樣就可以直接使用了子巾,如果沒(méi)有,則需要安裝小压。如何查看電腦是否安裝有Homebrew呢线梗?很簡(jiǎn)單,終端輸入 brew 怠益,如果出現(xiàn)下面的內(nèi)容仪搔,則說(shuō)明已經(jīng)安裝好了。
2)Homebrew安裝:
????????如果未安裝homebrew蜻牢,則需要Mac必帶的ruby來(lái)安裝homebrew烤咧,如下:打開(kāi)終端偏陪,執(zhí)行:(安裝會(huì)提示輸入mac密碼,回車(chē)等待安裝煮嫌,需要一點(diǎn)時(shí)間笛谦,但是速度比瀏覽器下載快太多了。)---下面是一條命令喲立膛。
? ??????$?/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
3)校驗(yàn)
? ??$?brew -v
4)更新brew:
? ??$ brew update ? ? 或??
5)安裝carthage
????????carthage揪罕,iOS 第三方庫(kù)管理工具, ?項(xiàng)目依賴(lài)管理,主要是?WebDriverAgent?使用宝泵,WebDriverAgent?是用它做項(xiàng)目依賴(lài)的好啰。類(lèi)似于 java 的 maven;
? ? ? $ brew install carthage
? ? ? $ carthage version 查詢(xún)版本儿奶,目前為0.34.3
? ? ? $brew uninstall carthage ?卸載
2框往、安裝類(lèi)庫(kù):node (同步會(huì)自動(dòng)安裝npm)
1)簡(jiǎn)介:較新版本的node安裝后,會(huì)附帶npm工具闯捎。 npm即node package manager椰弊,用來(lái)搜索、下載瓤鼻、管理node.js相關(guān)的套件秉版。對(duì)于前端開(kāi)發(fā)者,node茬祷、npm是必備安裝環(huán)境呢清焕。
2)安裝(可以先校驗(yàn)下是否已安裝,未安裝再安裝):$ brew install node
3)校驗(yàn):$ node -v ? ?祭犯、$ npm -v
4)npm的一些使用:
? ??$?npm help //查看npm幫助
? ??$?npm find //查找組件
? ??$?npm install //安裝組件
? ??$?npm remove //刪除組件
3秸妥、安裝依賴(lài)庫(kù):libimobiledevice(必裝)、ios-deploy (iOS10+還必須安裝)
1)安裝?libimobiledevice沃粗。(必裝)
? ??????libimobiledevice是跨平臺(tái)的軟件協(xié)議粥惧,不需要越獄就能訪(fǎng)問(wèn)ios設(shè)備;類(lèi)似android的adb工具最盅,用于獲取ios設(shè)備信息突雪。
? ??$?brew install libimobiledevice?--HEAD ? ? 或者 ?$?brew install?--HEAD?libimobiledevice
校驗(yàn):拿上面的命令試下即可,如果安裝失敗會(huì)提示comment not found檩禾,如下則安裝成功挂签。
? ???若執(zhí)行時(shí)遇到無(wú)權(quán)限(如下圖所示),則執(zhí)行如下2個(gè)命令后重試? ??:
? ??????????????$?sudo chown -R $(whoami) /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew/locks
? ??????????????$?chmod u+w /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew/locks
2)下面兩個(gè)安裝哪個(gè)盼产,請(qǐng)根據(jù)您的ios版本進(jìn)行安裝饵婆,因?yàn)榭紤]到ios一直在升級(jí)或者要測(cè)試低版本兼容性,所以呢,下面兩個(gè)最好都安裝下嘍侨核!
? ??2.1)如果你的IOS 版本是10及以上草穆,則需要安裝ios-deploy?(僅支持IOS10及以上的高版本)
? ??????????ios-deploy也是一個(gè)終端安裝和調(diào)試iPhone應(yīng)用的是第三方開(kāi)源庫(kù),使用時(shí)需要開(kāi)發(fā)者證書(shū)和Xcode7以上版本搓译,(----$?ios-deploy -c如果不報(bào)錯(cuò)悲柱,說(shuō)明已安裝)
? ? ? ? ?????????$?npm install -g ios-deploy ? ? ? 或 ? ? ?$?cnpm install -g ios-deploy
? ? ? ? ? ? ? ? ?點(diǎn)擊查看iOS-deploy常用命令??
? ? ? ? ??如果提示沒(méi)權(quán)限則執(zhí)行:?
? ??????????????$?sudo chown -R $(whoami) /usr/local/lib/node_modules/ios-deploy
? ??????????????$?chmod u+w //usr/local/lib/node_modules/ios-deploy? ?
? ??2.2)如果你的IOS 版本是9及以下,則需要安裝ideviceinstaller(僅支持IOS9及以下的低版本):
????????????????$?brew install ideviceinstaller
? ? ? ? ? ? ? ? 校驗(yàn)(如果不報(bào)錯(cuò)些己,說(shuō)明安裝成功):
????????????????$?ideviceinstaller -l
? ? ? ? ? ? ? ? ? ?常用命令豌鸡,自行
4、Appium-desktop 1.15.1安裝
Appium Desktop與Appium不是同一個(gè)東西段标。Appium Desktop是對(duì)于Appium而言涯冠,是一個(gè)擁有更多相關(guān)工具的圖形化界面。它們各自有各自的Cadence和版本控制系統(tǒng)逼庞。我們使用desktop進(jìn)行實(shí)踐:
1)下載鏈接: https://github.com/appium/appium-desktop/releases蛇更,可以手動(dòng)下載或者git,目前最新版本為v1.15.1.
? ? ? ? 或者直接執(zhí)行安裝:$?brew cask install appium
2)將下載的dmg文件拷貝到文件系統(tǒng)(最好的地方是“應(yīng)用程序”文件夾)赛糟。因?yàn)椴恢С謴母郊拥膁mg上運(yùn)行Appium派任。
3)雙擊進(jìn)行安裝
? ? ? ? 3.1)遇到報(bào)錯(cuò):不能打開(kāi)軟件提示無(wú)法打開(kāi)“appium”,因?yàn)锳pple無(wú)法檢查其是否包含惡意軟件璧南。
????????????????解決:在命令行輸入:$?sudo xattr -rd com.apple.quarantine /Applications/Appium.app ? ?----(應(yīng)用名稱(chēng))掌逛,輸入密碼回車(chē)重新打開(kāi)即可
或者如下圖,解鎖后選擇仍要打開(kāi):
?????????3.2)重新雙擊進(jìn)行啟動(dòng)即可(里面的端口可以自定義)
?appium desktop司倚,也可以使用命令行啟動(dòng):
1??$ node? /Applications/Appium.app/Contents/Resources/app/node_modules/appium/build/lib/main.js? --port 4723
????? ? ? ? ??//--port ?颤诀,Appium的主要端口
2??也可以在命令行中添加--port、--bootstrap-port对湃、--selendroid-port等appium服務(wù)命令行參數(shù):
node? /Applications/Appium.app/Contents/Resources/app/node_modules/appium/build/lib/main.js? --port 4723??--bootstrap-port? 4724??--selendroid-port? ?8090
????? ? ? ? ?//?--bootstrap-port,也可以寫(xiě)成-bp?遗淳,是連接Android設(shè)備bootstrap的端口號(hào)拍柒,默認(rèn)是4724
????? ? ? ? ?// --selendroid-port? ?8090,當(dāng)使用了selendroid屈暗,用來(lái)和 selendroid 交互的本地端口
? ? ? ? ? ? //?--chromedriver-port?chromedriver端口(當(dāng)使用了webviews或者chrome)
3??更多參數(shù):https://www.cnblogs.com/Teachertao/p/10961256.html
5拆讯、appium-doctor 安裝?
appium-doctor用于環(huán)境檢查,可以查看與iOS相關(guān)配置是否完整养叛,下圖是全部配置都成功,如果出現(xiàn)有一項(xiàng)不正確在執(zhí)行一次就可以种呐,或者直接跳過(guò)。
安裝appium-desktop后一般會(huì)默認(rèn)也安裝了弃甥,如果執(zhí)行$?appium-doctor –ios進(jìn)行環(huán)境檢查時(shí)提示無(wú)命令爽室,則可能是部分appium-desktop版本需要手工安裝appium-doctor,如下一步步執(zhí)行即可
1)$?npm install appium-doctor -g
? ? ? ?// 若提示無(wú)權(quán)限淆攻,則執(zhí)行如下:
? ? ? ? ? ??? ??????$?sudo chown -R $(whoami) /usr/local/lib
? ? ? ? ? ??? ??????$?chmod u+w /usr/local/lib
? ? ? ? ? ? 再次執(zhí)行安裝doctor即可:
2)環(huán)境檢查:(warn可以忽略阔墩,未安裝的安裝下即可)
? ??????$?appium-doctor –iOS
6嘿架、更新Appium中的WebDriverAgent
WDA: WebDriverAgent的簡(jiǎn)稱(chēng),是Facebook為蘋(píng)果開(kāi)發(fā)的一個(gè)自動(dòng)化測(cè)試框架啸箫。
WDA的安裝移步到另一篇文章中查看(操作完后記得回來(lái)喲):http://www.reibang.com/p/b5bc45362fa0
7耸彪、實(shí)際運(yùn)行:利用Appium-Python-Client進(jìn)行iOS的自動(dòng)化測(cè)試
????????一般都是使用Python進(jìn)行客戶(hù)端的UI自動(dòng)化,所以在真正運(yùn)行樓主的case之前忘苛,需要先把相關(guān)的依賴(lài)環(huán)境安裝完成
1)安裝python蝉娜,一般mac自帶
? ??????$?brew install python ?
2)安裝Python的appium模塊,即下載python-client 扎唾,放在那里終端就切換到哪里去git
? ??????$?git clone?https://github.com/appium/python-client.git
? ??????$?cd python-client?
? ??????$?python setup.py install
? ? ? ? ? ? //執(zhí)行時(shí)提示沒(méi)有沒(méi)權(quán)限召川,則執(zhí)行如下賦權(quán)
? ??????????????????????$?sudo chown -R $(whoami) /Library/Python/2.7/site-packages/
? ??????????????????????$?chmod u+w /Library/Python/2.7/site-packages/
3)下載測(cè)試demo(appiumSimpleDemo):里面主要寫(xiě)了個(gè)簡(jiǎn)單的iOS工程文件,并包含一個(gè)簡(jiǎn)單的Python測(cè)試腳本
? ??????$?git clone?https://github.com/zhshijie/appiumSimpleDemo
8稽屏、運(yùn)行腳本扮宠,開(kāi)始自動(dòng)化測(cè)試
1)打開(kāi)下載后的appiumSimpleDemo文件,打開(kāi)appiumSimpleDemo.xcodepro程序,配置下TARGET的簽名
2)在appiumSimpleDemo的根目錄執(zhí)行編譯指令狐榔,編譯出一個(gè)app文件xcodebuild -sdk iphoneos -target appiumSimpleDemo -configuration Release坛增,編譯成功后app文件的地址會(huì)打印在命令行中?
? ??????$?cd xcode_workspace/appiumSimpleDemo
? ??????$?xcodebuild -sdk iphoneos -target appiumSimpleDemo -configuration Release
? ? ? ? ? ? ? ? ? ? ? ? //編譯時(shí)如果報(bào)錯(cuò)xcode-select: error: tool 'xcodebuild' requires Xcode,這種情況是xcodebuild的路徑不正確薄腻。執(zhí)行命令($xcode-select--print-path /?$xcodebuild-showsdks)查看路徑收捣。
? ? ? ? ? ? ? ? ? ? ? ? //報(bào)錯(cuò)解決:將路徑切換到Xcode的目錄下(實(shí)踐成功):
? ? ? ? ? ? ? ? ? ? ? ? ? $?sudo xcode-select--switch/Applications/Xcode.app/Contents/Developer/
3)配置python文件
????????打開(kāi)appiumSimpleDemo中的appiumSimpleDemo.py文件,將,修改setup中的幾個(gè)參數(shù)庵楷,將app的路徑罢艾,設(shè)備的相關(guān)信息修改成當(dāng)前連接設(shè)備的信息。----$?ios-deploy -c查看udid&設(shè)備名稱(chēng)尽纽。
4)運(yùn)行
? ? ? ? 法1??:在Xcode中運(yùn)行:cmd+u咐蚯,或者project>test。(無(wú)需啟動(dòng)appium)
? ??????法2??:運(yùn)行Appium程序弄贿,然后運(yùn)行python測(cè)試文件(在終端中執(zhí)行:在`appiumSimpleDemo.py`所在的目錄運(yùn)行 ? `$?python appiumSimpleDemo.py` ?)
? ? ? ? ? ? ? ? ? ? ? ------如果提示SyntaxError: Non-ASCII character則在py文件中添加“# encoding: utf-8”或者“# -*- coding:UTF-8 -*-”即可春锋。
? ? ? ? ? ? ? ? ? ? ? -------如果報(bào)錯(cuò)鏈接被拒,則是因?yàn)閍ppium未啟動(dòng)差凹,啟動(dòng)再次執(zhí)行即可期奔。
? ? ? ? 結(jié)果編譯成功。并且在手機(jī)上安裝了demo危尿。
??遇到的問(wèn)題:如果xcode雖然編譯成功而且安裝了demo但是報(bào)了個(gè)錯(cuò)(無(wú)法啟動(dòng)“appiumSimpleDemo”-)呐萌,如下:
????????解決:在設(shè)置〉通用〉設(shè)備管理或者描述文件〉信任即可,如果遇到完成信任的問(wèn)題谊娇,請(qǐng)參考?ios13找不到描述文件?一定能解決你的問(wèn)題肺孤!