我开发了一个应用程序,并一直使用Monkey来测试它.
我的应用程序有一个主屏幕和一个打开首选项屏幕的菜单选项.我已经意识到的一件事是,一旦猴子打开我的偏好屏幕,它往往会在偏好活动中保持很长时间.它退出的唯一时间是它重新启动我的整个活动,一旦它进入首选项活动,它就会再次停留在那里,大力测试我的偏好活动而不会退出它.
这导致我的偏好活动从猴子完全锻炼,但我的主要活动没有得到它的太多关注.我知道猴子的行为是完全随机的,但可能是因为我的偏好活动有问题吗?来自猴子的重复测试表明这种行为是一致的.
以下是我的偏好活动的代码:
public class MyPreferences extends PreferenceActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.my_preference);
}
}
@H_502_13@
而我的宣言:
哦,我用以下代码运行猴子:
adb shell monkey -p com.myapp.android.testapp -v 100000
最佳答案
您的PreferenceActivity可能只有一条路径 – BACK按钮.因此,在Monkey碰巧碰到BACK按钮之前,Monkey会测试你的PreferenceActivity.
解决此问题的一种方法是将CATEGORY_MONKEY添加到您要测试的主要活动中(除了您的CATEGORY_LAUNCHER之外),并不时使用the -c
switch.这将使Monkey保持在您选择的活动中.只需将该类别从PreferenceActivity中删除即可.
您可以尝试增加–pct-syskeys,这将增加BACK被按下的几率,但这会影响您的所有活动,而不仅仅是您的PreferenceActivity.