如何在针对它们运行自动化测试时检测到Android中的应用程序崩溃?

时间:2015-07-11 17:20:10

标签: android appium crash

我使用Appium自动化和测试移动应用程序。应用程序会因为其中的错误而崩溃,然后测试失败。测试失败可能是由于许多原因造成的,但是应该在测试报告中正确识别并报告因应用程序崩溃而导致的失败。我想知道是否有任何方法可以自动检测应用程序崩溃。

2 个答案:

答案 0 :(得分:3)

使用Appium java-client,你可以使用android驱动程序方法currentActivity() 这会告诉您当前设备上最活跃的活动。如果应用程序崩溃,则currentActivity将不会从您的应用程序返回任何活动。

Javadoc:http://appium.github.io/java-client/io/appium/java_client/android/AndroidDriver.html#currentActivity()

示例代码:

String activity = driver.currentActivity();
if (!activity.equals("com.myapp.myactivity")){
    log("App crashed!");
}

您可以将此检查放在测试失败时调用的测试观察器中。这样,您可以记录更多详细信息并突出显示潜在的崩溃。如果您使用的是jUnit,则可以使用http://junit.org/apidocs/org/junit/rules/TestWatcher.html

答案 1 :(得分:2)

您可以编写一个小代码来连续(或间隔)从设备捕获logcat。过滤掉与您的应用相关的logcat中的异常和失败的关键字。如果检测到crash关键字,那么您可以获取整个logcat的副本并将其与测试报告一起附加。如果你非常了解java,那么这个策略实现起来应该不是很复杂。