【问题标题】:How to test if the app has crashed from a monkeyrunner script?如何测试应用程序是否从 monkeyrunner 脚本中崩溃?
【发布时间】:2021-03-02 12:53:43
【问题描述】:

我使用 Android monkeyrunner 工具来测试我的应用,其中的脚本主要是教程中的脚本:

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice

device = MonkeyRunner.waitForConnection()
device.installPackage('the-app.apk')
device.startActivity(component="package.app.the/package.app.the.Main")

# then pilot the app

在此脚本结束时,我想测试应用程序是否仍在运行或是否已崩溃(即显示“应用程序已停止”消息)。

我试过get the info by checking the PID of the app

pid = device.shell('pidof package.app.the')

不幸的是,此命令返回了一个有效的 pid。我以为是因为我检查得太早了,所以我试图在它前面放一个MonkeyRunner.sleep(10)。结果是一样的,似乎应用程序还在运行,同时显示“应用程序已停止”弹出窗口。

我也尝试解析device.shell('ps -A')的输出,但结果是一样的:应用程序正在运行。

然后我尝试使用device.press("BACK", MonkeyDevice.DOWN_AND_UP) 发送关键事件以试图关闭“应用程序已停止”对话框,但对话框仍然存在。

现在我没有主意了。如何测试应用是否从脚本中崩溃?

【问题讨论】:

  • 下面的答案能帮助您解决问题吗?

标签: android adb monkeyrunner


【解决方案1】:

由于您使用的是 Python,我的建议是使用 AndroidViewClient 并自动检测包含“应用程序已停止”对话框的字符串 id 的过程。一个例子可能是这个one

例如,“应用程序已停止”文本视图的资源 ID 为 android:id/alertTitle,而按钮(“再次打开应用程序”)的资源 ID 为 android:id/aerr_restart

【讨论】:

猜你喜欢
  • 2016-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多