iOS智能monkey实战记录
目前市面上几款相对较好的 iOS 端稳定性 Monkey 测试工具,针对我司应用实战记录如下
工具名 | 实战记录 |
FastMonkey | 仅支持 Xcode 8.x、9.x 和 10.1 版本放弃 |
SwiftMonkey | 配置运行报错未能解决放弃 |
sjk_swiftmonkey | 只能运行5分钟左右,且应用越来越卡放弃 |
Fastbot-iOS | 成功运行且速度很快 |
Fastbot-iOS 的跨平台方案
Fastbot-iOS是字节跳动开源的自动化测试方案。Fastbot-iOS 端上架构采用轻量且必要的 WDA 私有接口、插桩 SDK(可选,扩展提供额外的插件能力)以及基于纯图像识别的技术方案。
环境搭建
1. osx 环境
- mac机器安装xcode
- 安装 cocoapods: 在终端中执行 sudo gem install cocoapods -v=1.8.1 , 并按提示输入设备登录密码。若安装异常可参考文档方式安装
2. 初始化项目
- 在终端 cd 到当前项目目录下, 然后执行 cd Fastbot-iOS && pod install --repo-update
- 双击使用 XCode 打开项目目录下 Fastbot-iOS/Fastbot-iOS.xcworkspace
- 设置签名
- xcode需登录账号,且需与测试手机登录同一个apple id账号
3. 信任设备&Runner
- 连接手手机到mac,mac点击如下图圈选区域选择所连接的手机,并在手机弹出的对话窗中选择信任
4. 执行 pingTestNetwork
此时在手机上点击 FastbotRunner-Runner App,弹出黑色界面后,等待 30s 左右,点击 Home键回到桌面,此时弹出是否打开网络权限的弹窗,选择无线网络或蜂窝网即可。直到 Xcode 运行 log 中出现 ping network success 则打开网络成功,如果不成功可尝试重复步骤4。
运行测试
- 待测app安装到设备中,并且可正常运行
-
点击如下图一所示圈选区域弹出选择框,选择Edit Scheme,该页面编辑见下图二
在运行 Scheme 中设置测试参数,参数含义参照下表:
字段
说明
示例
BUNDLEID
被测试App的 Bundle ID
com.apple.Pages
dataport
端口号
9797
duration
测试时长,单位分钟
240
launchenv
启动测试App的环境变量,一般为空,或者以 ':'分割的key=value形式
isAutoTestUI=1:channel=AutoTest
throttle
操作间隔,单位毫秒
300
3. 执行测试,点击如下图圈选按钮,然后可在手机上观测到被测试App已经被拉起,并开始自动执行操作。
4. 获取崩溃日志:点击待测设备设置-隐私-分析-分析数据,查看是否跟如下图所示关键字的崩溃日志
5. 若需暂停测试可点击如下图所示按钮