Résolution des problèmes liés aux tests Appium Python dans Device Farm AWS - AWS Device Farm

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Résolution des problèmes liés aux tests Appium Python dans Device Farm AWS

La rubrique suivante répertorie les messages d'erreur qui s'affichent pendant le chargement des tests Appium écrits en Python et propose des solutions pour résoudre chaque erreur.

APPIUM_PYTHON_TEST_PACKAGE_UNZIP_FAILED

Si le message suivant s'affiche, procédez comme suit pour corriger le problème.

Avertissement

Nous n'avons pas pu ouvrir votre fichier de test ZIP Appium. Vérifiez que le fichier est valide et réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, le nom du package est test_bundle.zip.

  1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

    $ unzip test_bundle.zip
  2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé, exécutez la commande suivante :

    $ tree .

    Un package Appium Python valide doit générer une sortie similaire à la suivante :

    . |-- requirements.txt |-- test_bundle.zip |-- tests (directory) | `-- test_unittest.py `-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

    Pour de plus amples informations, veuillez consulter Tests Appium et Device Farm AWS.

APPIUM_PYTHON_TEST_PACKAGE_DEPENDENCY_WHEEL_MISSING

Si le message suivant s'affiche, procédez comme suit pour corriger le problème.

Avertissement

Impossible de trouver un fichier wheel de dépendance dans l'arborescence du répertoire wheelhouse. Décompressez votre package de test, puis ouvrez le répertoire wheelhouse, vérifiez que celui-ci contient au moins un fichier wheel, puis réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, le nom du package est test_bundle.zip.

  1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

    $ unzip test_bundle.zip
  2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé, exécutez la commande suivante :

    $ tree .

    Si le package Python Appium est valide, vous en trouverez au moins un .whl fichier dépendant, comme les fichiers surlignés à l'intérieur du wheelhouse annuaire.

    . |-- requirements.txt |-- test_bundle.zip |-- tests (directory) | `-- test_unittest.py `-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

    Pour de plus amples informations, veuillez consulter Tests Appium et Device Farm AWS.

APPIUM_PYTHON_TEST_PACKAGE_INVALID_PLATFORM

Si le message suivant s'affiche, procédez comme suit pour corriger le problème.

Avertissement

Au moins un fichier wheel spécifie une plateforme que nous ne prenons pas en charge. Décompressez votre package de test, puis ouvrez le répertoire wheelhouse, vérifiez que les noms de fichiers wheel se terminent par -any.whl ou -linux_x86_64.whl et réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, le nom du package est test_bundle.zip.

  1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

    $ unzip test_bundle.zip
  2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé, exécutez la commande suivante :

    $ tree .

    Si le package Python Appium est valide, vous en trouverez au moins un .whl fichier dépendant, comme les fichiers surlignés à l'intérieur du wheelhouse annuaire. Le nom du fichier peut être différent, mais il doit se terminer par -any.whl or -linux_x86_64.whl, qui indique la plate-forme. Toutes les plateformes, comme windows, ne sont pas prises en charge.

    . |-- requirements.txt |-- test_bundle.zip |-- tests (directory) | `-- test_unittest.py `-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

    Pour de plus amples informations, veuillez consulter Tests Appium et Device Farm AWS.

APPIUM_PYTHON_TEST_PACKAGE_TEST_DIR_MISSING

Si le message suivant s'affiche, procédez comme suit pour corriger le problème.

Avertissement

Impossible de trouver le répertoire de tests à l'intérieur de votre package. Décompressez votre package de test, vérifiez que le répertoire de tests s'y trouve, puis réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, le nom du package est test_bundle.zip.

  1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

    $ unzip test_bundle.zip
  2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé, exécutez la commande suivante :

    $ tree .

    Si le package Python d'Appium est valide, vous trouverez le tests répertoire à l'intérieur du répertoire de travail.

    . |-- requirements.txt |-- test_bundle.zip |-- tests (directory) | `-- test_unittest.py `-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

    Pour de plus amples informations, veuillez consulter Tests Appium et Device Farm AWS.

APPIUM_PYTHON_TEST_PACKAGE_INVALID_TEST_FILE_NAME

Si le message suivant s'affiche, procédez comme suit pour corriger le problème.

Avertissement

