移动端monkey自动化

前言:
对于移动端项目来说,App上线后都有一定的crash 比例,若能在项目上线前期拦截一部分崩溃,侧面来看可以帮助降低线上的crash数量。
导致崩溃的因素很多,具有较强的不确定性,目前是可以采用Monkey自动化来测试App的稳定性,理论上希望更早地发现crash问题并帮助修复。

辅助工具图形化-火山引擎:https://www.volcengine.com/docs/6431/82895
参考文档:https://github.com/bytedance/Fastbot_Android/blob/main/handbook-cn.md
https://mp.weixin.qq.com/s/ppE7xV_Fqi3i6m1pagOHzQ

Android

准备工具:

  • ADB:安卓设备连接工具
  • ADB KeyBoard:github项目
  • Fastbot_Android: github项目

环境安装:

  1. clone fastbot-android 项目到本地
    git clone https://github.com/bytedance/Fastbot_Android

  2. 链接android设备 push 文件
    方法一:
    打开终端 执行以下命令,使用adb工具将命令push到设备上

 cd Fastbot_Android
 ll
-rw-r--r--   1 tech  staff   2.0K Jan 24 18:36 LICENSE
-rw-r--r--   1 tech  staff   4.7K Jan 24 18:36 README.md
drwxr-xr-x   3 tech  staff    96B Dec 21 11:57 data
drwxr-xr-x  16 tech  staff   512B Dec 21 11:58 doc
-rw-r--r--   1 tech  staff    84K Dec 21 11:58 fastbot-thirdpart.jar
-rwxr-xr-x   1 tech  staff   1.1M Dec 21 11:58 framework.jar
-rw-r--r--   1 tech  staff    17K Dec 21 11:58 handbook-cn.md
drwxr-xr-x   6 tech  staff   192B Dec 21 11:58 libs
-rw-r--r--   1 tech  staff    76K Dec 21 11:58 monkeyq.jar
drwxr-xr-x  12 tech  staff   384B Dec 21 11:58 test

adb push *.jar /sdcard
fastbot-thirdpart.jar: 1 file pushed. 3.9 MB/s (85664 bytes in 0.021s)
framework.jar: 1 file pushed. 34.0 MB/s (1149240 bytes in 0.032s)
monkeyq.jar: 1 file pushed. 15.9 MB/s (77976 bytes in 0.005s)
3 files pushed. 19.1 MB/s (1312880 bytes in 0.065s)

