iOS客户端monkey测试
簡介
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测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python文件
- 下一篇: 三极管开关电路参数设计与参数介绍