1. 查找进程命令是什么?

adb shell ps

adb shell ps |findstr 名称

2. 如何获取包名

1)获取手机上的所有包名信息。

adb shell pm list packages

2) 获取手机上包含xxx信息的包名

adb shell pm list packages |findstr xxx

3) 在不知道包名的前提下获取包名,先打开需要查找的APK后,敲入一下命令

adb shell dumpsys windows w | findstr name=

4)对获取到的包名执行随机点击事件

adb shell monkey -p com.android.bbkcalculator 3000 >e:\123.txt (先在E盘创建个123.txt文件,本句话的意思是:当对此com.android.bbkcalculator包执行操作3000次时,将日志记录到指定的E盘123.txt文件中)

3. Monkey如何模拟手动操作? 
答:--throttle参数

语法:adb shell  monkey -p 包名  --throttle 1000 1000

eg:   adb shell monkey -p com.android.bbkcalculator --throttle 1000 1000

 注意:前面一个1000是毫秒数,后面一个1000是执行次数,意思是对指定的APK 执行1000次  ,每次延时1秒,进行随机操作。

4. 杀死进程的方法 (force-stop 和clear)

1) 根据包名杀死进程的命令。(此命令只是将程序停止工作)

adb shell am force-stop 【包名】

注意:这种方法会强制停止APP进程,不会清除APP进程在系统中产生的数据

2)  杀死后台进程的命令

adb shell pm clear 【包名】

执行完成以后打开手机确定一下

注意:区别于上面杀死进程的命令,这个会将后台程序杀死。

5. 如何重现Monkey中发现的错误? 
答:使用seed

语法:adb shell monkey -p 包名 -s 50 100

eg: adb shell monkey -p  com.android.bbkcalculator -s 50 100

注意:seed值 可以简单形象的理解为flag,建立一个标签。一般用于monkey跑命令中。我第一次设定这个seed 值等于100,去跑monkey命令,就会对指定的APP程序随机点击100次,跑随机事件;

第二次我跑命令的时候,还是用这个seed值,那么就会跟一次跑随机事件会一模一样,是个伪随机事件。 Monkey测试1:adb shell monkey -p com.android.bbkcalculator  –s 50 100

Monkey 测试2:adb shell monkey -p com.android.bbkcalculator  –s 50 100 也就是说着两个命令执行的事件顺序是一模一样的! -s 代表 seed,50由自己随意定义

6. Monkey如何控制事件流所占比? 

答:--pct-touch等pct参数

语法:  adb shell monkey -p 包名 --pct-touch 100 10

eg:  adb shell monkey -p com.android.bbkcalculator --pct-touch 100 10

7. Monkey除了做伪随机事件外,能不能写脚本? 
答:能。

8、如果能写脚本怎么做? 
答:两种方式,指定事件类型+事件百分比,或者使用 -f参数加脚本文件。

9、Monkey测试一般测试多久? 
答:超过3个小时。

10. android monkey的测试结果怎么分析

在log的最开始都会显示Monkey执行的seed值、执行次数和测试的包名。

首先我们需要查看Monkey测试中是否出现了ANR或者异常,无响应问题(ANR问题):在日志中搜索“ANR ”(此处有空格),

崩溃问题:在日志中搜索“Exception”,快速定位到关键事件信息 。然后查看Monkey里面出错前的一些事件动作,并手动执行该动作,找出重现步骤,给开发。

11. monkey测试流程?

答:简要步骤:
1). 查看设备是否已连接:adb devices

2). 测试前首先关闭MTK log,将sdcard卡和手机内存中的旧的log清理赶紧

3). 了解并得到包名

4). 运行测试稳定性命令: adb shell monkey -p 包名 -v 运行次数(多个参数的组合形成不同的用例以求最大的覆盖)

5).当崩溃或无响应时分析monkey日志

12.Monkey测试注意事项

注意事项:

  1. 测试关闭所有网络开关(wifi及数据连接)
  2. 开启安全设置下的未知来源
  3. 手机连接电源充电
  4. 若有有关于音频的模块,请插入耳机避免影响其他同事
  5. 若测试信息模块时需要安装测试工具testwizard.apk,自动生成通话记录,短信(数量为10)
  6. 若测试文件管理器需要在T卡内存放有图片/音乐/apk/视频/txt这类文件
  7. 测试图库是需要T卡内存放100个图片及视频的,同样音乐和视频播放器也需要存放不少于50个片源
  8. 测试电子邮件的需要新建两个以上的账户
  9. 测试前运行一遍手机上方带有的首次提示的说明,如输入法,文件夹窗口,apk提示语等
  10. 若测试时遇到问题想重新开始测试,必须拔掉电板后重新键入adb指令重新开始。

13. 如何将测试报告记录在本地:

将命令改为:  adb shell monkey –p com.android.bbkcalculator –-throttle 100 –-pct-touch 50 –-pct-motion 50 –v –v 10 >D:\monkeylog.txt

其它资料可参考:

Monkey基本使用流程及测试报告分析: https://www.cnblogs.com/persistz/p/6209024.html

Android模拟器端口被占用解决:  https://blog.csdn.net/u014769864/article/details/72649543

