基于Macaca實(shí)現(xiàn)的iOS Monkey測試實(shí)現(xiàn)

首先,這個(gè)monkey的實(shí)現(xiàn)唉韭,并不是我寫的监署,我只是按照Testerhome上面大神的教程實(shí)施的,我只不過來記錄一下纽哥,自己在實(shí)現(xiàn)這個(gè)方案時(shí)钠乏,是如何操作,遇到何種坑春塌,以及是如何解決的晓避。

原帖傳送門>>> https://testerhome.com/topics/8025

好了簇捍,開始交代我的實(shí)施。

實(shí)施工具:mac電腦一臺俏拱,iPhone手機(jī)一部暑塑;

開發(fā)環(huán)境:OS X 10.12.3

? ? ? ? ? ? ? ? ? ?Xcode 8.3.2

? ? ? ? ? ? ? ? ? ?Eclipse for OS X 4.6.3、maven

關(guān)于Xcode和eclipse锅必、maven環(huán)境的配置事格、這里就不介紹了,網(wǎng)上一堆教程搞隐,現(xiàn)在開始準(zhǔn)備Macaca的環(huán)境驹愚。

一、準(zhǔn)備Macaca環(huán)境

1劣纲、安裝usbmuxd

$ brew install usbmuxd

2逢捺、安裝ios-webkit-debug-proxy

$ brew install ios-webkit-debug-proxy

3、安裝ios-deploy

$ npm i ios-deploy -g

4癞季、安裝ideviceinstaller

ideviceinstall如果需要用命令行安裝的話劫瞳,使用不了,具體我也沒試绷柒,既然原作者說了志于,那就按他建議的來,直接到GitHub上下載源代碼到本地废睦,然后編譯運(yùn)行恨憎。

ideviceinstall GitHub地址:https://github.com/libimobiledevice/libimobiledevice

4.1、在編譯之前郊楣,先將設(shè)置以下內(nèi)容到環(huán)境變量中:

LD_LIBRARY_PATH=/usr/local/opt/openssl/lib:"${LD_LIBRARY_PATH}"

CPATH=/usr/local/opt/openssl/include:"${CPATH}"

PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig:"${PKG_CONFIG_PATH}"

export LD_LIBRARY_PATH CPATH PKG_CONFIG_PATH

打開終端憔恳,輸入 $ sudo vim etc/profile ,然后按i進(jìn)入編輯模式净蚤,將以上內(nèi)容添加到環(huán)境變量钥组,然后按esc退出編輯模式,輸入 “:wq!”保存并退出今瀑。

4.2程梦、編譯安裝ideviceinstall

打開終端并進(jìn)入到libimobiledevice工程目錄,分別執(zhí)行:

./autogen.sh

make

sudo make install

5橘荠、安裝carthage

$ brew install carthage

6屿附、安裝macacajs 包括,macaca-cli macaca-ios

$ npm install macaca-cli@1.2.2 ?-g

$ npm install macaca-ios@1.0.66 ?-g

原文沒有指定安裝版本哥童,但實(shí)際上隱藏著一個(gè)大坑挺份,因?yàn)镸acaca在近期做了重構(gòu),現(xiàn)在新版本是2.幾的版本了贮懈,但是iOS monkey作者并沒有支持到Macaca的新版本(我之前就毫無意外地掉這個(gè)坑了匀泊,最后通過跟Macaca作者和iOSmonkey原文作者溝通优训,才曉得),所以如果想要使用這套環(huán)境各聘,要么就等iOS monkey的作者支持Macaca最新版本揣非,要么就安裝舊版本了。

好了躲因,安裝完成之后早敬,檢測macaca環(huán)境,確保無報(bào)錯(cuò)(至少iOS的環(huán)境應(yīng)該都是好的了)

$ macaca doctor

檢查無誤之后大脉,到此搞监,我們的Macaca環(huán)境就完事了。

二箱靴、WebDriverAgent項(xiàng)目重簽名

