标签: monkey

猴子在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
查看次数

如何使用android猴子

我对如何实际使用有点困惑monkey,我以为你应该打开你的模拟器并进入终端编辑器并键入:

$ adb shell monkey -p insert.my.package.name.here -v 500
Run Code Online (Sandbox Code Playgroud)

因为那不起作用(错误,adb: permission denied)

我试过monkey -p insert.blah.blah -v 500,这就是它被杀了,我做错了什么?

shell android adb monkey

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

仅在子活动中使用Monkey(android调试)

我正在尝试使用Monkey debuggin工具(来自adb)对我的应用程序的一部分进行压力测试.由于Monkey以完全随机的方式运行,我希望它专注于可能包含我正在寻找的错误的代码部分(非常罕见的错误,我不知道如何复制它).

因此,在我的主要活动中,我有6个按钮,每个按钮都会激活一个新活动.我想将猴子设置为只查看其中一个活动,并且每个活动都可以从中查看.我找不到合理的方法来做到这一点.

我已经尝试了
adb shell monkey -p my.package.name -c android.intent.category.MONKEY 1000
并且在我的清单文件中我已经进行了一些我感兴趣的活动:

        <intent-filter>
            <category android:name="android.intent.category.MONKEY"/>                
        </intent-filter>
Run Code Online (Sandbox Code Playgroud)

但它没有用.Monkey仍然会激活未按此标记分类的活动.猴子在选定的子活动中工作至关重要,因为在我实际想要测试的子活动之外,它浪费了大约95%的时间在我的应用程序中漫游.

此外,我尝试了一些简单的脚本来启动所需的子活动,但没有成功.

寻找任何帮助,
欢呼,
kajman

android intentfilter categories subactivity monkey

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

Android:你如何模仿键盘翻转?

在使用Monkey调试我的应用程序时(这几乎和真实一样有趣),我设法崩溃了!是的,这就是它的用途,对吗?

看着日志(和观看时)我注意到猴子偶尔会这样做:

:Sending Flip keyboardOpen=true
Run Code Online (Sandbox Code Playgroud)

这似乎是我问题的一部分.发生这种情况时,模拟器中的屏幕旋转90度,但这与通过按KEYPAD_7获得的常规旋转不同.这是一张图片:

不寻常的屏幕方向

在我看来,模拟器正在模拟键盘开口(翻转),这与旋转略有不同.

所以问题是:我如何模仿自己?当然,运行Monkey很整洁,但是等待它随机选择发送一个keyboardOpen消息是无法调试程序的.

keyboard android emulation flip monkey

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

关于匿名类的一个ClassCastException(java)

现在我得到一些如下的日志(log-1)

java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to ClassA$1
at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1010)
...
Run Code Online (Sandbox Code Playgroud)


1010行

final LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) obj.method();//line 1010
Run Code Online (Sandbox Code Playgroud)


我想,日志应该是这样的(log-2)

java.lang.ClassCastException: ClassA$1 cannot be cast to android.widget.LinearLayout$LayoutParams
Run Code Online (Sandbox Code Playgroud)

我想知道为什么我会得到log-1,是不是?
如果log-1是正确的,那么我如何编写代码来创建这样的异常?

ps:我知道ClassA $ 1是一个匿名类.
ps:我在猴子测试中得到了这个日志,而且很难重新出现

有人告诉我:

MyInterface my = ClassA$1;//$1 is an anonymous class which implements MyInterface
my.getClass().cast(lp);
Run Code Online (Sandbox Code Playgroud)

那么日志就像log-1
但为什么日志没有指出"cast"方法行?
我检查文件夹框架/ base/core,没有人调用方法"?java.lang.Class.cast(Object obj)"的
任何想法?

java android anonymous-class classcastexception monkey

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

如何在猴子测试期间避免锁屏事件

我正在运行猴子测试,我面临锁屏问题.

我尝试使用默认命令运行测试,如下所示

"monkey -p com.xyz -v 1500000 -s 10000 --throttle 15000"

测试开始很好,但最终锁定屏幕,从而无法解锁,因为我有字母数字密钥代码作为密码,很难通过猴子的随机事件猜测.我只想让猴子只在应用程序上运行并完全忽略锁屏事件

我正在启用永远不要从设置中进入睡眠状态,如果我可以避免猴子停止按电源键,请告诉我.

