利用monkey测试android,入门级用户可能遇见的错误及解决办法

本文主要是介绍利用monkey测试android,入门级用户可能遇见的错误及解决办法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、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> 0
调整触摸事件的百分比(触摸事件是一个down-up事件,它发生在屏幕上的某单一位置)(——点击事件,涉及down、up)

--pct-motion <percent> 1
调整动作事件的百分比(动作事件由屏幕上某处的一个down事件、一系列的伪随机事件和一个up事件组成) (——注:move事件,涉及down、up、move三个事件)

--pct-trackball <percent> 2
调整轨迹事件的百分比(轨迹事件由一个或几个随机的移动组成,有时还伴随有点击)--(轨迹球)

--pct-nav <percent> 3
调整“基本”导航事件的百分比(导航事件由来自方向输入设备的up/down/left/right组成)

--pct-majornav <percent> 4
调整“主要”导航事件的百分比(这些导航事件通常引发图形界面中的动作,如:5-way键盘的中间按键、回退按键、菜单按键)

--pct-syskeys <percent> 5
调整“系统”按键事件的百分比(这些按键通常被保留,由系统使用,如Home、Back、Start Call、End Call及音量控制键)

--pct-appswitch <percent> 6
调整启动Activity的百分比。在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法。(从一个Activity跳转到另一个Activity)

--pct-flip <percent> 7
调整“键盘翻转”事件的百分比。

--pct-anyevent <percent> 8
调整其它类型事件的百分比。它包罗了所有其它类型的事件,如:按键、其它不常用的设备按钮、等等。

红色的数字对应下面百分比对应的数字。比如下图中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,入门级用户可能遇见的错误及解决办法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/973519

相关文章

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

android-opencv-jni

//------------------start opencv--------------------@Override public void onResume(){ super.onResume(); //通过OpenCV引擎服务加载并初始化OpenCV类库,所谓OpenCV引擎服务即是 //OpenCV_2.4.3.2_Manager_2.4_*.apk程序包,存

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk

android应用中res目录说明

Android应用的res目录是一个特殊的项目,该项目里存放了Android应用所用的全部资源,包括图片、字符串、颜色、尺寸、样式等,类似于web开发中的public目录,js、css、image、style。。。。 Android按照约定,将不同的资源放在不同的文件夹中,这样可以方便的让AAPT(即Android Asset Packaging Tool , 在SDK的build-tools目