标签: android-monkey

如何使用android.intent.category过滤猴子要测试的特定活动?

我正在尝试使用猴子练习工具来强调测试我的Android应用程序.

默认情况下,该工具将执行具有类别Intent.CATEGORY_LAUNCHERIntent.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 monkey android-intent android-monkey

13
推荐指数
1
解决办法
2217
查看次数

Android Exerciser Monkey随机开始播放音频文件

我正在运行练习猴测试我的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

11
推荐指数
2
解决办法
1825
查看次数

Android Monkey:"没有发现任何活动,猴子流产"

我的包名为com.mywebsite.banana.

  • 我想要种子,所以测试是可重复的:-s 13
  • 我希望有一个相当低级别的冗长:-v
  • 我想运行500 psuedo-random命令:500

我这样叫猴子:

adb shell monkey -s 13 -p com.mywebsite.banana -v 500
Run Code Online (Sandbox Code Playgroud)

我的输出:

:Monkey: seed=13 count=500
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
No activities found to run, monkey aborted
Run Code Online (Sandbox Code Playgroud)

我的AndroidManifest.xml中有这个:

<categoy android:name="android.intent.category.LAUNCHER"/>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?在运行猴子之前,我需要在应用程序中添加一些内容吗?主要活动位于com.mywebsite.banana中 - 是传递的正确路径,还是应该一直到这样的活动:com.mywebsite.banana.activityName?

从我所读到的,似乎我正确地做到了这一点:


编辑

尝试1:

adb shell monkey -p com.mywebsite.banana -c intent.CATEGORY_LAUNCHER -v 500
Run Code Online (Sandbox Code Playgroud)

结果1:

:Monkey: seed=13 count=500
:AllowPackage: com.mywebsite.banana
:IncludeCategory: intent.CATEGORY_LAUNCHER  
// Warning: no activities found for category intent.CATEGORY_LAUNCHER
** No activities found to run, monkey aborted
Run Code Online (Sandbox Code Playgroud)

尝试2:

adb …
Run Code Online (Sandbox Code Playgroud)

android android-monkey

10
推荐指数
1
解决办法
9015
查看次数

猴子在android模拟器上给出一个奇怪的错误

我使用以下指令让猴子在我的应用程序上运行(通过android模拟器):

Monkey -p <packagename> -v 5000

我收到以下错误:

01-28 11:45:55.392: ERROR/MediaPlayerService(34):   error: -2
01-28 11:45:55.392: ERROR/MediaPlayer(58): Unable to to create media player
01-28 11:45:58.783: ERROR/MediaPlayerService(34):   error: -2
01-28 11:45:58.783: ERROR/MediaPlayer(58): Unable to to create media player
01-28 11:46:13.742: ERROR/MediaPlayerService(34):   error: -2
01-28 11:46:13.752: ERROR/MediaPlayer(58): Unable to to create media player
Run Code Online (Sandbox Code Playgroud)

这种情况每隔几秒就会一次又一次地发生,并且是唯一发生的错误.这很奇怪,因为我的应用程序根本没有触及任何媒体播放器功能.这是一个简单的笔记/待办事项应用程序.任何洞察猴子触摸的是什么导致错误以及我能做些什么来防止它?

或者可以安全地忽略它吗?

谢谢!

编辑: 我想我找到了问题的根源.显然,猴子设法将我的键盘放入某种亚洲语言中.每当在下面的软键盘图像中按下左下键(两个亚洲字符)时.我收到了媒体播放器错误.有谁知道这把钥匙做什么? 为什么猴子! 为什么!?!?

testing android monkey android-emulator android-monkey

7
推荐指数
1
解决办法
756
查看次数

允许拒绝猴子整合

我尝试将猴子集成到我的APP中,而以下错误总是会出现:

