zoukankan      html  css  js  c++  java
  • Android测试-monkey

    好久以前搞过monkey,最近看了一个monkey+日志录制的一个分享,准备自己也搞一下。

    monkey的doc文档:

    https://developer.android.google.cn/studio/test/monkey.html

    adb查看包名/Activity名

    adb shell "logcat | grep START" 
    adb shell dumpsys activity | find “mFocusedActivity”
    adb shell pm list packages
    adb shell dumpsys window | findstr mCurrentFocus

    aapt也可以查看,参考 https://www.cnblogs.com/lynn-li/p/5885001.html

    命令行中切换到aapt.exe目录,执行命令:aapt dump badging F:QQyinle_439.apk ,注意,apk路径中一定不能有空格。

    把日志存储在特定的文件中,在文件中通过搜索关键字,得到包名及活动名,这里我把结果输出到F盘的log.txt中:

    aapt dump badging F:QQyinle_439.apk > F:log.txt

        到此,已经获取了app的package名和activity。下面,我们真正的启动app。在原有cmd运行窗口,输入命令:

    device.startActivity(component=" com.tencent.qqmusic/.activity.AppStarterActivity ")

    基本命令介绍:

    #-v 事件数量 -v个数越多,时间日志越详细,最多3个
    # adb logcat 获取当前应用package名称
    
    #adb shell monkey -v 100
    # -f 执行对应的monkey脚本
    #adb shell monkey -f /path
    # --throttle time
    #adb shell monkey --throttle 100
    #触摸事件百分比 --ptc-touch 
    #adb shell monkey --ptc-touch 30
    #--ptc-motion 动作down+up --ptc-trackball 随机移动+点击
    #--ptc-nav 导航事件 up/down/left/right --ptc-majornav 主要导航事件 ,home back menu
    #--ptc-syskeys 系统按键 home/back/call/endCall/volume
    #--ptc-appswitch 启动应用事件 startActivity()
    #--ptc-anyevent 其他类型事件
    
    
    #-p 限定在包中,可选多个包,每个包名前需要加-p ,所有包属于一个app,否则只在第一个app里面的包里执行
    #adb shell monkey -p com.patech.testApp 1000 -p com.patech.zhizhitest 1000 --throttle 1000 --ptc-trackball 100
    
    #-c 一个或多个main-category参数,即android的activity的类型,不指定则选择Intent.category_Launcher和Intent.category_monkey
    #--hprof 生成报告
    #adb shell monkey --hprof 100
    #--ignore-crashes 无视crash
    #--ignore-timeouts 无视超时
    #--ignore-security-exceptionis 无视权限错误
    #--monitor-native-crashes 监视并报告Android系统native code崩溃事件
    

      

    写了一个bat脚本来执行monkey并记录各种日志

    @echo off
    rem edit by zhzh.yin
    rem 设置放置测试脚本的目录,测试package名称,操作事件总数,思考事件
    set FILE_PATH=C:UsersuserDesktop estReport
    set PACKAGE_NAME=com.android.calendar
    set OPERATION_NUM=1000
    set THINK_TIME=1000
    set ADB_PATH=D:android_sdkplatform-tools
    set ADB_DIR=D:
    rem 设置时间百分比,总和需<100,当前设置为50%触摸事件,20%动作事件(down and up),20%轨迹球事件(随机移动+点击)
    set TOUCH_PER=50
    set MOTHION_PER=20
    set TRACKBALL_PER=20
    cd %ADB_DIR%
    cd %ADB_PATH%
    adb devices
    adb logcat -c -b main -b events -b radio -b system
    rem --ptc-nav 导航事件 up/down/left/right
    rem --ptc-majornav 主要导航事件 ,home back menu
    rem --ptc-syskeys 系统按键 home/back/call/endCall/volume
    rem --ptc-appswitch 启动应用事件
    rem --ptc-anyevent 其他类型事件
    set NOW_TIME_HH=%time:~0,2%
    if "%NOW_TIME_HH%" lss "10" (set NOW_TIME_HH=0%time:~1,1%) else (set NOW_TIME_HH=%time:~0,2%)
    for /f %%i in ('powershell -c "Get-Date -uformat '%%Y%%m%%d'"') do (
    set "Today=%%i"
    )
    set NOW_TIME=%Today%%NOW_TIME_HH%%time:~3,2%%time:~6,2%
    cd %FILE_PATH%
    echo create the folder
    rem mkdir %NOW_TIME%
    md %FILE_PATH%\%NOW_TIME%
    echo the name of folder is %NOW_TIME%
    cd %ADB_DIR%
    cd %ADB_PATH%
    adb shell monkey -p %PACKAGE_NAME% -v -v %OPERATION_NUM% --throttle %THINK_TIME% --ptc-touch %TOUCH_PER% --ptc-motion %MOTHION_PER% --ptc-trackball %TRACKBALL_PER% 1>%FILE_PATH%\%NOW_TIME%monkey_standard.txt 2>%FILE_PATH%\%NOW_TIME%monkey_error.txt
    echo the monkey log is saved in %FILE_PATH%\%NOW_TIME%,and the fileName is begin with monkey
    adb logcat -v time *:E -d >%FILE_PATH%\%NOW_TIME%logcat.txt
    echo the logcat log is saved in %FILE_PATH%\%NOW_TIME%,and the fileName is begin with logcat
    pause

      

  • 相关阅读:
    springboot maven打包插件
    maven打包指定main入口插件
    团队开发环境一致性性要求
    springboot 在idea中实现热部署
    IDEA 2018.1可用License服务(持续更新)
    IDEA打jar包
    3月18号
    3月17号
    3月16号
    3月13号
  • 原文地址:https://www.cnblogs.com/zhizhiyin/p/11322049.html
Copyright © 2011-2022 走看看