iOS集成 SwiftMonkey流程

Jenkins下集成 SwiftMonkey 請(qǐng)看下篇文章:

在Jenkins下集成SwiftMonkey

由于現(xiàn)在項(xiàng)目一直停留在人工測(cè)試中, 人工測(cè)試可能不會(huì)測(cè)試的那么全面, 當(dāng)開發(fā)修改了一個(gè)地方, 可能牽扯出其他地方, 這個(gè)時(shí)候人工測(cè)試就顯得捉襟見肘巍举。
還有一個(gè)原因就是app上線之后總是有些意想不到的crash, 測(cè)試也不可能完全找到問(wèn)題所在, Android 上有 Monkey 測(cè)試, 就是隨機(jī)測(cè)試(淘氣的猴子), 蘋果沒(méi)有給 iOS 提供 Monkey, 以前有基于 UIAutomation 的 monkey, 但是后來(lái)升級(jí) Xcode 后UIAutomation 框架被砍掉了, 于是很長(zhǎng)時(shí)間 iOS 沒(méi)有 monkey 的說(shuō)法了沛厨。然后無(wú)聊的外國(guó)人又整了一個(gè)基于 XCUITesting 框架的 monkey 工具 —— SwiftMonkey

官方效果如下
下面看下具體流程: (創(chuàng)建項(xiàng)目過(guò)程不具體說(shuō)了, 從添加 SwiftMonkey 開始說(shuō)起)

  1. 打開 GitHub 下載 SwiftMonkey, 將 SwiftMonkey 和 SwiftMonkeyPaws文件夾拷貝到項(xiàng)目中


    添加文件

    添加文件
  1. 然后將 SwiftMonkey.xcodeproj 和 SwiftMonkeyPaws.xcodeproj 拖入到項(xiàng)目中


    拖入項(xiàng)目
  1. 然后進(jìn)入項(xiàng)目新建一個(gè) target


    新建target
創(chuàng)建 Test 文件

因?yàn)?SwiftMonkey 是 swift 編寫, 所以這里選擇 swift 文件


創(chuàng)建 Test 文件
  1. 選中創(chuàng)建的 target, 添加 SwiftMonkey 庫(kù)


    添加 SwiftMonkey 庫(kù)
新建文件索引路徑
添加索引庫(kù)
  1. 還需要在 build setting 里勾選 swift 標(biāo)準(zhǔn)庫(kù)


    選擇swift標(biāo)準(zhǔn)
  1. 然后打開你創(chuàng)建的swift文件 替換如下代碼


    添加執(zhí)行代碼
func testMonkey() {
        let application = XCUIApplication()
        _ = application.descendants(matching: .any).element(boundBy: 0).frame
        let monkey = Monkey(frame: application.frame)
        monkey.addXCTestTapAlertAction(interval: 100, application: application)
        monkey.monkeyAround()
    }
  1. 如果需要在運(yùn)行的 app 中展示猴子?? 需要配置以下:


    添加 SwiftMonkeyPaws 庫(kù)
  1. 在第7步基礎(chǔ)上創(chuàng)建一個(gè) Appdelegate+MonkeyTest.swift 文件, 在里面寫入如下代碼


    添加執(zhí)行代碼
  1. 然后在 didFinishLaunchingWithOptions 方法中調(diào)用這個(gè)方法, 如下:


    調(diào)用方法

問(wèn)題分析:
可能會(huì)遇到問(wèn)題 No such module 'SwiftMonkey'
解決辦法: 新建的target可能signing沒(méi)有選擇,需要進(jìn)行選擇

錯(cuò)誤分析

Monkey 日志分析

  • 正常情況下, 如果 Monkey 測(cè)試順利通過(guò)完成, 在 log 的最后, 會(huì)打印出當(dāng)前執(zhí)行事件的次數(shù)和所花費(fèi)的時(shí)間.
    Test Case ...... paaaed 如果完成, 代表沒(méi)有錯(cuò)誤, 如下圖


    執(zhí)行成功標(biāo)志
控制臺(tái)輸出
  • 異常情況下
    Monkey 測(cè)試出現(xiàn)錯(cuò)誤后, 一般的分析步驟:
    看 Monkey 的分析日志(注意第一個(gè)switch以及異常信息等)
  1. 程序無(wú)響應(yīng)的問(wèn)題: 在日志中搜索 'ANR'
  2. 崩潰問(wèn)題: 在日志中搜索 'Exception', (如果出現(xiàn)空指針, NullPointerException), 肯定是有bug