adb push libs/* /data/local/tmp/
libs/arm64-v8a/: 1 file pushed. 34.9 MB/s (1993400 bytes in 0.055s)
libs/armeabi-v7a/: 1 file pushed. 34.3 MB/s (1652716 bytes in 0.046s)
libs/x86/: 1 file pushed. 35.7 MB/s (2111484 bytes in 0.056s)
libs/x86_64/: 1 file pushed. 35.8 MB/s (2169816 bytes in 0.058s)
4 files pushed. 34.5 MB/s (7927416 bytes in 0.219s)

方式二:
直接运行shell文件push到安卓设备

#!/bin/bash
cd ~
cd Fastbot_Android
adb push *.jar /sdcard
adb push libs/* /data/local/tmp/
cd test
adb push max.config /sdcard
adb push max.strings /sdcard
cd ~
cd ADBKeyBoard
adb install ADBKeyboard.apk

运行测试:

  1. 获取设备ID
adb devices
  1. 方式一:命令行运行fastbot 执行monkey测试
adb -s 设备ID shell CLASSPATH=/sdcard/monkeyq.jar:/sdcard/framework.jar:/sdcard/fastbot-thirdpart.jar exec app_process /system/bin com.android.commands.monkey.Monkey -p 待测包app包名 --agent reuseq --running-minutes 60 --throttle 500 -v -v -v

参数说明

-s : 指定设备ID(可以通过adb 命令查看当前电脑接入的设备信息)
-p : 指定运行的App 包名(com.xxx)
–agent reuseq : 遍历模式,无需更改
–runing-minutes : 遍历时长
–throttle : 遍历事件频率,建议为 500ms - 800ms
–bugreport : 可选参数,崩溃时保存bug report log
–output-directory /sdcard/xxx : log/carsh 另存目录
多设备运行需要打开多个终端窗口,单设备可用图形化工具-火山引擎,也可直接终端运行

  1. 方式二:使用火山引擎 执行monkey测试
    a. 连接设备,选择待测设备和APP
    b. 设置参数 开始执行测试
    在这里插入图片描述

IOS

准备工具

  • XCode: iOS开发IDE
  • CocoaPads: 用来管理XCode依赖库的项目
  • Fastbot_iOS: github项目
  • tidevice: iOS 自动化工具

环境配置

  1. 克隆 fastbot_ios 项目到本地
git clone https://github.com/bytedance/Fastbot_iOS
  1. 初始化fastbot- iOS
 cd Fastbot-iOS && pod install --repo-update
  1. 使用Xcode 打开fastbot- iOS配置信息
    a. 设置签名和bundle ID
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  1. iOS设备信任证书
  • 执行 testPingNetwork 待 FastbotRunner 安装成功后, 然后在设备 设置-通用-设备信任-开发者app中信任证书
  • 再次执行 testPingNetwork 等待FastbotRunner- Runner安装成功

在这里插入图片描述
在这里插入图片描述https://github.com/bytedance/Fastbot_iOS/blob/main/Doc/handbook-cn.md

  1. edit scheme选项 设置参数
    在这里插入图片描述
    在这里插入图片描述

运行测试

  1. 使用Xcode 执行monkey测试
    a. 点击testfastbot按钮,开始运行Monkey测试
    在这里插入图片描述
  2. 通过用 tidevices 执行monkey测试
    a. tidevice ps --json 查看运行中 fastbotRunner的Bundle ID
{
        "pid": 1484,
        "name": "FastbotRunner-Runner",
        "bundle_id": "com.bytedance.fastbot.A26XQ2SUJV.xctrunner",
        "display_name": "FastbotRunner-Runner"
    }

b. 执行tidevice命令 开始monkey测试

tidevice -u udid xctest -B com.bytedance.fastbot.A26XQ2SUJV.xctrunner -e BUNDLEID:待测app包名 -e duration:480 -e throttle:500  --debug

参数说明:
-u:设备的唯一标识,用于区别不同设备 指定在某一台设备
-B:iOS设备上FastbotRunner- Runner app的Bundle ID
-e:待测包的包名,用于指定待测app 多设备开启多个终端,指定不同设备udid

  1. 使用工具火山引擎 执行monkey测试
    a. 连接设备填写对应参数,开始测试——适合单设备
    在这里插入图片描述

更多操作——待更新

  1. 配置黑白名单
    • 黑名单:屏蔽部分页面
      . 配置abl.strings
    • 白名单:指定某些页面进行测试
      . 配置 awl.strings
  2. 指定测试路径——自定义事件序列
    a. 配置max.xpath.actions
  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
移动端app的自动化测试的设计与实现是一项非常重要的任务,因为移动应用程序已经成为人们日常生活中不可或缺的一部分。为了确保应用程序的质量和稳定性,开发人员需要对其进行充分的测试。本次答辩记录综述将讨论移动端app自动化测试的设计和实现。 在答辩中,研究人员首先介绍了移动应用程序的自动化测试的必要性和重要性。由于移动应用程序的复杂性和多样性,手动测试是一项非常耗时且易出错的任务。因此,自动化测试成为一种更加高效和可靠的测试方式。 然后,研究人员讨论了移动应用程序自动化测试的设计和实现过程。他们介绍了一些主流的自动化测试框架和工具,包括Appium、Robotium、CalabashMonkey等。这些工具提供了多种自动化测试策略,包括UI自动化测试、性能测试、安全测试和功能测试等。 接下来,研究人员详细介绍了一个基于Appium的自动化测试框架,该框架包括测试环境的搭建、测试用例的设计和执行、测试结果的分析和报告等方面。他们还提供了一些实例来说明如何使用该框架进行自动化测试,并分享了一些经验和技巧,以帮助开发人员更好地进行移动端应用程序的自动化测试。 最后,在答辩中,研究人员总结了移动端应用程序自动化测试的设计和实现,强调了自动化测试的重要性和优势,并鼓励开发人员采用自动化测试来提高软件质量和开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值