IOS測試-Fastmonkey

目錄:

一、背景

二榜旦、Fastmonkey介紹

三幽七、Fastmonkey操作前準(zhǔn)備

四、Fastmonkey工程配置過程

五溅呢、執(zhí)行Monkey測試

六澡屡、FAQ


Fastmonkey實踐


一、背景:

? ? ? ?因眾所周知的原因隨著Xcode從7.x升級到8.x或9.x,我們無法再使用Instrument的uiautomation腳本對iOS應(yīng)用進(jìn)行Monkey測試咐旧,所以我們一直期待行業(yè)測試與開發(fā)大牛產(chǎn)出新的Monkey開源工具驶鹉,在這期間我們也使用過了一些技術(shù)大神開發(fā)的基于appium或者基于macaca的開源Monkey測試工具但是都有這樣或者那樣的問題比如:配置過于復(fù)制,上手慢铣墨,執(zhí)行速度達(dá)不到要求室埋、有的還需要進(jìn)行App源碼插莊等問題,直到Faskmonkey的出現(xiàn)它集成了眾家之長伊约,已經(jīng)基本能滿足我們?nèi)粘5膇OS應(yīng)用壓力測試了姚淆。

二、Fastmonkey介紹:

Fastmonkey是zhangzhao大神最近開源的一款iOS應(yīng)用Monkey測試工具屡律,基于 XCTestWD腌逢,swiftmonkey 二次開發(fā),實現(xiàn)無需插樁的 iOS monkey 自動化工具 fastmonkey疹尾,優(yōu)點如下:

1.無需插樁上忍!2.高效率骤肛,每秒4-5個action纳本!4.輕量極簡窍蓝!詳細(xì)介紹請參考TesterHome鏈接 :

Faskmonkey測試工具介紹

項目開源地址:

Xcode9.x(https://github.com/zhangzhao4444/Fastmonkey?

Xcode8.3.x(https://github.com/zhangzhao4444/Fastmonkey/tree/xcode8.3?

三、Fastmonkey操作前準(zhǔn)備:

注意:本文所述操作步驟都是基于Xcode8.x或者Xcode9.x的版本繁成, 注意針對不的Xcode版本下載不同項目工程的吓笙、操作前準(zhǔn)備:

1)Xcode8.3.x /Xcode9.x軟件;

2)iOS?第三方庫管理工具-Carthage巾腕;

3)iOS開發(fā)者證書文件面睛;

4)Fastmonkey工程代碼從github上下載;

詳細(xì)說明:

1)Xcode8.3/Xcode9.x是用于導(dǎo)入Faskmonkey工程及運行monkey測試尊搬;

2)Carthage是iOS用于下載工程所依賴第三方庫的叁鉴;如果沒有安裝請使用下面命令進(jìn)行安裝:

brew install??carthage

3)iOS開發(fā)者證書用于工程中的構(gòu)建及簽名,證書可以是團隊的開發(fā)者證書也可以是免費的個人開發(fā)者證書佛寿,如何申請個人開發(fā)者證書請大家參考其他文檔此處不再敖述幌墓。

4)工程代碼直接從https://github.com/zhangzhao4444/Fastmonkey下載


四、Fastmonkey工程配置過程

配置是經(jīng)過我們驗證過了冀泻,不過因為每一個人的手機與Xcode版本問題可能會一些差異常侣,大家也可以參考TesterHome上的fastmonkey 自我掃盲貼

Fastmonkey的掃盲帖子

1.解壓下載后的Fastmonkey-xxx.zip的文件,打開終端進(jìn)入解壓后的子目錄XCTestWD-master


進(jìn)入解壓后的子目錄XCTestWD-master

2.執(zhí)行下列步驟下載工程所依賴的包 :

1)修改目錄中的Cartfile文件弹渔,將github "SwiftyJSON/SwiftyJSON" 改為github "SwiftyJSON/SwiftyJSON"? ==? 3.1.4? ?修改github "tadija/AEXML"為github "tadija/AEXML" == 4.1.0如下圖:



修改目錄中的Cartfile文件

2)下載工程所依賴的包

$? carthage update

PS:如果此步驟出現(xiàn)錯誤請參考后面的FAQ


下載工程所依賴的包胳施,可能需要一些時間具體要依賴于您的網(wǎng)絡(luò)速度,請耐心等待完成


3.配置XCTestWD項目工程:

雙擊子目錄XCTestWD中的XCTestWD.xcodeproj文件打開項目工程





1)修改Product ID肢专,團隊開發(fā)者證書需要修改舞肆,個人免費開發(fā)者證書可跳過此步驟

a. 修改XCTestWD所需要的產(chǎn)品ID如com.xxxx.XCTestWD.XCTestWD



xxx為證書所定義的產(chǎn)品ID前綴一般是公司或者企業(yè)的域名


b.修改XCTestWDUITests所需要的產(chǎn)品ID如com.xxx.XCTestWD.XCTestWD



xxx為證書所定義的產(chǎn)品ID前綴一般是公司或者企業(yè)的域名


2)修改簽名賬號(個人開發(fā)Team與團隊證書設(shè)置是不一樣的):

a1.團隊開發(fā)者證書如下圖:


a1.修改XCTestWD Code Signing為相應(yīng)的賬號


a1.修改XCTestWD Code Signing為相應(yīng)的Team賬號


a2.同a1過程修改XCTestWDUITests的Code Signing賬號


b.個人開發(fā)者證書如下圖:

b1.修改XCTestWDUITests的Code Signing賬號



b2.同b1修改XCTestWD的Code Signing賬號


3)添加XCTestWDMonkey.swfit到Server目錄



右鍵點擊server目錄,然選擇"Add Files to "XCTestWD"



選擇【XCTestWDMonkey.swift】文件添加到Server


4)清空XCTestWD的Objective-C Bridging Header選項中的值


清空Objective-C Bridging Header選項中的值


清空Objective-C Bridging Header選項

4.修改XCTestWD項目工程代碼中的配置值:

1)修改運行模式博杖,將XCTestWDRunner.swift文件中的serverMode設(shè)置為false如下圖


修改此項為false后椿胯,這樣Monkey就可以直接從Xcode中運行,不需要再使用額外的命令了

2)修改XCTestWDMonkey.swift文件中的bundleID為被測App的值的如下圖:


改為自己App的實際BundleID欧募,如何查找被測App的BundleID請百度一下這里不再敖述

2)修改Monkey.swift文件中的elapsedTime值確定你需要運行多長時間的Monkey压状,注意單位是秒,如下圖:



修改Monkey執(zhí)行時長

五跟继、執(zhí)行Monkey測試

1)選擇要執(zhí)行的手機與Target注意App事先安裝到被測試手機上种冬,手機已經(jīng)插入Mac電腦USB接口


從下拉列表中選擇XCTestWDUITests與手機

2)開始執(zhí)行Monkey



選擇【Product】--【Test】執(zhí)行Monkey測試

六、FAQ:

1. 如果carthage update的時候如果報這個錯xcrun: error: unable to find utility "xcodebuild", not a developer tool or in PATH需要在Xcode中 Preferences > Locations里設(shè)置Command Line Tools為自己使用版本的Xcode --謝謝光暈_9c54的提醒

2.如果是Xcode9.x可能會出現(xiàn)XCTestWDApplication.h file not found錯誤如下圖舔糖,請按照下面方法解決:



XCTestWDApplication.h file not found錯誤

添加XCTestWDApplication.h與XCTestWDApplication.m文件到PrivateHeaders目錄娱两,如下圖



選中PrivateHeaders然后點擊右鍵在彈出的界面中選擇【Add Files to "XCTestWD"...】項目