10-13 09:16:24.682: INFO/System.out(274): :Monkey: seed=0 count=500...
10-13 09:16:24.682: INFO/System.out(274): :Monkey: seed=0 count=500...
10-13 09:16:24.704: INFO/System.out(274): :AllowPackage: org.example.tabdemo...
10-13 09:16:24.712: INFO/System.out(274): AllowPackage: org.example.tabdemo...
10-13 09:16:24.723: INFO/System.out(274): :IncludeCategory:   android.intent.category.LAUNCHER...
10-13 09:16:24.762: INFO/System.out(274): IncludeCategory: android.intent.category.LAUNCHER...
10-13 09:16:24.773: INFO/System.out(274): :IncludeCategory: android.intent.category.MONKEYER...
10-13 09:16:24.783: INFO/System.out(274): IncludeCategory: android.intent.category.MONKEYER...
10-13 09:16:24.872: WARN/ActivityManager(58): Permission Denial:   setActivityController() from pid=290, uid=10036 requires android.permission.SET_ACTIVITY_WATCHER
10-13 09:16:24.903: DEBUG/AndroidRuntime(290): Shutting down VM
10-13 09:16:24.912: WARN/dalvikvm(290): threadid=1: thread exiting with uncaught 

exception (group=0x4001d850)
10-13 09:16:25.112: ERROR/AndroidRuntime(290): *** FATAL EXCEPTION IN SYSTEM PROCESS: main …
Run Code Online (Sandbox Code Playgroud)

android android-manifest android-monkey

7
推荐指数
0
解决办法
802
查看次数

猴子跑步期间改变屏幕方向

我正在使用monkey命令对我的应用程序进行压力测试.但是我希望在屏幕方向上更多地测试它,以便在改变方向时检测并捕获一些堆积更新.我在android官方网站上搜索了关于猴子命令/参数的信息,这些命令/参数将在任何app/activity上运行时进行屏幕方向.但没有运气,想过要问像你这样的专业人士.

如果有这个想法,请告诉我.

android android-monkey

7
推荐指数
1
解决办法
1521
查看次数

Android Monkey导致android.widget.HeaderViewListAdapter中的适配器通知异常

我有一个共同的问题:

java.lang.IllegalStateException: The content of the adapter has changed but List
View did not receive a notification. Make sure the content of your adapter is no
t modified from a background thread, but only from the UI thread. [in ListView(2
131427573, class android.widget.ListView) with Adapter(class android.widget.Head
erViewListAdapter)]
Run Code Online (Sandbox Code Playgroud)

但是适配器不是我的代码,而是在android.widget.HeaderViewListAdapter 使用Jellybean.

我通过对源代码的阅读HeaderViewListAdapter,ListAdapterListView.该IllegalStateException当项目在计数时,抛出ListView不等于所提供的计数ListAdapter.在这种情况下,ListAdapterHeaderViewListAdapter.该HeaderViewListAdaptercount:伯爵是原来的数ListAdapter由客户端代码中传递,再加上页眉和页脚的大小.

我追查了我的代码.所有访问ListView都在UI线程上,并始终跟随notifyDataSetChanged()适配器.我正在使用一个页脚.

在正常使用中不会发生这种情况.是猴子吗?但是Monkey如何从其他线程修改我的变量?

  • 更多Monkey测试后更新

我通过删除呼叫删除了页脚addFooterView() …

android android-monkey

5
推荐指数
1
解决办法
2197
查看次数

Android Test Monkey - 设置详细程度?

从命令行运行Test Monkey时如何更改详细级别?

这两个命令有效:

adb shell monkey -p com.my.package 5000
adb shell monkey -p com.my.package -v 5000
Run Code Online (Sandbox Code Playgroud)

开发人员文档说,"命令行上的每个-v都会增加详细级别.级别0(默认值)提供的信息几乎不包括启动通知,测试完成和最终结果.级别1提供有关测试运行的更多详细信息,例如发送到您的活动的个别事件.第2级提供更详细的设置信息,例如选择或未选择用于测试的活动.

但是,当我尝试adb shell monkey -p com.my.package -v -v 5000我得到一个segmentation fault monkey -p com.my....

我试过adb shell monkey -p com.my.package -v 2 5000,但是猴子读的2是计数,而不是值-v.

救命?:)

testing android unit-testing monkey android-monkey

3
推荐指数
1
解决办法
2988
查看次数