最近打算把移动测试相关的知识总结一下,先从基础开始吧,总结一下adb、monkey命令

adb常用命令总结

  1. adb / adb -help 使用帮助
  2. adb devices 查看连接到电脑的设备
  3. adb install example.apk 安装程序
  4. adb -s emulator-5554 install example.apk 安装程序到指定的设备上(模拟器)
  5. adb pull <remote> <local> 将设备上文件保存到电脑上
  6. adb push <local> <remote> 将本地的文件上传到设备上
  7. adb start-server 重启adb服务
  8. adb kill-server 杀掉adb服务
  9. adb shell 进入命令行交互模式,进入之后可以像在linux输入shell命令一样来操作手机设备(android本来就是基于linux的)
  10. adb logcat <信息显示优先级参数> 显示日志信息 优先级从低到高顺序排序:

    V —— Verbose(lowest priority)
    D —— Debug
    I —— Info
    W —— Warning
    E —— Error
    F —— Fatal
    S —— Slient (highest priority,on which nothing is printed)

下面的过滤语句只显示优先级为warning或更高的日志信息

   adb logcat *:W

Monkey命令实战

1.Monkey是什么?

  • Monkey是Android中的一个命令行工具,可以运行在模拟器或者实际设备中
  • 向系统发送伪随机的用户事件流(按键输入、触摸屏输入、手势输入等)
  • 实现对正在开发的应用程序进行测试
  • Monkey测试之一种为了测试软件的稳定性、健壮性的快速有效的方式

2.Monkey的特征

  • 测试对象仅为应用程序包,有一定的局限性(不能对源码进行测试)
  • Monkey测试使用的事件流数据是随机的,不能进行自定义
  • 可以对MonkeyTest对象,事件数量,类型、频率等进行设置

3. Monkey使用

adb shell monkey [options]

adb  shell monkey  -p 包名  -v 500

-p 指定测试程序包名
-v 显示默认程度的信息
500 事件数设定为500 例如: adb shell monkey -p com.android.calculator2 -v 500

4. Monkey命令结果分析

  1. 找monkey里面那个出错的地方
  2. 查看monkey里面出错前的一些事件动作,并手动执行该动作
  3. 若以上步骤还不能找出,使用之前执行的monkey命令再执行一遍,seed值要一样(seed值一样,发送的伪随机事件流也一样)
  4. 注意第一个switch以及其他信息

    seed值和,不同event类型比例

5.Monkey测试的目的

  1. ANR问题:在日志中搜索“ANR”
  2. 崩溃的问题:在日志中搜索“Exception”

  3. ANR:Application Not Responding,在Android中,如果应该程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”应用。 好的程序应该能流畅运行,不能出现ANR问题

Monkey命令进阶

1.运行时机

产品功能稳定之后进行

2. monkey更复杂的命令

  • adb shell monkey -p packagename -v -v -- throttle 600 88

     -v :代表整个Monkey运行的次数,多个 -v 可以定制Monkey报告的等级
    --throttle 600 : 每个操作都间隔时间600ms
    88 :执行的事件数
  • adb shell monkey -p packagename -v -v --pct-touch 50 --pct-trackball 30 --throttle 600 88

  • adb shell monkey -p packagename -v -v --pct-touch 50 --pct-trackball 30 -s 1234 --throttle 600 88

    --pct-touch :设置在整个过程中点击操作所占的百分比
    --pct-trackball: 设置滚轮在所用操作中的百分比
    --ignore-crashes:崩溃之后继续测试,重新启动程序
    --ignore-timeouts:遇到超时,也继续执行 -v:
    命令行的每一个-v将增加反馈信息的级别
    Level 0(缺省值)除启动提示、测试完成和最终结果之外,提供较少信息
    Level 1提供较为详细的测试信息,如逐个发送到Activity的事件
    Level 2提供更加详细的设置信息,如测试中被选中的或未被选中的Activity
  • 更多monkey命令:http://xqtesting.blog.51cto.com/4626073/1430654

  • 实测命令(经常用到的,可以参考):

adb shell monkey -p com.xx.xxx(包名)--throttle 500 --ignore-crashes --igonre-timeouts --ignore-security-exceptions --igonre-native-crashes --monitor-native-crashes -v -v -v 1000000 >> D:\monkeyScreenLog.log

  • 说明:忽略crashes、timeout等是为了出问题是monkey继续运行下去,希望能抓取更多的出错信息

3.可以练习使用的apk包名

  • com.android.calculator2
  • com.android.browser
  • com.android.music
  • com.android.email
  • com.android.contacts
  • com.android.camera

