说起 Monkey 测试,大家想到的大多是安卓端的 Monkey 测试,以为 Monkey 测试只针对安卓端,今天给大家分享一下 Monkey 测试在 iOS 端的实践,iOS 端的 App 也能使用 Monkey 来执行稳定性测试。
Fastbot_iOS 原理:
Fastbot 通过调用 XCUItest 的截屏接口,直接对系统层面的所有内容截图,由 Fastbot-native 库将截屏的图像转化成页面对应的结构化 GUITree XML 信息,通过 opencv 及机器视觉算法识别出 GUI 页面的布局结构、控件信息以及针对弹窗页面的结构化裁剪,在 Fastbot 客户端监听页面 GUI 信息发送给服务端,接收服务端发送的动作并在设备上实现事件注入,进行持续的交互型测试。
话不多说,下面上干货,开整。
1、mac 设备安装 Xcode
2、安装 cocospods:pod 版本不可低于 1.8.1,如果低于 1.8.1 版本,执行命令 sudo gem install cocoapods -v=1.8.1
3、下载工程到本地https://github.com/bytedance/Fastbot_iOS.git
4、终端 cd 到 Fastbot_iOS 目录下执行 pod install -- repo-update
5、使用 Xcode 打开 Fastbot-iOS.xcworkspace 文件
6、设置签名和 Bundle identifier,设置任意名称均可,如 com.moyu.FastbotRunner,选择一个 Team
7、连接手机到电脑, 在 XcodeIDE 中选择构建目标为连接的设备
8、执行 pingTestNetwork,点击右侧箭头, 无报错,直到手机上会出现 FastbotRunner-Runner app,安装成功,然后在手机 设置 - 通用 - 描述文件与设备管理 - 开发者应用中信任 FastbotRunner 的证书
9、等待 30s 左右,点击 FastbotRunner-Runner app,点击 Home 键回到桌面,此时弹出是否打开网络权限的弹窗,选择无线网络或蜂窝网。直到 Xcode 运行 log 中出现 ping network success 则打开网络成功
10、安装待测试 APP,这里我们选择摸鱼 kik 这款 App,小编这里要简单介绍一下这款摸鱼神器,在摸鱼 kik 中,添加我们想要聚合的内容源,通过将这些内容源归属于同一个主题下,那么这个主题下的内容均是我们汇聚的想要的平台的内容,无需再多个平台去查看翻阅,简单方便又便捷。另外,摸鱼 kik 使用的是基于 Flutter 框架开发的一款应用,正好试验下除了原生的 APP,Flutter 的 APP 是否也可以正常的执行 Monkey 测试。
1、点击如图所示区域,然后点击 Edit Scheme
2、点击 Edit Scheme 后展示如下图
字段说明
3、点击 testFastbot,执行。
4、执行效果如下