Impossible de trouver un fichier de test valide dans l'arborescence du répertoire de tests. Décompressez votre package de test, ouvrez le répertoire de tests, vérifiez que le nom d'au moins un fichier commence ou finit par le mot clé « test », puis réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, le nom du package est test_bundle.zip.

  1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

    $ unzip test_bundle.zip
  2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé, exécutez la commande suivante :

    $ tree .

    Si le package Python d'Appium est valide, vous trouverez le tests répertoire à l'intérieur du répertoire de travail. Le nom du fichier peut être différent, mais il doit commencer par test_ ou finissez par _test.py.

    . |-- requirements.txt |-- test_bundle.zip |-- tests (directory) | `-- test_unittest.py `-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

    Pour de plus amples informations, veuillez consulter Tests Appium et Device Farm AWS.

APPIUM_PYTHON_TEST_PACKAGE_REQUIREMENTS_TXT_FILE_MISSING

Si le message suivant s'affiche, procédez comme suit pour corriger le problème.

Avertissement

Impossible de trouver le fichier requirements.txt à l'intérieur de votre package. Décompressez votre package de test, vérifiez que le fichier requirements.txt s'y trouve, puis réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, le nom du package est test_bundle.zip.

  1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

    $ unzip test_bundle.zip
  2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé, exécutez la commande suivante :

    $ tree .

    Si le package Python d'Appium est valide, vous trouverez le requirements.txt fichier dans le répertoire de travail.

    . |-- requirements.txt |-- test_bundle.zip |-- tests (directory) | `-- test_unittest.py `-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl

    Pour de plus amples informations, veuillez consulter Tests Appium et Device Farm AWS.

APPIUM_PYTHON_TEST_PACKAGE_INVALID_PYTEST_VERSION

Si le message suivant s'affiche, procédez comme suit pour corriger le problème.

Avertissement

