简介

monkey测试指的是,app根据系统随机产生操作指令,进行各种随机的操作,测试执行一段时间后,观察app是否有crash或者异常日志。
在monkey中主要是模拟用户点击、滑动、长按、返回这几种常用的操作。

实现方式

实现思路有三种:

Instrument中控制app的点击行为

用Xcode自带的工具,实现js脚本可以参考 https://my.oschina.net/bluedreamjn/blog/536049
在Xcode7里测试可以运行,测试代码会逐个点击tableview的每个cell并返回。
优势是可以独立于代码,随时修改。劣势是需要instrument才能运行。
有很多其他人实现的Monkey框架:
https://github.com/vigossjjj/CrashMonkey4IOS
试了一下,有问题 https://github.com/vigossjjj/CrashMonkey4IOS/issues/79

原因是Xcode8中没有Automation,因此需要高版本的Xcode需要换个思路

使用facebook的WebDriverAgent框架

可以参考:
https://www.jianshu.com/p/e34a013ca9b1?winzoom=1

跑题一下,特别火的游戏跳一跳的外挂,也是在此方案实现的:
https://github.com/wangshub/wechat_jump_game

利用Xcode的UI Test完成自动化测试。

参考 http://www.jianshu.com/p/6cb686e5dacc
使用XCTest.framework或者使用第三方库KIF框架的点击效果,实现一套随机点击的逻辑。
优势可以集成在app中随时生效,劣势是需要在代码中集成monkey代码。

除了在Xcode中运行测试,也可以配置Jekins自动执行
在工程目录下运行xcodebuild,如果有多个项目的话,需要指定project和target
xcodebuild [-project projectname] [-target targetname …] [-configuration configurationname]
[-sdk [sdkfullpath | sdkname]] [buildaction …] [setting=value …]
[-userdefault=value …]

例如:
xcodebuild test -destination-timeout 900 -workspace Demo.xcworkspace -scheme Demo -sdk iphonesimulator -configuration Debug -destination platform=’iOS Simulator’,name=’iPhone 6 Plus’

遇到的问题

1、在monkey测试的时候经常出现无法退出当前页面。
解决方案:因为返回按钮都在左上角,所以可以增加左上角的点击权重,防止无法返回的情况。
2、偶尔会出现跳到第三方app的情况。
解决方案:由于跳到其他app无法控制跳回来,所以测试代码禁用了openURL的方法。

github博客:https://wf96390.github.io/blog/2017/03/21/monkey/

iOS客户端monkey测试相关推荐

  1. iOS端Monkey测试

    说起Monkey测试,大家想到的是monkey测试只有安卓有,monkey测试只针对安卓app,今天给大家分享一下Monkey测试在iOS端也能跑!iOS端app也能使用Monkey测试来执行稳定性测 ...

  2. iOS客户端如何测试推送

    当我们在客户端实现推送跳转需求后,但是服务器还没有做好后台的配置,此时需要测试收到推送消息之后能否按照预期,执行我们的代码.但在这个情况下如何去做呢.这里可以提供给大家两个选择. 1. 封装好处理逻辑 ...

  3. IOS上的monkey测试探索(一)

    应领导要求,需要我提供一个IOS端app稳定性测试的解决方案,于是我这个对IOS了解仅限于日常使用的小白开始了探索之路. 经过调研我的心拔凉拔凉的,使用Python加Android系统内置的monke ...

  4. Android软件测试Monkey测试工具

    前言: 最近开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括android测试框架.CTS.Monkey.Monkeyrunner.benchmark.其 ...

  5. Android开发、adb、monkey测试

    一. 手机测试概念 传统手机测试 VS 手机应用软件测试 传统手机测试:指测试手机本身比如抗压,抗摔,抗疲劳,抗低温高温等.也包括手机本身功能.性能等测试. 手机应用软件测试 C/S Client/S ...

  6. appium IOS真机测试

    看了 http://blog.csdn.net/today520/article/details/36378805 的文章,终于在真机上面测试成功. 由于没有开发者账号,不能发布应用到机器上面.所以就 ...

  7. 开源中国iOS客户端学习——(一)Prefix.pch文件

    2019独角兽企业重金招聘Python工程师标准>>> 当我们新建一个工程的时候,在Supporting FIles文件下会看到一个以  -Prefix.pch结尾文件的文件,pch ...

  8. 开源中国iOS客户端学习——(五)网络通信ASI类库(1)

    如今的应用大部分基予网络,在开源中国iOS客户端源码中关于网络通信方面用了三个类库,ASI和AFNetworking,还有一个苹果官方给出的Reachability用于检测当前网络状况,本文介绍当前用 ...

  9. monkey测试_用 Instrumentation 改良 Monkey 工具实战

    作者:杭州城西费德勒 - 曾中华 这里 Monkey 不是猴子,而是 Android 系统中用来做自动化测试的工具,即盲点.压力测试. 在之前的移动端产品迭代中,Monkey 工具一直没有利用起来.开 ...

最新文章

  1. 《Python数据科学指南》——1.8 使用迭代器
  2. Android之9图的制作
  3. Apache shiro介绍
  4. Open Asset Import Library
  5. engagement center的session.connect
  6. 深度学习---卷积神经网络(CNN)
  7. 别人总结的一些git教程大全
  8. 黄聪:【强烈推荐】搜索引擎排名决定一切吗!
  9. Luogu P3521 [POI2011]ROT-Tree Rotations
  10. leetcode 462. Minimum Moves to Equal Array Elements II
  11. 【CentOS 7笔记5】,主机互相登陆#
  12. 51Nod-1012 最小公倍数LCM【欧几里得算法】
  13. idirect3ddevice9虚函数偏移_C++ 虚函数简介
  14. Sentaurus 入门之二视频教程合集
  15. Android 热修复Bugly和Sophix介绍
  16. c语言卡诺图算法实现,多变量卡诺图化简的算法实现.pdf
  17. html5显示用户已读取文章,如何查看公众号文章是谁阅读
  18. [AHK]提取Win10聚焦的锁屏壁纸
  19. 内外网数据交换方式有哪些?
  20. 史上ElasticSearch 最全详细使用教程

热门文章

  1. SDOI 2009 学校食堂
  2. 机器语言、汇编语言和高级语言的区别和互相间的关系
  3. 程序员什么专业毕业算是科班出身?这个回答与你想的是否一样?
  4. 如果说未来不需要硬盘了,你会不会感到惊讶?
  5. unity保存游戏对象到mysql_Unity实现游戏存档框架
  6. vCenter通过vMotion迁移虚拟机条件
  7. ZooKeeper操作(包括命令行和API的使用)
  8. 929. 独特的电子邮件地址
  9. 计算机学院篮球队英文名称,【体育文化节】计算机学院研究生代表队获得篮球联赛冠军...
  10. 【李刚-21天通关Python-27】之 案例实操:函数装饰器应用