2.1、下載WebDriverAgent

GitHub地址:https://github.com/facebook/WebDriverAgent

2.2荷愕、WebDriverAgent項(xiàng)目重簽名

2.2.1衡怀、使用xcode打開保存在本地的WebDriverAgent項(xiàng)目,在項(xiàng)目資源列表點(diǎn)擊工程文件安疗、然后在TARGETS上抛杨,分別點(diǎn)中那五個(gè)targets,然后在general或者build setting上修改bundle ID并選擇簽名的證書荐类,bundle ID修改就是把原來的“facebook”字樣修改掉怖现,比如換成什么abc都行,只要后面選擇證書的時(shí)候玉罐,能夠不報(bào)錯(cuò)就行屈嗤。如下圖1:


圖1 修改bundle ID和選擇簽名的證書

記得是5個(gè)都要改,一個(gè)個(gè)檢查吧吊输。完了之后饶号,打開終端,進(jìn)入WDA工程目錄季蚂,執(zhí)行

$ ./Scripts/bootstrap.sh

build完成以后茫船,之前以為就可以完成WDA的配置了,就進(jìn)入下一步了扭屁,然后算谈,只是又不知不覺掉了一個(gè)坑而已,好了料滥,繼續(xù)往下看往下搞然眼。

2.2.2、Xcode->file->Open Quickly葵腹,輸入/usr/local/lib/node_modules/macaca-ios/node_modules/webdriveragent/WebDriverAgent/WebDriverAgent.xcodeproj 罪治,回車

這里會發(fā)現(xiàn)丽声,在這個(gè)路徑下,又有一個(gè)WDA工程觉义,然后查看工程設(shè)置雁社,發(fā)現(xiàn)bundle ID和簽名都沒修過過,按照2.2.1步驟里面修過bundle ID 和選擇簽名晒骇,完成之后霉撵,才是真的完成了WDA的配置。

三洪囤、編譯徒坡、執(zhí)行iOS Monkey

3.1、編譯iOS Monkey

iOS Monkey開源工程下載地址:https://github.com/baozhida/iosMonkey

下載到本地后瘤缩,由于這個(gè)開源項(xiàng)目是maven工程喇完,所以編譯之前先得把maven環(huán)境弄好,這里不再贅述剥啤。

終端進(jìn)入到工程目錄锦溪,執(zhí)行

$ maven install

結(jié)果,發(fā)現(xiàn)報(bào)錯(cuò)了8印?陶铩!Failed to execute goal on project iosMonkey: Could not resolve dependencies for project iosMonkey:iosMonkey:jar:1.0: Failure to find macaca.webdriver.client:macacaclient:jar:2.0.4 inhttps://repo.maven.apache.org/maven2was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced

看一下工程上的Maven Dependencies牺丙,沒有找到macacaclient-2.0.4.jar這個(gè)jar包则涯,update maven工程,也仍然沒有下載得回來冲簿,但是pom.xml上粟判,是明確配置有這個(gè)依賴的;網(wǎng)上一查峦剔,原來是macaca在maven默認(rèn)的倉庫下架了浮入,所以會提示找不到,當(dāng)時(shí)嘗試修改maven的settings.xml羊异,使用阿里的鏡像事秀,但是好像并沒有生效,搞不懂為啥野舶,嘗試多次仍然搞不定之后易迹,就換了個(gè)思路,就是把jar包下載回來平道,從本地導(dǎo)入睹欲。

到?http://jcenter.bintray.com?下載macacaclient 2.0.1版本,然后先修改pom.xml上macacaclient的配置,即把版本號修改成2.0.1就好(這里說一下為什么要用2.0.1版本窘疮,2.0.1是原作者使用的版本袋哼,前面也說過,macaca進(jìn)行了重構(gòu)闸衫,使用最新版本可能會有隱藏的坑涛贯,為了別再掉入類似的坑,還是直接選擇原作者當(dāng)時(shí)使用的版本了)蔚出,然后弟翘,執(zhí)行:

$ mvn install:install-file -DgroupId=macaca.webdrivier.client -DartifactId=macacaclient -Dversion=2.0.1 -Dfile=你的路徑/macacaclient-2.0.1.jar -Dpackaging=jar -DgeneratePom=true

這時(shí)候,我們再看一下工程目錄下的Maven Dependencies骄酗,已經(jīng)有macacaclient-2.0.1.jar了稀余,這時(shí)候再次終端執(zhí)行 mvn install 就可以編譯成功了,target下生成iosMonkey-1.0.jar趋翻。

3.2睛琳、執(zhí)行iOS Monkey

先在xcode把WDA跑起來:xcode->produck->test

終端進(jìn)入iOS Monkey工程目錄,執(zhí)行

$ macaca server ?--verbose

新開另外一個(gè)終端窗口踏烙,同時(shí)也進(jìn)入iOS Monkey工程目錄师骗,執(zhí)行

$ java -jar [iosMonkey.jar Path] -u [設(shè)備的UDID] -b [測試App的BundleID] -port [macaca服務(wù)端口,可選] -proxyport[usb代理端口,可選]

設(shè)備的udid可以通過iTunes或者iTools獲取,服務(wù)端口和代理端口可以不設(shè)置宙帝,使用默認(rèn)的就好了丧凤,命令執(zhí)行之后募闲,應(yīng)該就能跑起來了步脓,另外,如果需要登錄浩螺,建議先手動登錄成功后靴患,再執(zhí)行monkey。效果如下:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末要出,一起剝皮案震驚了整個(gè)濱河市鸳君,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌患蹂,老刑警劉巖或颊,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異传于,居然都是意外死亡囱挑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進(jìn)店門沼溜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來平挑,“玉大人,你說我怎么就攤上這事⊥ㄏǎ” “怎么了唆涝?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長唇辨。 經(jīng)常有香客問我廊酣,道長,這世上最難降的妖魔是什么助泽? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任啰扛,我火速辦了婚禮,結(jié)果婚禮上嗡贺,老公的妹妹穿的比我還像新娘隐解。我一直安慰自己,他們只是感情好诫睬,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布煞茫。 她就那樣靜靜地躺著,像睡著了一般摄凡。 火紅的嫁衣襯著肌膚如雪续徽。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天亲澡,我揣著相機(jī)與錄音钦扭,去河邊找鬼。 笑死床绪,一個(gè)胖子當(dāng)著我的面吹牛客情,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播癞己,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼膀斋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了痹雅?” 一聲冷哼從身側(cè)響起仰担,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎绩社,沒想到半個(gè)月后摔蓝,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡愉耙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年贮尉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片劲阎。...
    茶點(diǎn)故事閱讀 40,424評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绘盟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情龄毡,我是刑警寧澤吠卷,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站沦零,受9級特大地震影響祭隔,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜路操,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一疾渴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧屯仗,春花似錦搞坝、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至峰弹,卻和暖如春店量,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背鞠呈。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工融师, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蚁吝。 一個(gè)月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓旱爆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親灭将。 傳聞我的和親對象是個(gè)殘疾皇子疼鸟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評論 2 359

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,262評論 25 707
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,838評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理后控,服務(wù)發(fā)現(xiàn)庙曙,斷路器,智...
    卡卡羅2017閱讀 134,693評論 18 139
  • 我曾以為這世間的愛浩淘,只有一種殘忍長大后才發(fā)現(xiàn)捌朴,殘忍不過是大人的貪心。
    Fetiz閱讀 199評論 0 0
  • 六月初张抄,北京已是十足的夏天砂蔽,沈陽的清晨卻仍是透著些許涼意,街上像我只穿一短袖的并不多署惯,我有些懊悔自己的大意左驾,到醫(yī)院...
    cherryxue閱讀 508評論 0 0