Monkey 執(zhí)行中斷, 在 log 最后也能查看當(dāng)前執(zhí)行次數(shù)


異常情況

友情鏈接:
Jenkins 中查看崩潰信息

注意: SwiftMonkey 把 XCTesting 的私有 API 拿出來(lái)用了颂碧,直接通過(guò) XCEventGenerator 來(lái)模擬事件。所以如果你的應(yīng)用植入了 SwiftMonkey 千萬(wàn)不要拿去提交 AppStore收苏。

參考文獻(xiàn):
iOS測(cè)試:monkey For OC(iOS猴子測(cè)試)
SwiftMonkey

Jenkins下集成 SwiftMonkey 請(qǐng)看下篇文章:

在Jenkins下集成SwiftMonkey
Jenkins 中查看崩潰信息

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市生百,隨后出現(xiàn)的幾起案子孙蒙,更是在濱河造成了極大的恐慌项棠,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挎峦,死亡現(xiàn)場(chǎng)離奇詭異香追,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)坦胶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門透典,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人顿苇,你說(shuō)我怎么就攤上這事峭咒。” “怎么了岖圈?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)钙皮。 經(jīng)常有香客問(wèn)我蜂科,道長(zhǎng)顽决,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任导匣,我火速辦了婚禮才菠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘贡定。我一直安慰自己赋访,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布缓待。 她就那樣靜靜地躺著蚓耽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪旋炒。 梳的紋絲不亂的頭發(fā)上步悠,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音瘫镇,去河邊找鬼鼎兽。 笑死,一個(gè)胖子當(dāng)著我的面吹牛铣除,可吹牛的內(nèi)容都是我干的谚咬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼尚粘,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼择卦!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起背苦,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤互捌,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后行剂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秕噪,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年厚宰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了腌巾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡铲觉,死狀恐怖澈蝙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情撵幽,我是刑警寧澤灯荧,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站盐杂,受9級(jí)特大地震影響逗载,放射性物質(zhì)發(fā)生泄漏哆窿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一厉斟、第九天 我趴在偏房一處隱蔽的房頂上張望挚躯。 院中可真熱鬧,春花似錦擦秽、人聲如沸码荔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)缩搅。三九已至,卻和暖如春链快,著一層夾襖步出監(jiān)牢的瞬間誉己,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工域蜗, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留巨双,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓霉祸,卻偏偏與公主長(zhǎng)得像筑累,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子丝蹭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

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

  • 嗯哼嗯哼蹦擦擦~~~ 轉(zhuǎn)載自:https://github.com/Tim9Liu9/TimLiu-iOS 目錄 ...
    philiha閱讀 4,879評(píng)論 0 6
  • 按照年初制定的閱讀計(jì)劃慢宗,最近應(yīng)該是要閱讀《別鬧了,費(fèi)曼先生》和《老謀子司馬懿》這兩本書的奔穿,但因多次看到《學(xué)會(huì)學(xué)習(xí)》...
    花琪兒閱讀 398評(píng)論 0 3
  • 1镜沽、過(guò)錯(cuò)是暫時(shí)的遺憾,而錯(cuò)過(guò)則是永遠(yuǎn)的遺憾!不要害怕過(guò)錯(cuò)而錯(cuò)過(guò)贱田。 2缅茉、寧可自己去原諒別人,莫讓別人原諒你男摧。 3蔬墩、世...
    菲菲1988閱讀 277評(píng)論 1 5
  • 任何靈魂修煉的功法拇颅,第一層要修的都是魂力。 靈魂艱難穿行于靈魂迷宮乔询,簡(jiǎn)直就像置身于沼澤里樟插,每前進(jìn)一步,都需要有強(qiáng)大...
    紅塵孤燈閱讀 950評(píng)論 24 18
  • 秋風(fēng)吹過(guò)地方落葉紛飛,飄零在路面上的綠葉沒(méi)有五彩繽紛黄锤,枯黃的顏色讓人感到單調(diào)乏味麻献。隨風(fēng)飄散顯得雜亂無(wú)章,卻讓人思緒...
    夜雨狂風(fēng)閱讀 1,174評(píng)論 0 1