一、 前言
客户端测试叫做瞎点测试(哦,不对,应该叫随机测试),在网上看到一个swiftmokey的工具,这个是外国的测试大大们写的一个利用ios底层私有api实现的模拟随机操作的一个工具。
如果是swift实现的app,在植入mokey时候,可以有点击的熊爪效果,但是我所在的项目是一个oc写的app,可以利用SwiftMonkey实现随机测试,却没有熊爪的视觉效果
二、 环境搭建
SwiftMonkey的github是:https://github.com/zalando/SwiftMonkey
下面介绍的使用方法也是来自于github
首先,要使用SwiftMonkey 需要配置相关的环境,有两种方法:CocoaPods方法和手工方法,我用的是第二种手工导入的方法。
1、 CocoaPods
官方提供了一个例子,在你的podfile里面添加类似如下的代码:
target "App" do
pod "SwiftMonkeyPaws", "~> 1.0"
end
target "Tests" do
pod "SwiftMonkey", "~> 1.0"
end
2、 手工方法
1) 从github上下载源码
2) 拷贝SwiftMonkey 文件夹到你的项目目录下
3) 把SwiftMonkey 的.xcodeproj拖到项目中去
4) 新建一个UI 测试的target
5) 把SwiftMonkey.framework添加为你test的依赖
6) build setting 里勾选上 Swift 的标准库
环境就配置好了。
三、 使用方法
在test文件里,引入import SwiftMonkey
具体代码如下:
func testMonkey() {
let application = XCUIApplication()
_ = application.descendants(matching: .any).element(boundBy: 0).frame
let monkey = Monkey(frame: application.frame)
monkey.addDefaultXCTestPrivateActions()
//monkey.addDefaultUIAutomationActions()//另一种测试方式
monkey.addXCTestTapAlertAction(interval: 100, application: application)
monkey.monkeyAround() //这个会一直执行下去,除非遇到错误
}
}
其中,SwiftMonkey的函数可以参照目录下的Documents,如果不是有特别需求,可以使用addDefaultXCTestPrivateActions(),定义了一组默认的操作
public func addDefaultXCTestPrivateActions() {
addXCTestTapAction(weight: 25)
addXCTestLongPressAction(weight: 1)
addXCTestDragAction(weight: 1)
addXCTestPinchCloseAction(weight: 1)
addXCTestPinchOpenAction(weight: 1)
addXCTestRotateAction(weight: 1)
}
addXCTestxxxAction,定义了一组操作,weight参数是任何大于0的double数字,最终定义的所有的操作会换算成总数加起来的概率。
如果需要定义一组特定的操作,可以自己定义addXCTestxxxAction。
monkey.monkeyAround()也可以用monkey.monkeyAround(iterations: 1000)代替,iterations定义了总的操作次数。
这样就可以进行ios客户端的随机测试了,支持模拟器和真机,不过因为SwiftMonkey使用了私有api,所以植入SwiftMonkey后不能提交appstore进行审核
本文来自网易实践者社区,经作者孟志斌授权发布。