OC-測試:monkey For OC(iOS 猴子測試)
從前有種測試叫瞎點測試,隨機測試(淘氣的猴子)。Android 上有 Monkey。我們以前用 Monkey 來跑 Android 機頂盒,跑出了一堆非常難解決的 kernel 問題,幫助還是很大的。市場上隨便挑個 Android 應用,monkey 能跑個 30 分鐘應該算是了不起了。蘋果沒有給 iOS 提供 Monkey。大概 iOS 應用質量比較好吧。
好在很多無聊的人研究測試技術,於是就有了很多 iOS 上的 monkey 工具。比如基於 UIAutomation 的 monkey —— https://github.com/jonathanpenn/ui-auto-monkey 。通過 copy from stackoverflow 和 copy from github 模式,我們也熟練掌握了 iOS 上的 monkey。不幸的是,iOS 和 Xcode 升級之後,UIAutomation 框架被砍掉了,於是很長時間 iOS 沒有 monkey 的說法了。然後無聊的外國人又整了一個基於 XCUITesting 框架的 monkey 工具 —— https://github.com/zalando/SwiftMonkey 。社群裡早就有人用過了,但是都藏著掖著。那我是最近才知道,所以拿過來用用。
首先建立專案:
然後把 https://github.com/zalando/SwiftMonkey 下載下來。把 SwiftMonkey目錄貼上到你的專案目錄下去。
然後把它的. xcodeproj 拖到專案中去。
然後進入專案新建一個Target:
因為基於 XCUITesting 框架的 monkey 工具是用swift編寫的,這裡我們選擇swift檔案
然後點到新建立的這個target中進行配置
還需要在 build setting 裡勾選上 Swift 的標準庫,如圖:
然後開啟你建立的swift檔案 替換如下程式碼
import XCTest
import SwiftMonkey
class MonkeyForOCUIMonkeyTests: XCTestCase {
override func setUp() {
super.setUp()
XCUIApplication().launch()
}
override func tearDown() {
super.tearDown()
}
func testMonkey() {
let application = XCUIApplication()
_ = application.descendants(matching: .any).element(boundBy: 0).frame
let monkey = Monkey(frame: application.frame)
monkey.addDefaultXCTestPrivateActions()
monkey.addXCTestTapAlertAction(interval: 100, application: application)
monkey.monkeyAround()
}
}
到此,monkey配置整合就完成了,下面就可以開始測試App了
點選小播放按鈕, 程式會自動執行並進行亂點,考驗你App的時刻到了!
最後很多人會問monkey會不會測試出BUG?monkey如果測出BUG怎麼顯示?
1.monkey當然會測出BUG,具體日誌分析:
可能會遇到問題No such module 'SwiftMonkey'
解決辦法: 新建的target可能signing沒有選擇,需要進行選擇
然後進入.swift檔案,點選一下播放按鈕就可以了!
相關文章
- 使用猴子測試工具
- android測試常用的adb命令以及進行Monkey測試Android
- android monkey 測試方法實踐Android
- 測試測試測試測試測試測試
- iOS OC-自定義TabBar TabBarViewControlleriOStabBarViewController
- iOS OC SwiftMonkey 自動化測試 通過Pods整合iOSSwift
- ios App測試iOSAPP
- iOS打測試包與分發測試iOS
- Android Monkey 壓力測試 介紹Android
- Android 自動化測試之 MonkeyAndroid
- Android 測試入門之---Monkey testAndroid
- [iOS單元測試系列]Singleton如何測試iOS
- Android穩定性測試-- Monkey原始碼分析Android原始碼
- Android命令Monkey壓力測試,詳解Android
- [android]Monkey自動化測試引數Android
- iOS 單元測試iOS
- 關於IOS測試iOS
- 實用測試技能分享:APP壓力穩定性測試之Monkey入門實戰APP
- iOS 單元測試和 UI 測試快速入門iOSUI
- 安卓測試跟ios 測試有什麼區別?安卓iOS
- 自動化測試:Monkey工具實踐應用~
- ios APP 測試思考點iOSAPP
- iOS 測試利器:idbiOS
- IOS測試用例例子iOS
- iOS測試奇葩問題iOS
- [iOS單元測試系列]單元測試編碼規範iOS
- App測試、Web測試和介面測試一般測試流程APPWeb
- Android穩定性測試-- Monkey二次開發Android
- 介面測試測試流程
- Flutter 學習之路 - 測試(單元測試,Widget 測試,整合測試)Flutter
- 介面測試,負載測試,併發測試,壓力測試區別負載
- 黑盒測試、白盒測試、單元測試、整合測試、系統測試、驗收測試的區別與聯絡...
- 測試CMS同步測試CMS同步測試CMS同步
- (一)效能測試(壓力測試、負載測試)負載
- 認識軟體測試步測試測試 (轉)
- ---ios模擬弱網測試---iOS
- app穩定性測試-iOS篇APPiOS
- XCTest iOS Swift單元測試iOSSwift