【测试工具】Fastbot 客户端稳定性测试

背景

做这个主要为了发版之前提前发现崩溃,风险前置。适合客户端很重的业务。

优点:你不改动也能用, 维护成本不高。

缺点:容易进入H5页面无法返回,效果有限。

备注:我这边接手别人维护,公司降本把测开工作给到我这边了。

一.Fasbot本地搭建环境

1.定制化修改点:

  1. test目录放了相关的各个包定向配置文件(具体查看 push定向配置部分)。需要针对不同的进行定制,对应包的配置值在运行服务器上存放,没有添加git代码中

  2. 相关的jar需要人工手动的push到 手机的/sdcard 目录中, test目录下的相关配置文件java程序每次安装新包的时候,会重新push到手机/sdcard 目录中

  3. fastbot的程序启动是在java 程序中进行启动的。

fastbot源代码地址如下:

https://github.com/bytedance/Fastbot_Android

https://github.com/bytedance/Fastbot_iOS

2.Android手机运行

Push 程序 -手工push

framework.jar fastbot-thirdpart.jar monkeyq.jar push 到 /sdcard (官方建议放到该路目下),push libs/* to /data/local/tmp/(实际操作控制都是通过这些 java 程序运行)

java程序中有检测,如果/sdcard 目录中有对应的*.jar 那么就跳过,如果没有会去push对应的*.jar到/sdcard 文件夹。

adb push *.jar /sdcard

adb push libs/* /data/local/tmp/

Push 定向配置

java 程序每次都会强制push Fastbot_Android/test目录到对应的手机中

 

2.1【有使用】添加限定词,用来提升模型

Mac 本地需要安装aapt的环境变量

➜  build-tools vim ~/.bash_profile                               
➜  build-tools source ~/.bash_profile
➜  build-tools aapt -v

APPT_HOME=/Users/Library/Android/sdk/build-tools/31.0.0

export APPT_HOME

export PATH=$PATH:$APPT_HOME

然后根据对应的安装包执行命令,将生成的max.valid.strings 文件push到手机的/sdcard 中( 拉取的项目里有 max.valid.strings 文件,在test目录下)


aapt dump  --values strings  [install_package_path.apk] > max.valid.strings
eg:
aapt dump --values strings "/Users/Downloads/Web_4.6.36(46361011).apk" > max.valid.strings 


adb push max.valid.strings /sdcard 

注: 每个新包首次接入fastbot的时,都需要生成一次max.valid.strings文件、

2.2【暂未使用】白名单添加
  • 在PC端新建 awl.strings文件(名称固定为:awl.strings)(拉取的项目里有 awl.strings 文件,在test目录下),填写完后即可,注意不是填写白名单就只跑白名单页面,因为测试会建立模型,模型完善后会尽可能对这几个页面进行测试

  • 在文件中写入Activity的名称,例如

com.app.live.activity.VideoListActivity com.app.letter.view.chat.LetterChatAct com.app.live.activity.UpLiveActivity com.app.live.boost.view.BoostListActivity

  • awl.strings 文件push到手机端的sdcard目录下, 目录必须为sdcard

adb push awl.strings /sdcard

  • 运行命令时添加以下参数:--act-whitelist-file /sdcard/awl.strings

 
 

adb -s 设备号 shell CLASSPATH=/sdcard/monkeyq.jar:/sdcard/framework.jar:/sdcard/fastbot-thirdpart.jar exec app_process /system/bin com.android.commands.monkey.Monkey -p 包名 --agent reuseq --act-whitelist-file /sdcard/awl.strings --running-minutes 遍历时长 --throttle 事件频率 -v -v

 

2.3【暂未使用】黑名单添加
  • 在PC端新建 abl.strings 文件(名称固定为:abl.strings)(拉取的项目里有 abl.strings 文件,在test目录下)

  • 在文件中输入Activity的名称,同白名单方法一致

 
 

com.app.live.activity.VideoListActivity com.app.letter.view.chat.LetterChatAct

  • abl.strings 文件push到手机端的sdcard目录下, 目录必须为sdcard

adb push abl.strings /sdcard 
  • 运行命令时添加以下参数:--act-blacklist-file /sdcard/abl.strings

 
 

adb -s 设备号 shell CLASSPATH=/sdcard/monkeyq.jar:/sdcard/framework.jar:/sdcard/fastbot-thirdpart.jar exec app_process /system/bin com.android.commands.monkey.Monkey -p 包名 --agent reuseq --act-blacklist-file /sdcard/abl.strings --running-minutes 遍历时长 --throttle 事件频率 -v -v

注意: 白名单和黑名单不能同时设置,按照非白即黑的原则,即设置了白名单则白名单外的都为黑名单。通过hook 可以监控activity 启动和切换,如果启动的是黑名单中的activity,就拒绝启动该activity,从ui上看就是点了跳转没效果

2.4【有使用】添加屏蔽控件

手动配置需要屏蔽的控件或区域

适用需求: 测试过程中“半路”中途退出登录,屏蔽退出登录按钮

  • 在PC端新建 max.widget.black 文件(名称固定为:max.widget.black),文件内容配置格式如下:

  • 匹配条件activity:当activity与currentactivity一致时执行如下匹配

  • 屏蔽控件或区域共有三种方式:

    • 配置bounds:屏蔽某个区域,在该区域内的控件或坐标不会被点击,bounds 为 0.0~1.0 之间的一个百分比值。

    • 配置xpath:查找匹配的控件,屏蔽点击该控件。

    • 配置xpath+bounds:查找匹配的控件,当控件存在时屏蔽指定的区域,bounds 为 0.0~1.0 之间的一个百分比值。

  • 将max.widget.black文件push到手机端的sdcard目录下,目录必须为sdcard。

  • adb push max.widget.black /sdcard

  1. 剪枝屏蔽

    1. 在PC端新建 max.tree.pruning 文件(名称固定为:max.tree.pruning),文件内容配置格式如下:

    2. 匹配条件activity:当activity与currentactivity一致时执行如下匹配

    3. 剪枝方式:

      • 配置xpath:查找匹配的控件,改变控件属性,从而使控件屏蔽

    4. max.tree.pruning 文件push到手机端的sdcard目录下, /sdcard # 目录必须为sdcard

                adb push max.tree.pruning /sdcard

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值