环境准备(一次性工作)

如果已有对应环境则跳过相关步骤即可。

  1. osx 环境:准备 Mac 机器
  • xcode 环境: 下载安装 XcodeIDE
  • 安装 cocoapods: 在终端中执行 sudo gem install cocoapods -v=1.8.1 , 并按提示输入设备登录密码
  1. 初始化项目:
  • 在终端 cd 到当前项目目录下, 然后执行 cd Fastbot-iOS && pod install --repo-update
  • 打开项目:双击使用 XCode 打开项目目录下 Fastbot-iOS/Fastbot-iOS.xcworkspace
  • 设置签名:设置签名为自动签名, 修改Bundle ID为自己的 bundleid, 注意这里的BundleId必须是唯一的。

 

ios稳定性检测 苹果稳定性测试_ios稳定性检测

 

ios稳定性检测 苹果稳定性测试_App_02

ios稳定性检测 苹果稳定性测试_ios稳定性检测_03

 如果 xcode 中还未登录账号,请在Xcode的设置 中登录账号,如果还没有苹果账号,请先到苹果官网注册一个账号

 

ios稳定性检测 苹果稳定性测试_xcode_04

3. 信任设备&Runner:

  • 信任设备:连接手机到电脑,并在手机中弹出的对话窗中选择信任,然后在 XcodeIDE 中选择构建目标为连接的设备或模拟器

ios稳定性检测 苹果稳定性测试_xcode_05

 信任 FastbotRunner 工具: 执行 pingTestNetwork,待 FastbotRunner 安装成功后, 然后在手机 设置-通用-设备管理-开发者App中信任 FastbotRunner的证书。

 

ios稳定性检测 苹果稳定性测试_ios_06

4. 打开 FastbotRunner 网络权限: 执行 pingTestNetwork(此处可参照步骤3-2),此时在手机上点击 FastbotRunner-Runner App,弹出黑色界面后,等待 30s 左右,点击 Home 键(或屏幕底部上滑)回到桌面,此时弹出是否打开网络权限的弹窗,选择无线网络或蜂窝网即可。直到 Xcode 运行 log 中出现 ping network success 则打开网络成功,如果不成功可尝试重复步骤4

ios稳定性检测 苹果稳定性测试_iOS_07

开始测试

  1. 确定被测试App已经安装到设备中,并且可正常运行(即已经信任,如果是未信任可参照环境准备中的步骤3-2信任证书)
  2. 在运行 Scheme 中设置测试参数,参数含义参照下表:

字段

说明

示例

BUNDLEID

被测试App的 Bundle ID

com.apple.Pages

duration

测试时长,单位分钟

240

launchenv

启动测试App的环境变量,一般为空,或者以 ':'分割的key=value形式

isAutoTestUI=1:channel=AutoTest

throttle

操作间隔,单位毫秒

300

 

ios稳定性检测 苹果稳定性测试_iOS_08

 

ios稳定性检测 苹果稳定性测试_ios稳定性检测_09

 执行测试,然后可在手机上观测到被测试App已经被拉起,并开始自动执行操作。

ios稳定性检测 苹果稳定性测试_ios_10

其他说明

  1. 如何获取crash报告: #2
  2. 如何在 Win/Linux 下运行工具: 参考 tidevice #1
  3. CI/CD 相关问题:
  • 终端执行可使用tidevice 或 xcodebuild 命令:

BUNDLEID=com.apple.Pages duration=240 throttle=300 xcodebuild test -workspace Fastbot-iOS.xcworkspace -scheme FastbotRunner -configuration Release -destination 'platform=iOS,id=00008030-001804563E44802E' -only-testing:FastbotRunner/FastbotRunner/testFastbot (如果启动Scheme设置中的启动参数被更改则需还原),可根据实际情况使用build-for-testing test-without-building 等提升执行效率

  • 证书信任问题: 安装一个一直不删除的相同证书的其他应用即可。
  1. 如何自定义处理系统弹窗: 反注释 代码块,并编写自定义逻辑即可
  2. 更多高级功能可参考 Fastbot跨平台,欢迎大家提交 MR 扩展 fastbot-stub.m 相关功能