Xcode9.2環(huán)境搭建FastMonkey進(jìn)行Monkey測試

依照國際慣例,此處插播一圖


關(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


切換到xcode9.2分支

3.修改工程依賴包Cartfile文件

Cartfile文件位置


Cartfile文件內(nèi)容

!!修改時(shí),注意等號(hào)左右的空格??!

4.下載工程依賴包

在terminal中進(jìn)入到Fastmonkey/XCTestWD-master路徑下,執(zhí)行如下命令:

carthage update --no-use-binaries

如上圖,下載和編譯依賴沒有任何錯(cuò)誤即可進(jìn)行下一步

注意:如果下載和編譯過程出現(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)目工程

打開項(xiàng)目工程

6.1修改BundleID和設(shè)置開發(fā)者賬號(hào)

修改BundleID和設(shè)置開發(fā)者賬號(hào)

6.2修改XCTestWDUITests對應(yīng)的Signing

修改XCTestWDUITests對應(yīng)的Signing

6.3刪掉XCTestWD/XCTestWD-Bridging-Header.h

刪掉XCTestWD/XCTestWD-Bridging-Header.h

6.4添加XCTestWDMonkey.swfit到Server目錄

右鍵點(diǎn)擊server目錄,然選擇"Add Files to "XCTestWD"


添加XCTestWDMonkey.swift文件

6.5添加XCTestWDApplication.h與XCTestWDApplication.m文件到PrivateHeaders目錄


選中PrivateHeaders然后點(diǎn)擊右鍵在彈出的界面中選擇【Add Files to "XCTestWD"...】項(xiàng)目


選擇XCTestWDApplication.h與XCTestWDApplication.m然后點(diǎn)擊Add


添加后

6.6修改XCTestWD項(xiàng)目工程代碼中的配置值

6.6.1修改為非server模式

serverMode 值設(shè)置為false

說明:server模式需要 iproxy 和curl,筆者用到的是非server模式,直接在xcode中執(zhí)行test。

6.6.2修改XCTestWDMonkey.swift文件中的bundleID為被測App的值

修改被測APP的Bundle ID

6.6.3修改Monkey.swift文件中的elapsedTime值確定你需要運(yùn)行多長時(shí)間的Monkey,注意單位是秒

修改Monkey執(zhí)行時(shí)長,此處為15h

五.進(jìn)行Monkey測試

1.選擇設(shè)備(筆者用的是真機(jī))

xcode9.2不支持≥11.3的系統(tǒng)

2.執(zhí)行Monkey測試

選擇【Product】--【Test】執(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ù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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