利用monkey测试android,入门级用户可能遇见的错误及解决办法 【转】
转自【http://blog.csdn.net/zm2714/article/details/7977930】
一、D:\android\android-sdk-windows\tools目录中没有adb.exe
检查一下你的android-sdk-windows目录下有没有platform-tools目录。并检查访目录下是否有adb.exe
二、在cmd中执行“adb shell”,则提示“error: device not found”
没有发现设备。如果用手机设备测试,请用USB数据线与电脑连接,同时并安装好手机驱动;如果你采用模拟器测试,你应该先启动eclipse,然后设置好模拟器,并进入模拟器测试状态,如下图所示
三、执行“adb shell”,提示“error: more than one device and emulator”
第一种情况:确实用多个设备或者模拟器
错误说明是有一个以上的设备和仿真器。这是因为我启用了模拟器,同时我也将我的手机通过USB线连接到了电脑。所以这里存在两个设备。这种情况下,需要指定连接某一个设备或者模拟器。
1、获取模拟器或设备列表
命令:adb devices
效果如下图所示:
2、指定device来执行adb shell
命令:adb -s devicename shell
在多个device的时候,执行adb命令一般都需要用参数-s指定device。
例如卸载emulator-5554上的包com.soft.camera,命令如下
adb -s emulator-5554 uninstall com.soft.camera
例如通过monkey测试
adb -s emulator-5554 shell monkey -v -p your.www.com 500
第二种情况:确实有一个设备或者模拟器
之所以显示有多个,是因为此设备用过两次。使用命令 adb devices 会看到这个设备有两种状:offline 和 device,有以下两种解决办法:
1、重启adb.exe服务
一般办法:在命令窗口输入 adb start-server 重新启动adb.exe服务
2、终极方法,结束adb进程
如果上述方法不可以,终极方法:打开任务栏,选择“进程”选项卡,找到adb.exe进程,结束之,重新启动就完事OK啦(或者在命令窗口输入命令
adb kill-server )
四、在手机上通过monkey测试
在cmd中输入:adb -s HT21JV204550 shell monkey -v -p your.www.com 500
出现:No activities found to run, monkey aborted.
原因:起初我是通过模拟环境测试,Eclipse设置如下:
通过手机测试,应该将“Target”选项卡中由原来的“Automatic”项改为“Manual”,如下图所示:
然后选择“Target”选项卡的前面一个选项卡“Android”,点击下面的“Run”。执行Run后结果如下:
点击OK,程序会将APK写入手机,这时就可以在cmd中输入命令:adb -s HT21JV204550 shell monkey -v -p your.www.com 500 ,通过在真实手机环境下进行测试了。
五、关于monkey命令简要概述
一、九个事件及百分比控制
1、九个事件
--pct-touch <percent>
调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)(——点击事件,涉及down、up)
--pct-motion <percent>
调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成) (——注:move事件,涉及down、up、move三个事件)
--pct-trackball <percent>
调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)--(轨迹球)
--pct-nav <percent>
调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)
--pct-majornav <percent>
调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)
--pct-syskeys <percent>
调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)
--pct-appswitch <percent>
调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法。(从一个Activity跳转到另一个Activity)
--pct-flip <percent>
调整“键盘翻转”事件的百分比。
--pct-anyevent <percent>
调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等。
红色的数字对应下面百分比对应的数字。比如下图中0:15.0%,表示分配--pct-touch事件15%。测试100次分配15次测试down-up。
2、百分比控制
如果在monkey参数中不指定上述参数,这些动作都是随机分配的,9个动作其每个动作分配的百分比之和为100%,我们可以通过添加命令选项来控制每个事件的百分比,进而可以将操作限制在一定的范围内。
我们先来看一下不加动作百分比控制,系统默认分配事件百分比的情况
命令:adb shell monkey -v -p your.www.com 500
结果:
再看一下指定事件,控制事件百分比之后的情况
命令:adb shell monkey -v -p your.www.com --pct-anyevent 100 500
结果:
说明:--pct-anyevent 100 表明pct-anyevent所代表的事件的百分比为100%。
二、约束限制及确定对应包名
1、约束限制
-p <allowed-package-name>
1个 -p 选项只能用于一个包。指定多个包,需要使用多个
-p 选项
2、确定测试包名
利用monkey测试,通过-p参数确定应用程序在Emulator中所对应的包名。步骤如下:
a、在Eclipse中打开欲测试的项目,并在模拟器中执行。此时,他的APK应该加载到了Emulator(译:仿真器、模拟器)上(
也可以通过命令模式打开模拟器、安装、删除apk
启动模拟器:emulator -avd test test为模拟器名称
安装:adb install c:/xxx.apk
删除:adb uninstall apk的包名
)
b、在命令行输入命令:adb shell
c、应用程序包都在data目录中的data目录下,我们输入命令:cd data/data 进入目标data文件夹,在执行命令:ls,可找到刚才加载项目的应用程序包。如下图所示:
找到对应的包名后,就可以通过monkey命令来进行测试了。例如:adb shell monkey -v -p your.www.com 500
随便说一下,最后的500,表示测试触发500个事件(500个事件要按比例分摊到9个事件当中,如何指定不同的事件比例上面已经说过了)。
如果在事件之间插入延时,使用参数:--throttle 5000 这里的5000为毫秒单位。通过这个选项,可以降低monkey的执行速度;如果不指定该选项,Monkey将不会被延迟,事件将尽可能快的被产生。
-s <seed> 伪随机数生成器的seed值。如果用相同的seed值再次运行monkey,它将生成相同的事件序列,对9个事件分配相同的百分比。
-v 命令行的每一个-v将增加反馈信息的级别。
至于其它的一些参数,就百度一下吧,暂时先写到这里。
六、在monkey测试中常用的命令组合有
1、monkey -p com.yourpackage -v 500 简单的输出测试的信息。
2、monkey -p com.yourpackage -v -v -v 500 以深度为三级输出测试信息。
3、monkey -p com.yourpackage --port 端口号 -v 为测试分配一个专用的端口号,不过这个命令只能输出跳转的信息及有错误时输出信息。
4、monkey -p com.yourpackage -s 数字 -v 500 为随机数的事件序列定一个值,若出现问题下次可以重复同样的系列进行排错。
5、monkey -p com.yourpackage -v --throttle 3000 500 为每一次执行一次有效的事件后休眠3000毫秒。
利用monkey测试android,入门级用户可能遇见的错误及解决办法 【转】的更多相关文章
- android 关于InputDispatcher出现Consumer错误的解决办法
原地址:http://www.educity.cn/wenda/158744.html android 关于InputDispatcher出现Consumer异常的解决方法10-23 03:24:46 ...
- JDK环境变量配置遇见的错误以及解决办法
cmd中输入java -version错误信息: An error has occurred while processing the shared archive file.Unable to un ...
- python文件读取:遇见的错误及解决办法
问题一: TypeError: 'str' object is not callable 产生原因: 该错误TypeError: 'str' object is not callable字面上意思:就 ...
- Android权限管理之Android 6.0运行时权限及解决办法
前言: 今天还是围绕着最近面试的一个热门话题Android 6.0权限适配来总结学习,其实Android 6.0权限适配我们公司是在今年5月份才开始做,算是比较晚的吧,不过现在Android 6.0以 ...
- Android开发:ScrollView嵌套GridView的解决办法
Android开发:ScrollView嵌套GridView的解决办法 前些日子在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便 ...
- ANDROID (eclipse)开发常见问题及解决办法汇总
1.ANDROID 在eclipse中没有出现AVD的解决方法(转)如果android安装正确的话,但是eclipse里面的导航条就是没有AVD 可以通过「Window」⇒「Customize Per ...
- 新版本ADT创建Android项目无法自动生成R文件解决办法
本人使用的是ADT是Version 23.0.2,支持Android 6.0之后的系统环境,最高版本23,在创建Android项目的时候,每次创建项目选择“Compile With”低于6.0版本的时 ...
- monkey测试===Android测试工具Monkey用法简介(转载)
Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey ...
- Android内存泄漏的本质原因、解决办法、操作实例
今年最后一个迭代终于结束了,把过程中碰到的不熟悉的东西拉出来学习总结一下 内存泄漏的本质是:[一个(巨大的)短生命周期对象的引用被一个长生命周期(异步生命周期)的对象持有] 这个东西分为两个部 ...
随机推荐
- 基于拖放布局的 Twitter Bootstrap 网站生成器
简单的几个拖放操作就能做出漂亮的 Twitter Bootstrap 网站?是的,LayoutIt 是一个 Twitter Bootstrap 界面生成器,能够帮助你快速制作出网站和界面模型,同时能够 ...
- RxJava+Retrofit+OkHttp,一步一步封装网络框架;
使用RxJava+Retrofit+OkHttp,首先在build.gradle添加: compile 'com.squareup.okhttp3:okhttp:3.8.1' compile 'com ...
- MySQL库操作,表操作,数据操作。
数据库服务器:本质就是一台计算机,该计算机上安装有数据库管理软件的服务端,供客户端访问使用. 1数据库管理系统RDBMS(本质就是一个C/S架构的套接字),关系型数据库管理系统. 库:(文件夹)- ...
- Python中的线程和进程
引入进程和线程的概念及区别 threading模块提供的类: Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, Timer, l ...
- python 函数传递可变参数的用法
可变参数 在Python函数中,还可以定义可变参数.顾名思义,可变参数就是传入的参数个数是可变的,可以是1个.2个到任意个,还可以是0个. 我们以数学题为例子,给定一组数字a,b,c……,请计算a2 ...
- python、javascript中的不可变对象
比如python中str是不变对象,而list是可变对象,javascript中str也是不变对象,而array是可变对象 python的例子: >>> a = 'abc' > ...
- Java框架相关
问题及答案来源自<Java程序员面试笔试宝典>第五章 Java Web 5.3 框架 11.什么是IoC? IoC:控制反转(Inverse of Control, IoC),有时候也被称 ...
- SQL Server 合并行
select a.*,b.Organization_Name,c.User_Name sgry,c.renNum,d.User_Name fzr,e.pic_url from dbo.TB_ZYM_L ...
- 2.App爬取相关库的安装(安装mitmproxy)
mitmproxy 是一个支持HTTP 和HTTPS 的抓包程序,类似fiddler,Charles的功能(它通过控制台的形式操作). mitmproxy 两个关键的组件:mitmdump 和 mit ...
- hive压缩
1. 常用 rcfile + gzip parquet + snappy 2. 压缩比,参考 TextFile默认格式,加载速度最快,可以采用Gzip进行压缩,压缩后的文件无法split,即并行处理 ...