例如,我想从本教程中执行以下命令:
$ adb shell monkey -p your.package.name -v 500
Run Code Online (Sandbox Code Playgroud)
我该怎么做?我在哪里输入命令?我已经尝试将它输入终端,但它说"$"无法识别.
我也尝试删除'$'但它然后说''adb'不被识别为内部或外部命令,可操作程序或批处理文件."
我在我的应用程序上运行了训练猴,出于某些奇怪的原因,我的应用程序被喵喵叫!我的项目中根本没有声音文件,所以我有点困惑为什么播放"喵"声.这里有任何解释吗?
在我正在为此项目使用的包中也没有其他项目/文件.
这是终端所说的:
:Monkey: seed=0 count=1000
:AllowPackage: around.lowell
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
// Event percentages:
// 0: 15.0%
// 1: 10.0%
// 2: 15.0%
// 3: 25.0%
// 4: 15.0%
// 5: 2.0%
// 6: 2.0%
// 7: 1.0%
// 8: 15.0%
:Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=around.lowell/.Main;end
// Allowing start of Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=around.lowell/.Main } in package around.lowell
:Sending Pointer ACTION_MOVE x=-4.0 y=2.0
:Sending Pointer ACTION_UP x=0.0 y=0.0
// Allowing start of Intent { cmp=around.lowell/.MainSelect } in package around.lowell
// Allowing …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用猴子练习工具来强调测试我的Android应用程序.
默认情况下,该工具将执行具有类别Intent.CATEGORY_LAUNCHER或 Intent.CATEGORY_MONKEY根据文档的活动.
package="my.android"
<activity android:name=".activities.MyApp">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:name=".activities.MyScreen">
<intent-filter>
<category android:name="android.intent.category.MONKEY"/>
</intent-filter>
</activity>
<activity android:name=".activities.MySettings"/>
Run Code Online (Sandbox Code Playgroud)
我不想让 Monkey设置MySettings.
在我的实际情况中,这是因为该活动进行了注销.因此,在注销后,无法登录以便继续测试其余的屏幕,这是测试的全部概念.
./adb shell monkey -p my.android -v 500
:Monkey: seed=0 count=500
:AllowPackage: my.android
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
..
// Allowing start of Intent { cmp=my.android/.activities.MySettings} in package my.android
..
Run Code Online (Sandbox Code Playgroud)
它应该拒绝而不是允许我猜.任何想法如何避免猴子进入我不想要的活动?
我想使用android的猴子进行压力测试我的应用程序,但猴子打开状态栏并更改我的手机上的设置.
要开始猴子,我使用:
adb -s S5660a19e722f shell monkey -p com.lmmx.app -v -v -v 10000 --throttle 500
Run Code Online (Sandbox Code Playgroud)
我认为该-p com.lmmx.app参数必须防止这种情况......我使用2.3.5和2.3.6手机进行测试.
任何建议,将不胜感激.
我正在为软件测试目的扩展monkey,所以我想在模拟器中替换我自己编译的monkey.jar的当前monkey.jar.当前的monkey.jar位于/system/framework/monkey.jar.
当我尝试运行以下命令时:
adb push monkey.jar /system/framework/monkey.jar
Run Code Online (Sandbox Code Playgroud)
我得到以下内容:'未能将'monkey.jar'复制到'/system/framework/monkey.jar':内存不足'
关于如何替换当前monkey.jar的任何想法?
如果我在模拟器中运行Android 1.6,这实际上有效,但之后没有任何内容.是的,我试过'abd remount'
编辑:这不是.jar特定问题.我无法将任何类型的文件推送到/ system/framework
谢谢.
我正在运行练习猴测试我的Android应用程序.作为我的应用程序的一部分,我播放媒体文件,提供单词的发音.我把这些文件放在Android的音乐播放器无法读取的目录中.然而,锻炼者猴子抛出一些似乎激活音乐播放器的事件序列,然后在测试期间重复播放另一个mp3文件(不是来自我的应用程序)的开头.它是如何做到的,这是我应该关注的事情吗?
附加信息:即使我在我的应用程序中禁用MediaPlayer,问题仍然存在.FWIW,这里是训练者猴子的一系列输出,直到产生声音的命令(最后一个):
// Rejecting start of Intent { act=android.intent.action.VIEW dat=http://www.myurl.com/ cmp=com.android.browser/.BrowserActivity } in package com.android.browser
:Sending Pointer ACTION_DOWN x=437.0 y=183.0
:Sending Pointer ACTION_UP x=450.0 y=158.0
:Sending Pointer ACTION_DOWN x=5.0 y=58.0
:Sending Pointer ACTION_UP x=-4.0 y=58.0
:Sending Pointer ACTION_MOVE x=2.0 y=-2.0 <=== sound generated from this one
Run Code Online (Sandbox Code Playgroud)
这是问题出现时logcat的输出:
I/AudioService( 101): AudioFocus requestAudioFocus() from android.media.AudioManager@40518af0com.android.music.MediaPlaybackService$3@405218f8
I/AudioService( 101): Remote Control registerMediaButtonEventReceiver() for ComponentInfo{com.google.android.music/com.android.music.MediaButtonIntentReceiver}
W/AudioFlinger( 68): write blocked for 159 msecs, 26 delayed writes, thread 0xea00
D/AudioHardwareQSD( 68): AudioHardware pcm playback is going to …Run Code Online (Sandbox Code Playgroud) android audio-player monkey android-music-player android-monkey android-mediaplayer
你如何使用monkey和monkeyrunner工具进行Android测试?
需要什么基本命令?
我尝试通过monkey runner命令提示符执行示例python程序,它抛出一个错误
Can't open specified script file
Usage: monkeyrunner [options] SCRIPT_FILE
-s MonkeyServer IP Address.
-p MonkeyServer TCP Port.
-v MonkeyServer Logging level (ALL, FINEST, FINER, FINE, CONFIG, INFO,
WARNING, SEVERE, OFF)
Run Code Online (Sandbox Code Playgroud)
线程"main"java.lang.NullPointerException中的异常,因此任何人都可以指导我如何解决这个问题
猴子测试我的应用程序
% adb shell monkey -p com.foo.bar --throttle 1000 -v 14400
Run Code Online (Sandbox Code Playgroud)
我注意到它可以访问我的设备上的各种系统设置,如音频控制和拍摄屏幕截图.根据http://developer.android.com/tools/help/monkey.html,这就是它的表现方式.
Monkey是一个在您的模拟器或设备上运行的程序,可生成用户事件的伪随机流,例如点击,触摸或手势,以及许多系统级事件.
是否可以排除系统级事件,以便猴子完全专注于我的目标应用程序?
我查看了'-c'选项的约束,但是查看http://developer.android.com/reference/android/content/Intent.html上可用的Intents ,我似乎没有看到任何与禁用相关的内容这样的系统级事件.
有什么指针吗?
当使用MONKEY测试我们的应用程序时,我们发现了一个棘手的ANR问题.
CPU和内存使用处于正常水平.
似乎ANR是由一个由MONKEY伪造的Timeout KeyEvent发送到我们应用程序的Activity.以下是日志的一部分:
“
ANR:
Time: 2016-12-29 15:36:08
Window: AppWindowToken{56a48d3 token=Token{abb12c2 ActivityRecord{cb0230d u0 <our app’s activity> t34}}} - Window{40c381a u0 <our app’s activity>}
DispatchLatency: 5005.0ms
WaitDuration: 5003.6ms
Reason: Waiting to send key event because the focused window has not finished processing all of the input events that were previously delivered to it. Outbound queue length: 0. Wait queue length: 1.
ANR:
11: channelName='40c381a <our app’s activity> (server)', windowName='Window{40c381a u0 <our app’s activity>', status=NORMAL, monitor=false, inputPublisherBlocked=false
OutboundQueue: <empty>
WaitQueue: length=1 …Run Code Online (Sandbox Code Playgroud)