2017-05-19 3 views
0

J'ai un problème avec mes tests d'interface utilisateur automatisés utilisant la batterie de périphériques AWS. J'ai essayé de créer un nouveau test UIAutomator 2. Cela fonctionne très bien sur mon appareil et ma machine de développement. Non J'ai créé un nouveau test dans la batterie de périphériques AWS pour exécuter ce test sur tous les autres périphériques en créant une capture d'écran. Le problème ici semble être de prendre les captures d'écran. Avec Automator 2, je prends mes captures d'écran en utilisant la méthode UIDevie.takeScreenshot de frameworks automator. Cette méthode prend un File comme paramètre.TakeScreenshot avec AWS Device Farm et UIAutomator 2

Comme décrit dans AWS documentation j'ai essayé de stocker le fichier en utilisant le dossier /sdcard/ ainsi que Environment.getExternalStorageDirectory(). Aucun de ces répertoires ne semble fonctionner.

Avec Environment.getExternalStorageDirectory() je reçois le journal suivant:

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

En utilisant /sdcard/ je reçois le journal suivant:

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

J'utilise également l'implémentation de référence suivante: 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

Répondre

0

Il ne semble pas être un problème en ce qui concerne le nouveau système d'autorisation à partir 6.x Android où un utilisateur doit accepter les autorisations critiques directement. Pour les tests, il existe une solution où vous pouvez accepter les autorisations (comme WRITE_EXTERNAL_STORAGE) en utilisant la commande shell adb:

How to manage Runtime permissions android marshmallow espresso tests