La version de pytest que vous utilisez est antérieure à la version 2.8.0 minimale que nous prenons en charge. Modifiez la version de pytest du fichier requirements.txt et réessayez.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, le nom du package est test_bundle.zip.

  1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

    $ unzip test_bundle.zip
  2. Pour trouver la structure arborescente du répertoire de travail une fois le package décompressé, exécutez la commande suivante :

    $ tree .

    Vous devriez trouver le requirements.txt fichier dans le répertoire de travail.

    . |-- requirements.txt |-- test_bundle.zip |-- tests (directory) | `--test_unittest.py `-- wheelhouse (directory) |-- Appium_Python_Client-0.20-cp27-none-any.whl |-- py-1.4.31-py2.py3-none-any.whl |-- pytest-2.9.0-py2.py3-none-any.whl |-- selenium-2.52.0-cp27-none-any.whl `-- wheel-0.26.0-py2.py3-none-any.whl
  3. Pour connaître la version de pytest, exécutez la commande suivante :

    $ grep "pytest" requirements.txt

    Vous devriez obtenir une sortie similaire à ce qui suit :

    pytest==2.9.0

    Elle montre la version de pytest, qui est 2.9.0 dans cet exemple. Si le package Appium Python est valide, la version de pytest doit être supérieure ou égale à 2.8.0.

    Pour de plus amples informations, veuillez consulter Tests Appium et Device Farm AWS.

APPIUM_PYTHON_TEST_PACKAGE_INSTALL_DEPENDENCY_WHEELS_FAILED

Si le message suivant s'affiche, procédez comme suit pour corriger le problème.

Avertissement

Impossible d'installer les fichiers wheel de dépendance. Décompressez votre package de test, ouvrez le fichier requirements.txt et le répertoire wheelhouse, vérifiez que les fichiers wheel de dépendance spécifiés dans le fichier requirements.txt correspondent exactement aux fichiers wheel de dépendance situés dans le répertoire wheelhouse et réessayez.

Nous vous recommandons vivement de configurer virtualenv Python pour les tests de création de package. Voici un exemple de flux de création d'un environnement virtuel à l'aide de virtualenv Python et de son activation :

$ virtualenv workspace $ cd workspace $ source bin/activate

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, le nom du package est test_bundle.zip.

  1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

    $ unzip test_bundle.zip
  2. Pour tester l'installation des fichiers wheel, vous pouvez exécuter la commande suivante :

    $ pip install --use-wheel --no-index --find-links=./wheelhouse --requirement=./requirements.txt

    Un package Appium Python valide doit générer une sortie similaire à la suivante :

    Ignoring indexes: https://pypi.python.org/simple Collecting Appium-Python-Client==0.20 (from -r ./requirements.txt (line 1)) Collecting py==1.4.31 (from -r ./requirements.txt (line 2)) Collecting pytest==2.9.0 (from -r ./requirements.txt (line 3)) Collecting selenium==2.52.0 (from -r ./requirements.txt (line 4)) Collecting wheel==0.26.0 (from -r ./requirements.txt (line 5)) Installing collected packages: selenium, Appium-Python-Client, py, pytest, wheel Found existing installation: wheel 0.29.0 Uninstalling wheel-0.29.0: Successfully uninstalled wheel-0.29.0 Successfully installed Appium-Python-Client-0.20 py-1.4.31 pytest-2.9.0 selenium-2.52.0 wheel-0.26.0
  3. Pour désactiver l'environnement virtuel, exécutez la commande suivante :

    $ deactivate

    Pour de plus amples informations, veuillez consulter Tests Appium et Device Farm AWS.

APPIUM_PYTHON_TEST_PACKAGE_PYTEST_COLLECT_FAILED

Si le message suivant s'affiche, procédez comme suit pour corriger le problème.

Avertissement

Echec de la collecte de tests dans le répertoire de tests. Décompressez votre package de test, vérifiez qu'il est valide en exécutant la commande py.test --collect-only <path to your tests directory>, puis réessayez une fois que cette commande ne génère aucune erreur.

Nous vous recommandons vivement de configurer virtualenv Python pour les tests de création de package. Voici un exemple de flux de création d'un environnement virtuel à l'aide de virtualenv Python et de son activation :

$ virtualenv workspace $ cd workspace $ source bin/activate

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, le nom du package est test_bundle.zip.

  1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

    $ unzip test_bundle.zip
  2. Pour installer des fichiers wheel, vous pouvez exécuter la commande suivante :

    $ pip install --use-wheel --no-index --find-links=./wheelhouse --requirement=./requirements.txt
  3. Pour collecter des tests, vous pouvez exécuter la commande suivante :

    $ py.test --collect-only tests

    Un package Appium Python valide doit générer une sortie similaire à la suivante :

    ==================== test session starts ==================== platform darwin -- Python 2.7.11, pytest-2.9.0, py-1.4.31, pluggy-0.3.1 rootdir: /Users/zhena/Desktop/Ios/tests, inifile: collected 1 items <Module 'test_unittest.py'> <UnitTestCase 'DeviceFarmAppiumWebTests'> <TestCaseFunction 'test_devicefarm'> ==================== no tests ran in 0.11 seconds ====================
  4. Pour désactiver l'environnement virtuel, exécutez la commande suivante :

    $ deactivate

    Pour de plus amples informations, veuillez consulter Tests Appium et Device Farm AWS.

APPIUM_PYTHON_TEST_PACKAGE_DEPENDENCY_WHEELS_INSUFFICIENT

Si le message suivant s'affiche, procédez comme suit pour corriger le problème.

Avertissement

Nous n'avons pas trouvé suffisamment de dépendances entre les roues dans le répertoire des roues. Décompressez votre package de test, puis ouvrez le répertoire Wheelhouse. Vérifiez que toutes les dépendances des roues sont spécifiées dans le fichier requirements.txt.

Assurez-vous que vous pouvez décompresser le package de test sans erreur. Dans l'exemple suivant, le nom du package est test_bundle.zip.

  1. Copiez votre package de test dans votre répertoire de travail, puis exécutez la commande suivante :

    $ unzip test_bundle.zip
  2. Vérifiez la longueur du requirements.txt fichier ainsi que le numéro de .whl fichiers dépendants dans le répertoire de la timonerie :

    $ cat requirements.txt | egrep "." |wc -l  12 $ ls wheelhouse/ | egrep ".+\.whl" | wc -l 11

    Si le nombre de .whl le nombre de fichiers dépendants est inférieur au nombre de lignes non vides de votre requirements.txt fichier, alors vous devez vous assurer de ce qui suit :

    • Il y a un .whl fichier dépendant correspondant à chaque ligne du requirements.txt dans le fichier.

    • Il n'y a aucune autre ligne dans requirements.txt fichier contenant des informations autres que les noms des packages de dépendances.

    • Aucun nom de dépendance n'est dupliqué sur plusieurs lignes dans le requirements.txt fichier tel que deux lignes du fichier puissent correspondre à une .whl fichier dépendant.

    AWSDevice Farm ne prend pas en charge les lignes du requirements.txt fichier qui ne correspond pas directement aux packages de dépendances, tels que les lignes qui spécifient les options globales pour la pip install commande. Voir Format de fichier d'exigences pour une liste des options globales.

    Pour de plus amples informations, veuillez consulter Tests Appium et Device Farm AWS.