移动测试基础—adb、monkey命令的更多相关文章

  1. adb adb monkey命令及介绍

    1.adb的组成部分 守护进程,客户端,服务器端`      2.Monkey程序是Google公司提供的一个压力和稳定性测试的工具 3.命令 命令 参数 功能 adb version   查看当前a ...

  2. app测试基础知识之命令

    app测试点:功能测试,安全测试,用户体验测试,交叉事件测试,兼容性测试,性能测试,安装/升级/卸载 ,UI测试 命令操作: adb connect 名 adb devices adb  instal ...

  3. adb Monkey用法

    以这条Monkey指令为例: #monkey -s --throttle -p com.android.cameraswitch -- 这条monkey指令是测试:在camera模块中产生1万次伪随机 ...

  4. 安卓测试【三】adb简单命令及monkey使用

    Ⅰ 配置好android sdk环境变量之后,将android手机连接到电脑上,进行一些adb的简单命令的操作. adb,安卓调试桥,android   sdk的一个工具.直接操作管理安卓模拟器或者真 ...

  5. Monkey测试4——Monkey命令行可用的全部选项

    Monkey命令行可用的全部选项 常规 --help 列出简单的用法. -v 命令行的每一个-v将增加反馈信息的级别. Level 0(缺省值)除启动提示.测试完成和最终结果之外,提供较少信息. Le ...

  6. Android自动化测试基础知识——MONKEY测试工具(转的)

    本周开始启动手机输入法simeiji的自动化测试,同时开始接触手机浏览器自动化测试.接下来会对android自动化测试工具和方法做一个专题研究. 第一篇介绍monkey测试工具. 1 自动化测试背景 ...

  7. monkey测试基础

    一.环境配置 Java JDK和android SDK 二.基本命令 *安卓手机链接电脑,打开手机的开发者模式,允许usb调试 adb:检查adb是否安装成功 adb devices:查看连接的设备 ...

  8. monkey测试入门2--测试步骤、常用参数、常规monkey命令

    <凤栖梧> 柳永 伫倚危楼风细细,望极春愁,黯然生天际.草色烟光残照里,无言谁会凭栏意? 拟把疏狂图一醉,对酒当歌,强乐还无味,衣带渐宽终不悔,为伊消得人憔悴. 简要步骤:adb devi ...

  9. monkey实战--测试步骤、常用参数、常规monkey命令

    简要步骤:adb devices---了解包名--adb shell monkey -p 包名 -v 运行次数(多个参数的组合形成不同的用例以求最大的覆盖)--当崩溃或无响应时分析monkey日志 常 ...

随机推荐

  1. 解决:惠普HP LaserJet Pro M126a MFP 驱动 安装失败,及其它同类打印机失败问题

    注意:如果在 Windows XP 系统下安装出错,请先安装WindowsXP KB971276-v3补丁后再安装装驱动. 下载地址:http://www.dyjqd.com/soft/KB97127 ...

  2. Windows下使用Caffe-Resnet

    参考文章: 编译历程参考:CNN:Windows下编译使用Caffe和Caffe2 caffe的VS版本源代码直接保留了sample里面的shell命令,当然这些shell命令在Windows平台下是 ...

  3. 作业07之《MVC模式》

    MVC(Model View Controller)模型-视图-控制器 MVC与模板概念的理解 MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器.使用MVC的目的 ...

  4. jquery-pjax使用说明

    pjax = pushState + ajax .--. / \ ## a a ( '._) |'-- | _.\___/_ ___pjax___ ."\> \Y/|<'. '. ...

  5. 文件操作(day15)

    调用函数可以使用被调用函数动态分配的 存储区 calloc函数也可以动态分配一组连续的 存储区 这个函数可以把所有动态分配的存储区 内容设置成0 为了使用这个函数也需要包含stdlib.h头文件 这个 ...

  6. SPU、SKU、ARPU是什么,我来记录一下我的理解

    在电商系统里经常会提到“商品”.“单品”.“SPU”.“SKU”这几个词,那么这几个词到底是什么意思呢? 既然不知道是什么,那么我们就查一下:SPU = Standard Product Unit ( ...

  7. Golang - 流程控制

    目录 Golang - 流程控制 1. 选择结构 2. 循环结构 3. 跳转语句 Golang - 流程控制 1. 选择结构 if else语句: //package 声明开头表示代码所属包 pack ...

  8. Unity 利用FFmpeg实现录屏、直播推流、音频视频格式转换、剪裁等功能

    目录 一.FFmpeg简介. 二.FFmpeg常用参数及命令. 三.FFmpeg在Unity 3D中的使用. 1.FFmpeg 录屏. 2.FFmpeg 推流. 3.FFmpeg 其他功能简述. 一. ...

  9. luogu P4725 多项式对数函数 (模板题、FFT、多项式求逆、求导和积分)

    手动博客搬家: 本文发表于20181125 13:25:03, 原地址https://blog.csdn.net/suncongbo/article/details/84487306 题目链接: ht ...

  10. c++ 打飞机游戏开发日志

    设计思路:控制台模式 初始化: 建立画面,初始化数据 游戏过程: 1.获取操作 2.修改数据 3.更新画面 结束: 关闭画面,delete动态分配数据 4.29日 创建游戏背景,实现飞机移动操作,实现 ...