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

首先创建项目:

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,914评论 25 709
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 24,242评论 8 184
  • 我读书的历史,并不长。毕竟我只有13岁。在我还小的时候,对书并不感兴趣,只喜欢看那些电视剧动画片。所以对我...
    Amy涵儿阅读 1,508评论 0 2
  • 开篇说明:本文以策略产品新人培养为背景,对强交互、强运营类产品适用程度有限。 食用方式:对于新指导人来说可以作为借...
    伊织崇子阅读 5,610评论 2 20
  • 工作6年,没有什么实质性的成就,做过很多行业总是找不到自己的路,迷茫混乱中独自摸索!不怕吃苦,不怕累,但就是找不到...
    立与不立在自己阅读 955评论 0 0