ios零碎记录iOS学霸笔记iOS精品文章-单元测试

OC-测试:monkey For OC(iOS 猴子测试)

2017-03-22  本文已影响1254人  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 。社区里早就有人用过了,但是都藏着掖着。那我是最近才知道,所以拿过来用用。

首先创建项目:

21AFAB6D-7F8D-4E35-917C-758E003F3268.png
然后把 https://github.com/zalando/SwiftMonkey 下载下来。把 SwiftMonkey目录粘贴到你的项目目录下去。
2.png
然后把它的. xcodeproj 拖到项目中去。
3.png
然后进入项目新建一个Target:
4.png
5.png
因为基于 XCUITesting 框架的 monkey 工具是用swift编写的,这里我们选择swift文件
6.png
然后点到新创建的这个target中进行配置
7.png
8.png
10.png
还需要在 build setting 里勾选上 Swift 的标准库,如图:
11.png
然后打开你创建的swift文件 替换如下代码
121.png
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的时刻到了!


121111.png

最后很多人会问monkey会不会测试出BUG?monkey如果测出BUG怎么显示?
1.monkey当然会测出BUG,具体日志分析:


Monkey日志分析.jpg

可能会遇到问题No such module 'SwiftMonkey'
解决办法: 新建的target可能signing没有选择,需要进行选择


error1.png

然后进入.swift文件,点击一下播放按钮就可以了!


error2.png
上一篇 下一篇

猜你喜欢

热点阅读