使用AWS Device Farm和UIAutomator 2

时间:2017-05-19 16:32:44

标签: android uiautomator android-uiautomator aws-device-farm

我使用AWS设备场进行自动化UI测试时出现问题。我试图创建一个新的UIAutomator 2测试。这在我的设备和我的开发机器上工作正常。

否我在AWS设备场中创建了新的测试运行,以便在创建屏幕截图输出的所有其他设备上运行此测试。这里的问题似乎是截取屏幕截图。

使用Automator 2,我使用automator frameworks UIDevie.takeScreenshot方法截取屏幕截图。此方法将File作为参数。

AWS documentation中所述,我尝试使用/sdcard/文件夹以及Environment.getExternalStorageDirectory()存储文件。这些目录似乎都不起作用。

使用Environment.getExternalStorageDirectory()我收到以下日志:



Error UiAutomatorBridge java.io.FileNotFoundException: /storage/emulated/0/test-screenshots/coupondetail-screen-2.png: open failed: EACCES (Permission denied)




使用/sdcard/我收到以下日志:



Error UiAutomatorBridge java.io.FileNotFoundException: /sdcard/test-screenshots/coupondetail-screen-2.png: open failed: EACCES (Permission denied)




我还使用了以下参考实现: https://github.com/awslabs/aws-device-farm-sample-app-for-android/blob/master/app/src/androidTest/java/com/amazonaws/devicefarm/android/referenceapp/Util/ScreenShot.java

1 个答案:

答案 0 :(得分:0)

从Android 6.x开始,用户需要直接接受关键权限的新权限系统似乎存在问题。对于测试,您可以使用adb shell命令接受权限(例如WRITE_EXTERNAL_STORAGE):

How to manage Runtime permissions android marshmallow espresso tests