android monkey lockscreen

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

如何防止Monkey测试打开通知面板并关闭wifi?

我在我的Android应用程序上执行Monkey测试.在执行事件时,Monkey会关闭通知面板并单击wifi /移动数据图标,从而将其关闭.

我正在使用此命令:adb shell monkey -p package_name --throttle 100 -s 999 -v 50000

我已经尝试了这里给出的所有选项:https://developer.android.com/studio/test/monkey.html

有没有办法阻止Monkey测试打开通知面板?

android automated-tests monkey-testing monkey

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

为什么gevent.socket破坏multiprocessing.connection的身份验证

我有一个应用程序,同时使用grequestsmultiprocessing.managers用于IPC通信和异步通信的RESTful HTTP上的组合。

似乎grequests在使用gevent.monkeypatch_all()方法中,破坏multiprocessing.connectionmultiprocessing.manager.SyncManager类及其派生类使用的模块。

这显然不是一个孤立的问题,而是影响任何使用情况下实现multiprocessing.connetion,比如multiprocessing.pool,例如。

深入研究中的代码gevent/monkey.py,我发现与stdlib socket模块的交换gevent.socket是造成损坏的原因。可以在gevent/monkey.py以下patch_socket()功能的第115行找到:

def patch_socket(dns=True, aggressive=True):
    """Replace the standard socket object with gevent's cooperative sockets.
    ...
    _socket.socket = socket.socket # This line breaks multiprocessing.connection!
    ...
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么此交换中断multiprocessing.connection,并且使用gevent.socket代替stdlib的socket模块有什么优势?也就是说,不修补socket模块会导致什么性能损失(如果有)?

追溯

Traceback (most recent call last):
  File "clientWithGeventMonkeyPatch.py", line 49, in <module>
    client = GetClient(host, port, …
Run Code Online (Sandbox Code Playgroud)

python connection multiprocessing monkey gevent

4
推荐指数
1
解决办法
1923
查看次数

测试Android应用程序 - 猴子中止

我正在尝试使用猴子测试一些Android应用程序.但是使用Monkey进行测试已经证明并不总是如此直观,因为它不像人们所期望的那样开箱即用.我甚至读过其他一些类似问题的人,尽管这些评论没有明确解决问题.

因此,为了运行Monkey,我将LAUNCHER包含在AndroidManifest.xml中:

<intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

事实上,当我使用Android文档源中的一个示例时,将LunarLander作为项目名称,我尝试了命令的所有可能组合,但是徒劳:

$ cd /home/user
$ adb shell monkey -p LunarLander -v 3
$ adb shell monkey -p lunarlander -v 3
$ adb shell monkey -p "LunarLander" -v 3
$ adb shell monkey -p "lunarlander" -v 3
Run Code Online (Sandbox Code Playgroud)

然后,我还将MONKEY包含在AndroidManifest中:

<intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <category android:name="android.intent.category.MONKEY" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

在命令行中我再次尝试:

$ adb shell monkey -p lunarlander -v 3
:Monkey: seed=1398534940718 count=3
:AllowPackage: LunarLander
:IncludeCategory: android.intent.category.LAUNCHER
:IncludeCategory: android.intent.category.MONKEY
** No …
Run Code Online (Sandbox Code Playgroud)

java xml testing android monkey

4
推荐指数
1
解决办法
1596
查看次数

重现 Android Monkey 脚本

我运行了 Monkey 工具(在 Android 应用程序上执行压力测试的工具),我得到了一些具有以下形式的脚本文件:

type= raw events
count= -1
speed= 1.0
start data >>
LaunchActivity(com.amaze.filemanager,com.amaze.filemanager.activities.MainActivity)
DispatchPointer(6934862,6934862,0,517.0,124.0,0.0,0.0,0,1.0,1.0,0,0)
DispatchPointer(6934862,6934867,1,520.041,127.07279,0.0,0.0,0,1.0,1.0,0,0)
GUIGen(3)
DispatchTrackball(-1,6945789,2,1.0,-3.0,0.0,0.0,0,1.0,1.0,0,0)
...
Run Code Online (Sandbox Code Playgroud)

我想使用生成的脚本再次重新执行这样的事件序列。我怎样才能做到这一点?

android monkey

4
推荐指数
1
解决办法
1130
查看次数