在猴子运行期间更改屏幕方向

8
我正在使用猴子命令对我的应用进行一些压力测试。但是我想通过测试屏幕方向来检测和捕获一些堆更新,以便更全面地测试它。我在安卓官方网站上搜索了有关猴子命令/参数的所有内容,这将在运行任何应用程序/活动时进行屏幕方向。但是没有找到相关信息,所以想请像您这样的专业人士帮忙解答。
如果您有任何想法,请告诉我。

你到底想做什么?能简化一下吗? - Chintan Raghwani
使用以下代码更改屏幕方向:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);(横屏)和setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);(竖屏)。 - Parag Ghetiya
我想在运行猴子测试时旋转屏幕方向。有没有办法做到这一点? - msk
3个回答

10

Monkey有许多未记录的选项,包括--pct-rotation。将该开关添加到您的命令中,并观察您的屏幕像被恶魔占据一样旋转:

在adb版本1.0.31及之前的版本:

adb shell monkey -p com.example.app -v --pct-rotation=70 500

自adb版本1.0.32以来:

adb shell monkey -p com.example.app -v --pct-rotation 70 500

查看Monkey命令的processOptions()方法,以查看所有支持的选项:https://android.googlesource.com/platform/development.git/+/master/cmds/monkey/src/com/android/commands/monkey/Monkey.java

查看MonkeySourceRandom类的构造函数,以查看所有事件类型的默认百分比。这些是本文发布时主分支中的当前值。请注意,旋转的默认值为0:

    // default values for random distributions
    // note, these are straight percentages, to match user input (cmd line args)
    // but they will be converted to 0..1 values before the main loop runs.
    mFactors[FACTOR_TOUCH] = 15.0f;
    mFactors[FACTOR_MOTION] = 10.0f;
    mFactors[FACTOR_TRACKBALL] = 15.0f;
    // Adjust the values if we want to enable rotation by default.
    mFactors[FACTOR_ROTATION] = 0.0f;
    mFactors[FACTOR_NAV] = 25.0f;
    mFactors[FACTOR_MAJORNAV] = 15.0f;
    mFactors[FACTOR_SYSOPS] = 2.0f;
    mFactors[FACTOR_APPSWITCH] = 2.0f;
    mFactors[FACTOR_FLIP] = 1.0f;
    mFactors[FACTOR_ANYTHING] = 13.0f;
    mFactors[FACTOR_PINCHZOOM] = 2.0f;

https://android.googlesource.com/platform/development.git/+/master/cmds/monkey/src/com/android/commands/monkey/MonkeySourceRandom.java


5
自 adb 版本 1.0.32 起,--pct-rotation=70 应该写成 --pct-rotation 70 - Tadej

2

测试猴使用随机输入。它会更改屏幕方向,但不能保证在任何一次测试运行中都这样做。


是的,没有办法确保它会选择方向还是不会。我想知道是否可以使用现有的monkey工具或其他方法来实现这一点? - msk
@user1031345:测试猴子使用随机输入。根据定义,您想要的不是随机的。 - CommonsWare
我知道monkey是随机的... 我想要做的就是在屏幕方向改变时找出它,以及随机输入。 - msk
你确定吗?我进行了100000次输入,没有一个是旋转的。 - Mgamerz
@Mgamerz:他们最近可能改变了行为,但是历史上它肯定会旋转屏幕。 - CommonsWare

1
尽管不能保证Monkey在每次运行时都会改变方向,但您可以通过找到一个SEED来使Monkey改变方向,并在以后的运行中重复使用该SEED以达到期望的结果。
# monkey -h
usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...]
              ...
              [-s SEED] [-v [-v] ...]
              ...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接