monkey实战--测试步骤、常用参数、常规monkey命令: https://blog.csdn.net/u011649536/article/details/45043781

Monkey面试整理的更多相关文章

  1. 就目前市面上的面试整理来说,最全的BAT大厂面试题整理在这

    原标题:就目前市面上的面试整理来说,最全的BAT大厂面试题整理在这 又到了面试求职高峰期,最近有很多网友都在求大厂面试题.正好我之前电脑里面有这方面的整理,于是就发上来分享给大家. 这些题目是网友去百 ...

  2. 面试整理之DOM事件阶段

    因为快面试了,打开<JavaScript高级程序设计>,对DOM事件进行整理了下 本文主要解决的问题: 事件流 DOM事件流的三个阶段 先理解流的概念 在现今的JavaScript中随处可 ...

  3. java面试整理(会持续更新..)

    本人出道至今,经历了大大小小百余场战斗,,,下面整理的面试题有些有答案,有些没答案,那个谁说过:"要抱着怀疑的态度去编程,所以,即便有答案,也不一定正确,即便我本地正确,但是由于屏幕前的你和 ...

  4. 面试整理(1):原生ajax

    接到电话面试,有一些送分题答的不好,在这里整理一下 问题:原生ajax的工作流程是怎么样的? 老用封装好的工具,原生的ajax其实并不熟悉,今天复习一下.主要参考http://www.w3school ...

  5. java面试整理

    IO和NIO的区别 这是一个很常见的问题,如果单纯的只回答IO和NIO的区别,只能算及格.我个人觉得应该从以下几个方面回答: 1).IO简介, 2).TCP的三次握手,因为这也是两者的区别之一, 3) ...

  6. java核心技术面试整理

    [前方高能,是这半年BAT,京东,远景,华为,中兴以及苏研发中心被问到的Java公共问题的一个整理] ------------------------------------------------- ...

  7. 年底Android面试整理(附答案)

    面试,无非都是问上面这些问题(挺多的 - -!),聘请中高级的安卓开发会往深的去问,并且会问一延伸二.以下我先提出几点重点,是面试官基本必问的问题,请一定要去了解! 基础知识 – 四大组件(生命周期, ...

  8. c++ 面试整理

    1. 继承方式 public    父类的访问级别不变 protected    父类的public成员在派生类编程protected,其余的不变 private        父类的所有成员变成pr ...

  9. [转帖]c++ 面试整理

    1. 继承方式 public    父类的访问级别不变 protected    父类的public成员在派生类编程protected,其余的不变 private        父类的所有成员变成pr ...

随机推荐

  1. element-ui 开发备忘

    目录 购物清单的数据结构说明 1. <el-radio> 的 label 属性 2. 在 <el-table> 中放入表单组件 3. 表单验证时填写正确的 prop 属性 总结 ...

  2. elasticsearch迁移数据到新索引中

    因为业务原因,需要修改索引的映射的某个字段的类型,比如更改Text为Keyword. 需要如下步骤: 1).先新建索引,映射最新的映射实体 2).迁移老索引的数据到新索引中(数据较大的话,可以分批迁移 ...

  3. [IOT] - Raspberry Pi 4 Model B 系统初始化,Docker CE + .Net Core 开发环境配置

    本教程为在 Docker 中配置 .Net Core,如果想在树莓派 Raspbian 系统中配置 .Net Core,请参考:[IOT] - 在树莓派的 Raspbian 系统中安装 .Net Co ...

  4. Implementing Azure AD Single Sign-Out in ASP.NET Core(转载)

    Let's start with a scenario. Bob the user has logged in to your ASP.NET Core application through Azu ...

  5. .NET CORE webapi epplus 导入导出 (实习第一个月的笔记)

    最近有个需求就是网页表格里面的数据导出到excel  于是从各位前辈的博客园搜了搜demo  大部分非为两类 都是用的插件NPOI和Eppluse ,因此在这里就介绍Eppluse 用法,还有就是在博 ...

  6. 微信小程序和asp.net core基于docker和nginx的交互

    这个文章的题目起的比较长,我想实现这样一个产品: 前端是微信小程序,后端是基于docker运行的asp.net core webapi.webapi通过nginx实现的反向代理接入,nginx同样基于 ...

  7. 分布式图片服务器FastDFS

    1. 什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统.FastDFS 为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使 ...

  8. 常用模块 - hashlib模块

    一.简介 Python的hashlib提供了常见的摘要算法,如MD5.SHA1.SHA224.SHA256.SHA384.SHA512等算法. 什么是摘要算法呢?摘要算法又称哈希算法.散列算法.它通过 ...

  9. Java 数组(二)基本操作

    一.数组的基本操作 1.数组遍历[重点] 数组遍历:就是将数组中的每个元素分别获取出来,就是遍历.遍历也是数组操作中的基石.  方式一:使用索引下标方式 int[] array = { 15, 25, ...

  10. Java 之 Random 类

    一.Random 类  random 类的实例用于生成伪随机数. Demo: Random r = new Random(); int i = r.nextInt(); 二.Random 使用步骤 1 ...