Android:从设备/应用程序启动设备测试

Android:从设备/应用程序启动设备测试,android,shell,testing,device,instrumentation,Android,Shell,Testing,Device,Instrumentation,我想从物理设备开始在我的物理设备上用浓缩咖啡进行仪器测试 想法如下:我的公司有一个应用程序的白标签解决方案,所以我们有很多应用程序要放在Play Store中。为了支持我们的支持团队,我编写了一个测试,可以对应用程序的几个部分进行截图,所以他们不必每次都这样做 问题:如果没有安装android sdk、打开终端等,他们无法启动“screenshot maker测试” 从我的观点来看,最好的解决方案是实现一个隐藏在应用程序中的秘密按钮,该按钮在按下后启动测试。这可能吗 我在我的计算机终端上尝试了以

我想从物理设备开始在我的物理设备上用浓缩咖啡进行仪器测试

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

问题:如果没有安装android sdk、打开终端等,他们无法启动“screenshot maker测试”

从我的观点来看,最好的解决方案是实现一个隐藏在应用程序中的秘密按钮,该按钮在按下后启动测试。这可能吗

我在我的计算机终端上尝试了以下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:权限拒绝:startInstrumentation请求以用户-2的身份运行,但从用户0调用;这需要android.permission.interaction\u跨用户\u完整

我是否必须根设备才能实现某些功能?还是说不生根就有可能


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

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

  • 设备已根化
  • 您的应用程序使用与另一个具有“跨用户交互”完全权限的应用程序相同的密钥进行签名
  • 您的应用程序已使用平台密钥签名
如果您想从应用程序本身获取应用程序的屏幕截图,我认为除了通过adb命令之外,还有其他方法可以实现这一点。您可以通过编程方式浏览应用程序中的屏幕并截图

见: