zoukankan      html  css  js  c++  java
  • 安卓自动化工具Fastbot 问题总结经验

    Fastbot:行进中的智能 Monkey

    背景:

    Fastbot是字节跳动基于Monkey进行二次开发的一款工具,相对与Monkey来说会更加智能。

    原理和源文件参考:

    传送:https://juejin.cn/post/6877360102123241480#heading-0

    https://github.com/bytedance/Fastbot_Android

    随机方法:

    使用方法:

    1.模拟器或者真机连接电脑,用adb devices检测是否连接成功;

    下面是基于真机(小米)模拟

    C:\Users\Administrator>adb devices
    List of devices attached
    0a1e0f3d5    device

    注意:手机需要开启开发者模式和usb授权;手机连接为文件夹模式

    2.把两个附件: framework.jar , monkeyq.jar push 到手机上某个目录中,建议/sdcard

    adb push framework.jar /sdcard
    
    adb push monkeyq.jar /sdcard

    备注:真机可能会有权限问题,提示无权限;

    解决:使用adb命令:adb shell ls  /sdcard 打印所有文件,发现这个文件夹就是与电脑传送默认文件夹;

    可以通过手机连接电脑,设置为:文件模式,右键两个附件选择发送到手机,就默认到sdcard这目录

    不知道adb 命令可以参考adb日常使用方法 :https://www.cnblogs.com/shoebill/p/14430554.html

    C:\Users\Administrator>adb shell ls /sdcard

    3. 运行随机脚本命令:

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

    实例

    adb shell CLASSPATH=/data/monkeyq.jar:/data/framework.jar exec app_process /system/bin com.android.commands.monkey.Monkey -p com.test.today --agent robot --running-minutes 10 --throttle 500 -v -v

    包需要特别打才能运行执行正常;

    建议:执行命令前,先进行登录,随机的场景遇到需要登录的功能,基本跳不过去,登录后可覆盖的功能点能加大,相对Monkey随机覆盖,此工具覆盖更大;

    自定义脚本:

    脚本的设计也是基于xpath,结合每个activity,定位到当前的xpath,最后结果发现并不能按照自定义的脚本执行,更加偏向于随机跑,

    把自定义命名为:并放到sdcard 目录,执行命令:

    adb shell CLASSPATH=/data/monkeyq.jar:/data/framework.jar exec app_process /system/bin com.android.commands.monkey.Monkey -p com.test.today --agent robot -v 1#1代表执行次数

    分析:

    通过打印每个页面的activity和元素发现,发现有些页面的activity不一样的,还是id,name等元素的clickable = false,

    怀疑以上两个原因导致自定义脚本不能如实跑,例如:activity跟脚本不一致,xpath的元素是不可点击导致,

    反思:如果是元素不可点击,随机脚本应该也不能正常跑,这里有点矛盾,

    有哪位大神有研究,并能正常执行,请指点一下迷津,跪谢!!!

    教程的列子:

    实际:

     遇到查找activity 与 定位元素问题,可以使用下面命令:

    #找activity的方法:
    #能找到包名和activities,但activities可能是广告的
    aapt dump badging D:news.apk
     
    #在启动app过程 执行下面命令能提过广告的activities
    #例如有启动页的情况下,需要那打开a跳过该广告页,可以在跳过广告页,执行下面的命令即可
    adb shell dumpsys window w | findstr \/ | findstr name=
    
    #下载当前页面的定位和activity信息
    adb shell uiautomator dump

    总结:

    通过fastbot 结合手机的性能监控工具,可以运用于稳健性测试与偶现的闪退问题(配合日志捕捉)的发现;

  • 相关阅读:
    如何使用jmeter来实现更大批量的并发的解决方案
    jmeter分布式集群---部署多台机器进行性能压力测试
    HP Loadrunner12的下载和安装
    python 安装三方库碰到的问题
    测试风险评估
    Android Studio Android SDK Android NDK 官方下载地址
    PC版微信数据库解密详细教程
    js文件加载优化
    MYiSAM和InnoDB引擎区别(mysql)
    php利用cookie防止重复提交解决办法
  • 原文地址:https://www.cnblogs.com/shoebill/p/14481970.html
Copyright © 2011-2022 走看看