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

作者: iOS开发周立贺 | 来源:发表于2017-03-22 14:32 被阅读1254次

从前有种测试叫瞎点测试,随机测试(淘气的猴子)。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

相关文章

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

    从前有种测试叫瞎点测试,随机测试(淘气的猴子)。Android 上有 Monkey。我们以前用 Monkey 来跑...

  • Android稳定性之Monkey测试

    Monkey测试简述 monkey测试顾名思义猴子测试,猴子什么都不懂,只知道在键盘上乱敲。 monkey测试原理...

  • Monkey 测试

    Monkey介绍 Monkey就是猴子, Monkey测试,就像一只猴子,在电脑面前,乱敲键盘在测试。 猴子什么都...

  • Monkey自动化测试

    Monkey概念介绍 Monkey是猴子的意思。Monkey测试,就像一只猴子,在电脑面前,乱敲键盘在测试。猴子什...

  • MonkeyTseting-压力测试(一)

    monkey 一、Monkey测试简介 monkey猴子压测,顾名思义就是像猴子一样乱点应用 Monkey测试是A...

  • android monkey 简单测试

    monkey 介绍 Monkey在英文里的含义是猴子,在测试行业的学名叫“猴子测试”,指的是没有测试经验的人甚至是...

  • Android Monkey 压力测试 介绍

    Android Monkey 压力测试 介绍 什么是Monkey Monkey测试,就像一只猴子,在电脑面前,乱敲...

  • Monkey

    Money介绍 顾名思义,Monkey就是猴子, Monkey测试,就像一只猴子,在电脑面前,乱敲键盘在测试。 猴...

  • 老菜鸟带你皮一下:Monkey测试入门!

    Monkey,也就是猴子,hin皮,所以Monkey测试,顾名思义也就像猴子一样在软件上乱敲按键来测试。猴子什么都...

  • iOS monkey性能测试

    iOS monkey 自动化测试 原理 为了减轻测试人员的测试任务,monkey测试是利用测试工具执行相应的测试脚...

网友评论

  • OnlyLoveYu:进去就闪,+ 1. 什么提示都没有
  • 情之所至_48e7:安装完之后,点击播放,然后日志报错,请问这是什么情况?
    2017-08-01 11:22:15.638475+0800 XCTRunner[4626:1455905] Running tests...
    2017-08-01 11:22:15.921281+0800 XCTRunner[4626:1455934] Connection peer refused channel request for "dtxproxy:XCTestDriverInterface:XCTestManager_IDEInterface"; channel canceled <DTXChannel: 0x174091210>
    Failed to run tests: The operation couldn’t be completed. (DTXProxyChannel error 1.)
  • dqk1023:一点击运行就闪退,怎么回事
  • ShenYj:一路配置完,点击方法前的点编译提示fail,没有任何黄色警告和红色报错(发现的第三方类库注释中的警告都已经删除,demo目前无任何警告),什么情况
    ShenYj:@知道了好的 8.3(8E162)
    知道了好的:你的Xcode是什么版本的
    iOS开发周立贺:还没遇到过这种情况
  • 我还没想好12138:按照楼主的方法成功集成了,不过这个猴子操作太慢了,以至于我的app怎么测都没出现bug,请问作者怎么调节猴子操作的速度呢。
    iOS开发周立贺:调节猴子的速度这个我还没研究,等研究出来告诉你
  • 某非著名程序员:怎么测试不能过,No such module 'SwiftMonkey'
    iOS开发周立贺:@260d120058f7 打开我让你创建的swift文件, 点击一下播放按钮就好了
    某非著名程序员:@iOS开发周立贺 都是按时文章配置的,你的demo也运行不了,你确定你这个没有别的原因?
    iOS开发周立贺:@260d120058f7 target中配置问题,
  • fanzq_jianshu:这个玩意安全不?
    iOS开发周立贺:@fanzq_jianshu 用来测试用的,有啥不安全的。就是也会点到别的应用。

本文标题:OC-测试:monkey For OC(iOS 猴子测试)

本文链接:https://www.haomeiwen.com/subject/easonttx.html