常用adb命令及monkey命令详解

测试

基于这篇文章,给大家再深入一下。

一、常用adb命令
1、adb devices:查看已连接的设备
2、adb version:查看adb的版本序列号
3、adb -s <设备名字>:指定某设备做什么(设备名字用1的方法可以查看)
4、adb install <安装包.apk>:安装应用(写清楚apk的完整路径)adb -s <设备名字> install <安装包.apk>:指定设备安装应用
5、adb shell:通过远程shell命令来控制模拟器/设备
6、exit:退出shell远程连接,回到原路径。(Ctrl+d,退出shell,回到默认路径)
7、adb pull <设备端路径> <pc端路径>:将指定的文件从设备/模拟器上拷贝到pc端(后面的pc端路径可以不指定,默认存储在当前路径下)。例: adb pull /sdcard/log.txt c:/monkey
8、adb push <pc端路径> <设备端路径>:将指定的文件从pc端拷贝到设备/模拟器上
9、adb shell pm list packages:列出电脑端所有apk的包名
10、adb logcat:查看pc端的日志输出。adb shell界面只需输入logcat,查看设备端日志输出(退出Ctrl+c)
二、Monkey命令扩展
1、最简单的monkey执行语句:(adb shell)monkey –p com.jianjiexuan.na –v 500 (对com.jianjiexuan.na 这个程序包单独进行一次500次的monkey测试)
名词解释:-p:用于约束限制,用此参数指定一个或多个包。指定包之后,Monkey将只允许系统启动指定的APP。如果不指定包,Monkey将允许系统启动设备中的所有APP。指定多个包:monkey -p –p -p -v 500-v:用于指定反馈信息级别(信息级别就是日志的详细程度),总共分3个级别,分别对应的参数如下表所示:
日志级别 Level 0
例 monkey –p com.jianjiexuan.na –v 500说明:缺省值,仅提供启动提示、测试完成和最终结果等少量信息
日志级别 Level 1
例 monkey –p com.jianjiexuan.na –v -v 500说明:提供较为详细的日志,包括每个发送到Activity的事件信息
日志级别 Level 2
例 monkey –p com.jianjiexuan.na –v -v -v 500
说明:最详细的日志,包括了测试中选中/未选中的Activity信息
2、延时及固定序列(adb shell)monkey -s 100 -p com.jianjiexuan.na – -throttle 1000 -v 500 (每次执行一次有效的事件后休眠1000毫秒)(adb shell)monkey -p com.jianjiexuan.na – -throttle 1000 – -randomize-throttle -v 500 (每次执行一次有效事件后随机延时0-200毫秒)名词解释:-s:用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。出现问题下次可以重复同样的系列进行排错。–throttle:固定延时,用于指定用户操作(即事件)间的时延,单位是毫秒;–randomize-throttle:随机延时,用于指定用户操作(即事件)间的时延,单位是毫秒。
3、保存monkey运行结果1)保存在PC中adb shell monkey –p com.jianjiexuan.na –v 500 > d:\monkey\log.txt 2)保存在手机中手机端进入shell模式:adb shell monkey –p com.jianjiexuan.na –v 500 > /mnt/sdcard/monkey/log.txt
4、monkey事件百分比的调整(adb shell)monkey -p com.jianjiexuan.na -v – -pct-anyevent 100 500指定多个类型事件的百分比:monkey -p com.jianjiexuan.na -v –pct-anyevent 50 –pct-appswitch 20 500
名词解释:–pct-****:

设置某个事件的百分比。后面接数字(0-100),100即100%的概率执行该事件注意:各事件类型的百分比总数不能超过100%。如果不进行设置则显示默认百分比。
5、正在运行的monkey如何终止如在命令窗口端直接打印结果,想要停止monkey的运行,那么就再打开一个cmd命令窗口查看monkey的进程:adb shell ps | find “monkey”kill掉该进程就可以adb shell kill + 进程编号 ,即adb shell kill 5182 关于其他的细化的。


二、monkey常用命令参数说明

基本参数 说明
-p <allowed-package-name> 指定一个或多个包
-s <seed> 指定一个随机数生成器的seed值
--throttle <milliseconds> 指定事件之间的固定延迟(ms)
-v 指定反馈信息级别(信息级别就是日志的详细程度)
-c <main-category> 指定一个或多个类别名
-f <scriptfile> 运行指定的monkey脚本
事件参数 说明
--pct-touch <percent> 指定触摸事件百分比
--pct-motion <percent> 指定动作事件百分比
--pct-trackball <percent> 指定轨迹事件百分比
--pct-syskeys <percent> 指定系统按键事件百分比
--pct-nav <percent> 指定基本导航事件百分比
--pct-majornav <percent> 指定主要导航事件百分比
--pct-appswitch <percent> 指定应用启动事件百分比
--pct-flip <percent> 指定flip(弹)事件的百分比
--pct-anyevent <percent> 指定其他类型事件百分比
--pct-pinchzoom <percent> 指定缩放(捏)事件百分比
--pct-permission <percent> 指定
调试参数 说明
--ignore-crashes 忽略因崩溃或异常引起的停止运行
--ignore-timeouts 忽略应用发生超时错误(ANR)
--ignore-security-exceptions 忽略应用发生任何权限错误
--monitor-native-crashes 监视并报告monkey运行时native code的崩溃事件
--ignore-native-crashes 忽略因native code的崩溃事件
--kill-process-after-error 在应用出错后通知系统杀死发生错误的进程
--hprof 在事件序列前后立即生成profilfing report
 
--dbg-no-events 监视应用程序所调用的包之间的转换
--wait-dbg 暂停执行中的monkey,直到有调试器与它连接

