【问题标题】:Android : Launch test on device FROM device/applicationAndroid:在设备上从设备/应用程序启动测试
【发布时间】:2014-07-22 08:28:22
【问题描述】:

我想在我的物理设备物理设备上开始使用 espresso 编写的仪器测试。

想法如下:我的公司有一个应用程序的白标解决方案,因此我们有很多应用程序可以放入 Play 商店。为了支持我们的支持团队,我编写了一个测试,对应用程序的几个部分进行截图,因此他们不必每次都这样做。

问题:如果没有安装 android sdk、终端打开等,他们无法启动“屏幕截图制作测试”。

从我的角度来看,最好的解决方案是实现一个隐藏在应用程序中的秘密按钮,按下它后开始测试。这可能吗?

我从我的计算机终端尝试了以下 shell 命令,它成功了:

adb shell 
am instrument -w -e class com.my.company.ScreenshotTests com.my.company.tests/com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner

但是当我在设备上使用 Android Terminal Emulator 应用程序运行该命令时,它会引发 SecurityException: Permission Denial: startInstrumentation 要求以用户 -2 身份运行,但从用户 0 调用;这需要 android.permission.INTERACT_ACROSS_USERS_FULL。

我是否必须根设备才能实现某些目标?或者在没有root的情况下有可能吗?

如果无法从应用程序启动测试,那么从脚本或其他东西启动它也会有所帮助。基本上,支持团队只需单击一个按钮,然后自动截取屏幕截图。有什么想法吗?

【问题讨论】:

    标签: android shell testing device instrumentation


    【解决方案1】:

    除非满足以下任何条件,否则您将无法从设备本身运行此命令:

    • 设备已植根
    • 您的应用使用与另一个具有 INTERACT_ACROSS_USERS_FULL 权限的应用相同的密钥进行签名
    • 您的应用使用平台密钥签名

    如果您想从应用程序本身截取应用程序的屏幕截图,我认为除了通过 adb 命令之外还有其他方法可以完成此操作。您可以以编程方式浏览应用中的屏幕并截取屏幕截图。

    见:How to programmatically take a screenshot in Android?

    【讨论】:

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