Android:在设备FROM设备/应用程序上启动测试

时间:2014-06-02 09:04:25

标签: android shell testing device instrumentation

我想在我的物理设备物理设备上开始使用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终端仿真器应用程序的命令时,它会抛出SecurityException:Permission Denial:startInstrumentation要求以用户-2身份运行但是从用户0调用;这需要android.permission.INTERACT_ACROSS_USERS_FULL。

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

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

1 个答案:

答案 0 :(得分:0)

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

  • 设备已植根
  • 您的应用使用与具有INTERACT_ACROSS_USERS_FULL权限的其他应用程序相同的密钥进行签名
  • 您的应用已使用平台密钥签名

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

请参阅:How to programmatically take a screenshot in Android?