選擇XCTestWDApplication.h與XCTestWDApplication.m然后點擊Add


XCTestWDApplication.h與XCTestWDApplication.m被添加到了PrivateHeaders中

2.第一次執(zhí)行時可能會報錯,因為需要在手機上信任你的個人證書或者團隊證書金吗,第二次執(zhí)行就不會了十兢。一般位于手機【設(shè)置】--【通用】--【描述文件】中

3.每次運行完成后趣竣,在Xcode的Debug Ouput框中會輸出相應(yīng)的日志與截圖保存位置,每次運行完成后日志會報錯旱物,這個錯誤是由于Fastmonkey的Bug遥缕,參加下面Issue鏈接,主要原因是當(dāng)執(zhí)行時長一到時宵呛,Monkey測試自行停止单匣,這個停止是強退的,但Xctest沒有正常退出造成的宝穗,目前還沒有找到好的解決方法户秤。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市逮矛,隨后出現(xiàn)的幾起案子鸡号,更是在濱河造成了極大的恐慌,老刑警劉巖须鼎,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鲸伴,死亡現(xiàn)場離奇詭異,居然都是意外死亡莉兰,警方通過查閱死者的電腦和手機挑围,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來糖荒,“玉大人杉辙,你說我怎么就攤上這事〈范洌” “怎么了蜘矢?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長综看。 經(jīng)常有香客問我品腹,道長,這世上最難降的妖魔是什么红碑? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任舞吭,我火速辦了婚禮,結(jié)果婚禮上析珊,老公的妹妹穿的比我還像新娘羡鸥。我一直安慰自己,他們只是感情好忠寻,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布惧浴。 她就那樣靜靜地躺著,像睡著了一般奕剃。 火紅的嫁衣襯著肌膚如雪衷旅。 梳的紋絲不亂的頭發(fā)上捐腿,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機與錄音柿顶,去河邊找鬼茄袖。 笑死,一個胖子當(dāng)著我的面吹牛九串,可吹牛的內(nèi)容都是我干的绞佩。 我是一名探鬼主播寺鸥,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼猪钮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了胆建?” 一聲冷哼從身側(cè)響起烤低,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎笆载,沒想到半個月后扑馁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡凉驻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年腻要,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涝登。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡雄家,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出胀滚,到底是詐尸還是另有隱情趟济,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布咽笼,位于F島的核電站顷编,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏剑刑。R本人自食惡果不足惜媳纬,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望施掏。 院中可真熱鬧钮惠,春花似錦、人聲如沸其监。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抖苦。三九已至毁菱,卻和暖如春米死,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贮庞。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工峦筒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人窗慎。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓物喷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親遮斥。 傳聞我的和親對象是個殘疾皇子峦失,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

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

  • 目錄:一、背景二术吗、Fastmonkey介紹三尉辑、Fastmonkey操作前準(zhǔn)備四、Fastmonkey工程配置過程五...
    luckydaxian閱讀 10,622評論 21 28
  • 因為要結(jié)局swift3.0中引用snapKit的問題,看到一篇介紹Xcode8,swift3變化的文章,覺得很詳細(xì)...
    uniapp閱讀 4,408評論 0 12
  • 人是很容易被框住的生物较屿。 哈佛幸福課中講到一個實驗隧魄,用來解釋“習(xí)得性無助”。一只狗隘蝎,第一次被電擊時购啄,它嚎叫著掙扎著...
    長海1994閱讀 225評論 0 0
  • 它還是和那些被蟲蛀的樹被壓壞的馬路被污染的河流被殺死的大馬一樣出了問題醫(yī)生拿著它的化驗單說:“跳的太快,是個問題”...
    伯爵男主閱讀 309評論 0 2
  • 看到一段很好的話嘱么,和朋友們分享:人一生真正需要的 東西其實并不多 如果總是盯著那些 錯誤的東西 內(nèi)心將不會擁有 真...
    易函閱讀 244評論 0 1