2
votes

RobotFramework / Selenium: Comment définir le nom de la capture d'écran sur le nom du cas de test en cas d'échec

Je me demandais s'il y avait une possibilité de réaliser ce qui suit. Disons que j'ai 3 cas de test avec les résultats suivants dans RIDE:

${testcase}=    Get Testcase Name
Capture Page Screenshot    ${testcase}

Je veux prendre une capture d'écran qui devrait être nommée testcase_christmas.png (ou avec '' au lieu de '_', cela fait pas important). Est-il possible de le faire dynamiquement, quelque chose comme

Testcase Easter  --  PASS
Testcase Christmas  --  FAIL
Testcase Foo  --  PASS

ou quelque chose comme ça? J'utilise:

  • Python 2.7.x (dernier) 32 bits
  • wxPython 2.8 32 bits
  • geckodriver dernier 64 bits


0 commentaires

3 Réponses :


4
votes

Le framework Robot définit automatiquement la variable $ {TEST NAME} pour contenir le nom du test en cours d'exécution. Voir Variables automatiques dans le guide de l'utilisateur)

La documentation pour La Capture d'écran de la page de capture de SeleniumLibrary montre que vous pouvez lui donner un nom de fichier comme premier argument.

En mettant ces deux ensemble, vous pouvez faire ceci:

Capture page screenshot  ${TEST NAME}.png


1 commentaires

ty, était vraiment utile :)



3
votes

La façon dont je procéderais est de créer un démontage de test et d'utiliser des variables automatiques pour le framework robot. Trouvé ici: http://robotframework.org/robotframework/latest/RobotFramework.Usml # automatic-variables

Votre page de mots clés / fichier de ressources doit avoir un mot clé de données de test de charge qui obtient le nom du test, ainsi que la définition d'une variable de test que vous pouvez également attribuer à la capture d'écran.

*** Settings ***
Test Setup    Load Test Data

*** Testcases ***
Test Case A
    My keywords
    [Teardown]    Common Test Teardown

Votre test doit appeler le démontage de test que vous décidez d'utiliser.

*** Keywords ***
Load Test Data
    ${data}    Get File    ${TEST NAME}.txt
    Set Test Variable    ${data}    ${data}

Common Test Teardown
    capture page screenshot    ${data}.png

L'appel de la configuration du test vous permet de charger le nom de chaque test dans votre et dans le démontage en cas d'échec prendra une capture d'écran avec le nom du scénario de test que vous avez chargé dans votre configuration de test.


1 commentaires

ty encore, j'ai obtenu un peu de connaissances pendant la réponse, mais a implémenté le plus rapide ci-dessus



0
votes

Si vous souhaitez enregistrer les captures d'écran sur la base du cas de test, c'est-à-dire. un dossier séparé pour toutes les captures d'écran liées à chaque cas de test. Ensuite, vous pouvez utiliser:

Définir le répertoire de captures d'écran ./Screenshots/${SUITE NAME} / $ {TEST NAME}

Capture d'écran ABC.png

Un répertoire Screenshot sera créé dans le dossier racine du projet où toutes les captures d'écran seront stockées dans différents dossiers en fonction du cas de test et des suites de tests.

Pour une seule suite, vous pouvez utiliser p >

Set Screenshot Directory         ./Screenshots/${TEST NAME}


0 commentaires