APP稳定性治理-工具安装、使用篇

准备工具:

  1. 通过macOS应用商店下载XCode。
  2. 安装cocoapods。 终端输入:sudo gem install cocoapods -v=1.8.1
  3. 拉取git上的fast_bot项目代码,并初始化    > git clone GitHub - bytedance/Fastbot_iOS: About Fastbot(2.0) is a model-based testing tool for modeling GUI transitions to discover app stability problems

           > cd Fastbot_iOS   

           >  cd Fastbot-iOS && pod install --repo-update

          上述中,Fastbot_iOS 是克隆的项目目录,Fastbot-iOS是项目下面的子目录。注意不要混淆。

         下载后的文档如下:

    4.通过Xcode 打开项目Fastbo-iOS项目。

5.

运行测试(XCode)

  1. 点击顶部FastbotRunner 弹出菜单,选择Edit Scheme... 选项。
  2. 签名

2.在Scheme中设置参数,参考表格:

字段

说明

示例

BUNDLEID被测试App的 Bundle ID

com.xxxx.xxxx

duration测试时长,单位分钟240
throttle操作间隔,单位毫秒300
launchenv启动测试App的环境变量,一般为空,或者以 ':'分割的key=value形式isAutoTestUI=1:=AutoTest

3.信任设备&Runner

  • 信任设备:连接手机到电脑,并在手机中弹出的对话窗中选择信任,然后在 XcodeIDE 中选择构建目标为连接的设备或模拟器
  • 信任 FastbotRunner 工具: 执行 pingTestNetwork,待 FastbotRunner 安装成功后, 然后在手机 设置-通用-设备管理-开发者App中信任 FastbotRunner的证书。
  • 打开 FastbotRunner 网络权限: 执行 pingTestNetwork,此时在手机上点击 FastbotRunner-Runner App,弹出黑色界面后,等待 30s 左右,点击 Home 键(或屏幕底部上滑)回到桌面,此时弹出是否打开网络权限的弹窗,选择无线网络或蜂窝网即可。直到 Xcode 运行 log 中出现 ping network success 则打开网络成功,如果不成功可尝试重复步骤4 

4.执行测试

点击testFastbot 按钮,开始运行Monkey测试。你可以在手机端看到被测试App以及启动,并开始自动执行操作。

5. 查看crash报告

目前暂时依赖Xcode链接设备导出crash日志

xcode-window-device and simulators

跳出以下界面,选出要导出的日志,右键export crash log即可

tidevice实现多设备控制

运行测试(tidevice)

tidevice是阿里开源的iOS自动化测试工具,其实叫自动化工具有点不准确。他本质上有点像android 的 adb 工具,可以理解为PC与iOS之间的通信工具。提供了一些非常有用的功能,查看设备信息、安装卸载应用,当然,最主要的是可以执行XCTest

github: GitHub - alibaba/tidevice: tidevice can be used to communicate with iPhone device

1.安装tidevices

> pip install -U tidevice

2.使用tidevice检查连接的设备udid

> tidevice list
List of apple devices attached
xxxx-xxxxxxxxxxx iPhone USB

3.检查是否安装FastbotRunner-Runner App。

> tidevice ps --json
[
    {
        "pid": 11549,
        "name": "FastbotRunner-Runner",
        "bundle_id": "bytedance.FastbotRunner.name.xctrunner",
        "display_name": "FastbotRunner-Runner"
    },
]

4.通过tidevices 运行测试

>tidevice -u 00008101-0xxxxxxxxxxE(步骤2查出的设备udid)  xctest -B    com.uu898.uusteam.xctrunner(运行fastbot-network自动在真机上安装的APP)   -e BUNDLEID:com.uu898.uusteam(uu有品BUNDLEID) -e duration:480 -e throttle:300  --debug
 

5.如何同时执行多个设备?

tidevice的作者给了答案,通过设备的udid号区分就可以了。当你的PC连接多个手机时。

> tidevice list
List of apple devices attached
xxxx-xxxxxxxxxxx iPhone USB
yyyy-yyyyyyyyyyy iPhone USB
  • 启动x设备
> tidevice -u xxxx-xxxxxxxxxxx xctest -B bytedance.FastbotRunner.name.xctrunner -e BUNDLEID:com.apple.Pages -e duration:480 -e throttle:300  --debug
  • 启动y设备
> tidevice -u yyyy-yyyyyyyyyyy xctest -B bytedance.FastbotRunner.name.xctrunner -e BUNDLEID:com.apple.Pages -e duration:480 -e throttle:300  --debug

tips:常用tidevice命令

# 重启

$ tidevice reboot

# 截图

$ tidevice screenshot screenshot.jpg

# 安装应用

$ tidevice install example.ipa

# 指定设备安装

$ tidevice --udid $UDID install https://example.org/example.ipa

# 卸载应用

$ tidevice uninstall com.example.demo

# 启动应用

$ tidevice launch com.example.demo

# 停止应用

$ tidevice kill com.example.demo

# 查看已安装应用

$ tidevice applist

tidevice list 查看链接的设备列表

tidevice applist 查看已安装应用

tidevice  ps    查看运行中应用

启动应用.    tidevice launch com.example.demo

安装应用.    tidevice install /Users/xinxi/Downloads/app.ipa(本地ipa地址)

指定设备安装

tidevice --udid 530axxxxxxd605e68a5c8e54b0a4bcd925  /Users/xinxi/Downloads/

卸载应用

tidevice uninstall com.example.demo(应用包名)

查看日志

tidevice也提供了查看日志功能,但日志较为复杂,还需二次处理,暂时可采用前面提到的Xcode日志导出功能,方便简洁

Crash Log Operationstidevice crashreport [-h][——list][——keep][——clear] [output_directory]位置参数:output_directory保存从设备同步的崩溃日志的输出目录(默认:无)可选参数:- h,帮助显示帮助信息并退出——列表列出所有崩溃文件(默认值:False)——保持复制但不删除设备上的崩溃报告(默认值:False)——明确清除崩溃文件(默认值:False)

tidevice --udid  00008101-001Cxxxxxxxx01E  crashreport  --list

  • 24
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值