三、对小米商城APP跑monkey及其说明

adb shell monkey -p com.xiaomi.sc -v -v -v --throttle 200 -s 1 --ignore-crashes --ignore-timeouts --ignore-native-crashes --pct-touch 30 100000 2>/Users/admin/Desktop/error.txt 1>/Users/admin/Desktop/info.txt

对上面命令的描述.png

adb shell monkey -p com.xiaomi.sc -s 2333 --pct-touch 70 --pct-motion 30 --ignore-crashes --ignore-timeouts --monitor-native-crashes --throttle 200 -v -v 500000 >/Users/admin/Desktop/monkey0903.txt

--pct-touch 70 --pct-motion 30这两个命令是后面增加的,一个代表点击,一个代表滑动,两个加起来是100,代表不会进行其他事件操作,如轨迹事件,导航事件等等,指定这两种操作后,就极大的降低了monkey点到被测app外面的概率(触发到音量键等系统按键)

在执行向下滑动的命令时,打开了通知栏,然后又开始了瞎点的操作。这时可在执行monkey命令之前,先执行禁用通知栏的命令

adb shell settings put global policy_control immersive.full=*
解禁命令:adb shell settings put global policy_control null

adb monkey相关推荐

  1. 无埋点数据收集和adb monkey测试屏蔽通知栏

    简单记录百度移动统计android无埋点sdk使用和monkey测试屏蔽通知栏的问题 1.无埋点sdk使用 很简单,下载完sdk后导入到项目中 , 参考sdk文档进行就可以了,个人觉得比友盟还简单,几 ...

  2. Android Monkey测试入门(摘)

    Monkey是一款通过命令行来对我们APP进行测试的工具,可以运行在模拟器里或真机上.它向系统发送伪随机的用户事件流,实现对正应用程序进行压力测试. 官方介绍 :https://developer.a ...

  3. 工作中的adb 常用命令

    工作中的adb 常用命令 2017年05月08日 10:58:01 yang_zhang_1992 阅读数:2812 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.c ...

  4. 一篇文章带你入门adb自动化测试

    一篇文章带你入门adb自动化测试 前言 一.什么是adb 1.adb的原理的应用场景 2.(adb)Android debug bridge用于调试使用安卓系统的设备 3.adb基本原理 二.adb环 ...

  5. ADB 的下载和安装

    一. adb工具的下载和配置 1. 网上下载安装包并解压,里面有如下文件 2.配置环境变量 将解压后的 adb 文件目录 配置在 path 环境变量中,详细步骤就不描述了,可以百度 3.检测是否安装好 ...

  6. android 通过adb发送广播

    参考博客: https://blog.csdn.net/yelangjueqi/article/details/43231425 通过命令行执行adb shell am broadcast发送广播通知 ...

  7. 在命令行中通过adb shell am broadcast发送广播通知以及Android的常用adb命令

    转载自:http://www.cnblogs.com/622698abc/archive/2013/06/11/3132306.html?utm_source=tuicool 通过命令行执行adb s ...

  8. monkey命令——压力测试——转载参考03

    转载:https://blog.csdn.net/u011649536/article/details/45043781?utm_source=blogxgwz9 简要步骤:adb devices-- ...

  9. 2022年想成为软件测试工程师,这个学习路线收藏起来

    近两年来,自动化测试工程师越来越火了,薪资待遇也快接近开发工程师了. 企业对于自动化测试的需求量也越来越高 什么样的项目适合自动化测试 如上图所示,真正工作中无法全部满足以上条件,所以需要作出权衡,一 ...

最新文章

  1. putty改oracle数据库密码,用putty远程访问虚拟机linux系统Oracle数据库。
  2. HDU-4277USACO ORZ深搜+set去重
  3. 打破你的认知,数字除以 0 一定会崩溃吗?
  4. Spring Cloud Greenwich 正式发布,Hystrix 即将寿终正寝!
  5. css 控制li点与文字的距离
  6. 时间胶囊——给未来的留言板
  7. 著名开源项目_著名开源项目案例研究
  8. explain mysql ref_MySQL explain详解
  9. jar命令成功完成 java -jar 命令却提示“没有主清单属性”!
  10. c语言编程入门教程for,C语言编程入门教程精 简版.ppt
  11. Dynamic 365 中创建编码规则
  12. 综合布线实训室解决方案(转载)
  13. 阿里云oss文件分片、断点续传上传
  14. 百度深度学习初级认证——已过
  15. 使用 JDBC 连接不同版本 DB2 数据库的兼容性问题
  16. c++ 输出正三角形图形
  17. java 浏览器设置字体大小_Sass可以在不使用REM的情况下访问浏览器的默认字体大小吗?...
  18. m4s格式转换mp3_怎么把腾讯缓存的视频转换成MP3格式
  19. 区块链零知识证明:STARKs, Part II
  20. 11-散列1 电话聊天狂人 (25分)

热门文章

  1. 【信号与系统】如何理解公式:r(t)=e(t)﹡h(t)
  2. 计算机上word译文是啥,在电脑上怎么翻译word文档?
  3. oracle中merge into using 的用法解析
  4. 山东大学创新项目实训个人工作日志(十六)
  5. jsp中id ,name 我的小小认识
  6. Linux系统中ls命令用法详解
  7. 编译时提示 Could NOT find OpenSSL 的解决方法
  8. 记录一次rediscluster 调用lua 脚本, 用于 list 批量获取
  9. (实验12)单片机,STM32F4学习笔记,代码讲解【OLED显示实验】【正点原子】【原创】
  10. 智能车图像处理(一)阈值处理