關(guān)鍵字:xcode9.2、FastMonkey、Carthage、XCTestWD
目錄:
一.背景介紹
二.FastMonkey介紹
三.搭建FastMonkey的前置條件
四.FastMonkey工程配置
五.進(jìn)行Monkey測試
六.后記
一.背景介紹
????????近期老大讓調(diào)研iOSMonkey測試,看了好幾個(gè)第三方的框架,最后看到了集眾家所長的FastMonkey。因此作為一名iOS Monkey測試小白,在環(huán)境搭建和運(yùn)行上遇到了很多問題,看了寫FastMonkey的zhangzhao大神寫的原貼和簡書上luckydaxian寫的掃盲貼,又QQ問zhangzhao大神,終于運(yùn)行了起來,因此寫此篇文章進(jìn)行記錄,希望能夠幫助其他小伙伴少進(jìn)坑。
????????此外進(jìn)行下說明,此篇文章和luckydaxian寫的《使用Fastmonkey進(jìn)行Monkey測試實(shí)踐》有很多相似之處,許多也直接進(jìn)行了引用,但是由于按照luckydaxian寫的仍然存在一些問題,我在luckydaxian寫的文章下進(jìn)行了評論,但是為了有類似經(jīng)歷的小伙伴看起來更方便,搭建環(huán)境過程更順利,所以就重新整理了一遍。在這里向zhangzhao大神和luckydaxian致敬~
二.FastMonkey介紹
????????Fastmonkey是zhangzhao大神去年(2017年)開源的一款iOS應(yīng)用Monkey測試工具,基于 XCTestWD、swiftmonkey 二次開發(fā),實(shí)現(xiàn)無需插樁的 iOS monkey 自動(dòng)化工具 fastmonkey,優(yōu)點(diǎn)如下:
1.無需插樁!
2.高效率,每秒4-5個(gè)action!(真的很高效~)
3.輕量極簡!
詳細(xì)介紹請參考TesterHome鏈接 :
(已開源) 基于 XCTestWD,swiftmonkey 二次開發(fā),實(shí)現(xiàn)無需插樁的 iOS monkey 自動(dòng)化工具 fastmonkey(作者是zhangzhao大神)
項(xiàng)目開源地址:https://github.com/zhangzhao4444/Fastmonkey?
題外:我在本地run起來后,又從頭看了一遍此貼,包括zhangzhao大神的update和很多志同的小伙伴的評論和討論,收獲很大。
三.搭建FastMonkey的前置條件
1. Xcode9.2軟件:
用于導(dǎo)入Faskmonkey工程及運(yùn)行monkey測試.
注意:xcode自帶的swift是swift4,F(xiàn)astMonkey需要swift3.2,此點(diǎn)熟記于心。
2. iOS?第三方庫管理工具-Carthage:
?Carthage是iOS用于下載工程所依賴第三方庫的;如果沒有安裝請使用下面命令進(jìn)行安裝:brew install??carthage(已安裝請忽略)
3. iOS開發(fā)者證書文件:
?iOS開發(fā)者證書用于工程中的構(gòu)建及簽名,證書可以是團(tuán)隊(duì)的開發(fā)者證書也可以是免費(fèi)的個(gè)人開發(fā)者證書,如何申請個(gè)人開發(fā)者證書請大家參考其他文檔此處不再敖述
4. Fastmonkey工程代碼從github上下載:
工程代碼直接從https://github.com/zhangzhao4444/Fastmonkeydownload或clone
四.FastMonkey工程配置
1.clone FastMonkey工程
進(jìn)入terminal,執(zhí)行 git clone?https://github.com/zhangzhao4444/Fastmonkey.git
2.切換工程分支到xcode9.2
進(jìn)入FastMonkey文件夾下,執(zhí)行g(shù)it checkout xcode9.2
3.修改工程依賴包Cartfile文件
!!修改時(shí),注意等號(hào)左右的空格??!
4.下載工程依賴包
在terminal中進(jìn)入到Fastmonkey/XCTestWD-master路徑下,執(zhí)行如下命令:
carthage update --no-use-binaries
注意:如果下載和編譯過程出現(xiàn)錯(cuò)誤,請check以下兩點(diǎn):
i. Cartfile文件中各依賴的版本號(hào)是否正確;
ii.查看log日志,具體定位錯(cuò)誤原因。
5.安裝ideviceinstaller庫
ideviceinstaller一個(gè)與安裝代理進(jìn)行交互的工具。允許安裝、升級(jí)、卸載、歸檔、恢復(fù)iOS設(shè)備,并列舉安裝或歸檔的應(yīng)用程序。
github地址:https://github.com/libimobiledevice/ideviceinstaller
將工程clone到本地后,按照github上的readme進(jìn)行安裝。
6.配置XCTestWD項(xiàng)目工程:
雙擊子目錄XCTestWD中的XCTestWD.xcodeproj文件,在xcode中打開項(xiàng)目工程
6.1修改BundleID和設(shè)置開發(fā)者賬號(hào)
6.2修改XCTestWDUITests對應(yīng)的Signing
6.3刪掉XCTestWD/XCTestWD-Bridging-Header.h
6.4添加XCTestWDMonkey.swfit到Server目錄
6.5添加XCTestWDApplication.h與XCTestWDApplication.m文件到PrivateHeaders目錄
6.6修改XCTestWD項(xiàng)目工程代碼中的配置值
6.6.1修改為非server模式
說明:server模式需要 iproxy 和curl,筆者用到的是非server模式,直接在xcode中執(zhí)行test。
6.6.2修改XCTestWDMonkey.swift文件中的bundleID為被測App的值
6.6.3修改Monkey.swift文件中的elapsedTime值確定你需要運(yùn)行多長時(shí)間的Monkey,注意單位是秒
五.進(jìn)行Monkey測試
1.選擇設(shè)備(筆者用的是真機(jī))
2.執(zhí)行Monkey測試
3.截圖路徑位置:
截圖路徑:/Users/olivia/Library/Developer/Xcode/DerivedData/XCTestWD-equyofhmagirhbgjwqrbrzrwbnrl/Logs/Test/Attachments
關(guān)于log,xcodetest介紹后,可以在控制臺(tái)看到輸出的log位置。
六.后記
關(guān)于FastMonkey:正如zhangzhao大神寫到的FastMonkey的執(zhí)行效率非常高,控件的遍歷也很細(xì),這幾天執(zhí)行了Monkey,確實(shí)有一些收獲。但是FastMonkey的實(shí)現(xiàn)原理,作為一名小白,還是不明白。后續(xù)需要做的工作還有很多,大致分以下幾點(diǎn):
1.了解熟悉Monkey測試原理和FastMonkey實(shí)現(xiàn);
2.部署到Jenkins,實(shí)現(xiàn)Monkey測試時(shí)間可配置;
3.與性能測試結(jié)合,收集性能數(shù)據(jù)。