51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3126|回复: 0
打印 上一主题 下一主题

[原创] app测试adb shell mokey 第一课

[复制链接]
  • TA的每日心情
    慵懒
    2017-7-2 18:38
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2018-9-11 22:51:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    adb devices 查看所有连接的终端设备; adb服务使用的端口号:5037
    状态:device 表示已连接
          Offline 表示未连接;
          Unknown:没有连接设备;
    adb  get-server 获取设备的状态
    adb install  包,,(安卓apk,IOS.ipa) 安装
    adb install  -r  包  覆盖安装;
    adb uninstall  包  卸载(后面跟的参数是应用的包名,请区别于 apk 文件名系统包不要随意卸载

    例子:adb uninstall com.netease.qa.emmage
    adb pull <远程文件> <本地路径>:下载文件,从模拟器拉文件到本地
    例:adb  pull  /data/anr/traces.txt  D:\003-APP\ck
    adb push <本地文件> <远程路径>:上传文件,把本地文件放到远程
       (1)首先要知道本地文件的路径、远程路径( /data/anr)
    (2)例: adb  push  test.txt  /data/anr
    adb shell :可以使用命令进入并控制Android手机  adb shell 是调用Android系统中的命令(使用了这个命令 我们就可以使用cd 进去文件中 ls )
    adb kill-server :结束服务 (注:如果我们在adb devices 中显示的状态unkown的 就先用这个结束服务,它会结束一些无关的服务);
    adb start-server :启动服务
    adb remount  :获取 root 权限,并挂载系统文件系统为可读写状态 (设置权限)
    adb –s <deviceid> logcat
         说明:-s : 设置过滤器    针对设备id 进行过滤它的日志;
    adb get-serialno 获得序列号(emulator-5554)
    adb shell pm命令; (注:adb shell 下的命令在使用的过程中都需要 加上adb shell)
    例子:adb shell pm list packages :查看所有的包;没有类名
    adb pm list permission-groups 查看权限
    adb shell pm uninstall 包和adb uninstall 包 都是卸载应用程序
    pm install 和adb install 的区别:
    目标apk存放于pc 端,用adb install 安装
           目标apk 存在android设备上 用pm install 安装;
    Adb shell am命令:
       Adb shell am start  -n  包名/类名 打开进程
       例子:adb shell am start –n  com.android.camera/.camera 启动照相机程序
    Adb shell am force-stop –n 包名 关闭进程
       例子: Adb shell am force-stop com.android.camera

    Adb shell keycode 模拟按键事件:
    Input 这个命令可以向android 设备发送按键事件
    语法:adb shell input keyevent x
      例子:adb shell input keyevent 3  表示返回到主菜单
    Adb shell input keyevent 4  返回上一层
    Adb shell input test abc 发送文本内容abc 不能发中文(前提现将键盘设置英文键盘并打开文本编辑器)
    Adb shell screencap –p  /sdcard/screen.jpg 截图命令;
    adb shell screencap -p /sdcard/screen.jpg  下载并查看截图
    adb shell monkey命令:
    monkey它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手时输入等),实现对正在开发的应用程序进行压力测试
    monkey 测试是一种伪了测试软件的稳定性、健壮性的快速有效的方法;
    adb 环境:monkey测试使用的时adb 命令,因此只需要配置adb环境;
    adb 就是连接android手机和pc端的桥梁,可以让用户在电脑上对手机进行前面的操作;
    例如:运行monkey,对包进行300次无规律点击
          Adb shell monkey –p com.android.camera –v 300

    Adb shell monkey –p  com.android.calendar --ignore-crashes  --ignore-timeouts  --throttle 380 –v –s 3500 30000
    说明:-p : 制定测试程序的包
          30000: 执行次数
          --ignore-timeouts: 忽略超时
          -v : log日志的详细度
          -s: 伪随机数
          --throttle :插入时延,单位是毫秒 常用参数,一般设置为300毫秒,原因是实际用户操作的最快300毫秒左右一个动作事件,所以此处一般设置为300毫秒
    -s(随机数种子)作用:用于指定伪随机数生成器的seed值,如果seed
    相同,则两次Monkey测试所产生的事件序列也相同的


    还有一种方法 将日志导出到电脑的某一位置
    Adb shell –p 包名 –v 点击数>电脑某一位置
            例子:adb shell monkey –p  com.android.camera –v –v –v 300 >F:\test .txt(日志导入到文件中)
    Adb shell  -help 列出简单的用法
    -v作用:命令行上的每一个-v都将增加反馈信息的详细级别。
    -v(默认),除了启动、测试完成和最终结果外只提供较少的信息。
    -v –v ,提供了较为详细的测试信息,如逐个发送到Activity的事件信息。
    -v –v –v ,提供了更多的设置信息,如测试中选中或未选中的Activity信息。
    • 比较常用的是-v -v -v,即最多详细信息,一般会保存到指定文件中供开发人员查找bug原因时使用
    约束类参数的说明:
    -p :指定包 如果你不指定任何包,Monkey将允许系统启动所有包的 Activity。指定多个包,使用多个-p,一个-p后面接一个包名
    --ignore-crashes 作用:用于指定当应用程序崩溃时(Force& Close错误),Monkey是否停止运行。如果使 用此参数,即使应用程序崩溃,Monkey依然会发送事件,直到事件计数完成
      例子:adb shell monkey -p com.android.camera --ignore-crashes 1000
       测试过程中即使camera程序崩溃,Monkey依然会继续发送事件直到事件数目达到1000为止;
        例2:adb shell monkey -p com.android.camera 1000    (1000次)
    测试过程中,如果camera程序崩溃,Monkey将会停止运行
    --ignore-timeouts 作用:通常,应用程序发生任何超时错误(如“Application Not responding”对话框)
    Monkey将停止运行,设置此项,Monkey将继续发送事件给系统,直到事件计数完成
    --ignore-security-exception  作用:通常,当程序发生许可错误(例如启动一些需要许可的Activity, 证书 许可,网络许可等 )导致的异常时,Monkey将停止运行。设置此项,Monkey将继续发送事件给系统,直到事件计
    数完成

    事件类参数:
    --pct-{+事件类别}{+事件类别百分比}
    用于指定每种类别事件的数目百分比(在Monkey事件序列中,该类事件数目占总事件数目的百分比)
    注意:各事件类型的百分比总数不超过100%
    1.        --pct-touch <percent>作用:调整触摸事件的百分
    比。(触摸事件是指在屏幕中的一个down-up事件,即
    在屏幕某处按下并抬起的操作)
    注:常用参数,此参数设置要适应当前被测应用程序的操 作,比如一个应用80%的操作都是触摸,那就可以将此参 数的百分比设置成相应较高的百分比。
    (自己理解,如果应用程序中那种事件比较多 就可以把哪种事件的百分比设的高一点  重点测)
    例子:adb shell monkey -p com.android.camera --pct-touch 100 -v 10
    2、--pct-motion <percent>作用:调整motion事件百分 比。
    (motion事件是由屏幕上某处一个down事件、一系列伪随 机的移动事件和一个up事件组成)
    注:常用参数,需注意的是移动事件是直线滑
    例:adb shell monkey --pct-motion 100 -v 10
    3、--pct-trackball <percent>作用:调整滚动球事件百分比。(滚动球事件由一个或多个随机的移动事件组成,
    有时会伴随着点击事件)
    注:不常使用参数,现在手机几乎没有滚动球,但滚动球事件中包含曲线滑动事件,在被测程序需要曲线滑动时 可以选用此参数。
    例:adb shell monkey --pct-trackball 100 -v 10
    • 4、--pct-nav <percent>作用:调整基本的导航事件百分比。(导航事件由方向输入设备的上下左右按键所触发 的事件组成)
    注:不常用操作。
    例:adb shell monkey --pct-nav 100 -v 10
    5、--pct-majornav <percent>作用:调整主要导航事件的百分比。(这些导航事件通常会导致UI界面中的动作 事件,如5-way键盘的中间键,回退按键、菜单按键)
    注:不常用操作。
    例:adb shell monkey --pct-majornav 100 -v 10
    • 6、--pct-syskeys <percent>作用:调整系统事件百分比。(这些按键通常由系统保留使用,如Home、Back、 Start Call、End Call、音量调节)
    注:不常用。
    例:adb shell monkey --pct-syskeys 100 -v 10
    • 6、--pct-appswitch <percent>
    作用:调整Activity启动的百分比。(在随机的时间间隔中,Monkey将执行一个startActivity()调用,作为最大程 度覆盖被测包中全部Activity的一种方法)
    注:不常用。
    例:adb shell monkey --pct-appswitch 100 -v 5
    7、--pct-anyevent
    作用:调整其他事件的百分比。(这包含所有其他事件,如按键、其他在设备上不常用的按钮等)
    注:不常用。
    例:adb shell monkey --pct-anyevent 100 -v 5
    8、--pct -anyevent 100 1000* 指定多个类型事件的百分比:
        注意:各事件类型的百分比总数不能超过100%
        例: adb shell monkey -p com.htc.Weather --pct-anyevent 50 --pct-appswitch 50 1000

    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-23 16:54 , Processed in 0.065560 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表