2 votes

J'ai du mal à faire en sorte que la ligne de commande selenium exécute des tests HTML et enregistre la sortie, puis quitte avec un état reflétant le résultat du test.

Je ne parviens pas à faire fonctionner Selenium sur mon Mac de manière à ce qu'il exécute une suite simple avec un test simple (voir les sections 'TEST CASE' et 'TEST SUITE', ci-dessous) à l'aide de la ligne de commande suivante :

java -jar lib/selenium-server.jar -timeout 10 -log server.log -browserSideLog browser.log -debug -htmlSuite '*firefox' http://google.com `pwd`/suite3 `pwd`/selenium.html

Mon problème est que je n'obtiens pas de code de retour non nul comme prévu lorsque les tests échouent, et je ne vois pas non plus de rapports.

J'ai essayé les variantes suivantes :

En utilisant les fichiers de suite et de testcase donnés soit :

  • spécifier l'option -timeout (se termine drastiquement sans qu'aucun rapport ne soit écrit), ou

  • ne pas spécifier l'option -timeout. Sans l'option time out, le serveur selenium ne s'arrête jamais... même si la documentation d'aide le dit :

    Run a single HTML Selenese (Selenium Core) suite and then exit
    immediately, using the specified browser (e.g. "*firefox") on the
    specified URL (e.g. "http://www.google.com").

Pour contourner le problème, j'ai ajouté une commande Selenium supplémentaire au scénario de test pour forcer l'arrêt du serveur, comme suit :

....  previous commands ...
          <tr>
            <td>open</td>
            <td>http://localhost:4444/selenium-server/driver/?cmd=shutDownSeleniumServer</td>
            <td></td>
          </tr>
        </tbody>
     </table>
  </body>
</html>

Cela a permis d'éliminer le blocage. Le navigateur s'est fermé et le processus s'est terminé... mais je n'ai obtenu aucun résultat de test, et mon code de sortie était (incorrectement) zéro... pas non nul comme je m'y attendais.

SUITE DE TEST (elle doit être sauvegardée sous le nom de "suite3")

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head profile="http://selenium-ide.openqa.org/profiles/test-case">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="selenium.base" href="http://google.com" />
    <title>testcase3</title>
  </head>
  <body>
    <table cellpadding="1" cellspacing="1" border="1">
      <thead>
        <tr><td rowspan="1" colspan="3">testcase3</td></tr>
      </thead>
      <tbody>
        <tr>
          <td>open</td>
          <td>/</td>
          <td></td>
        </tr>
        <tr>
          <td>verifyTextPresent</td>
          <td>xbout Google</td>
          <td></td>
        </tr>
      </tbody>
    </table>
  </body>
</html>

CAS D'ESSAI

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head profile="http://selenium-ide.openqa.org/profiles/test-case">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="selenium.base" href="http://google.com" />
    <title>testcase3</title>
  </head>
  <body>
    <table cellpadding="1" cellspacing="1" border="1">
      <thead>
        <tr><td rowspan="1" colspan="3">testcase3</td></tr>
      </thead>
      <tbody>
        <tr>
          <td>open</td>
          <td>/</td>
          <td></td>
        </tr>
        <tr>
          <td>verifyTextPresent</td>
          <td>xbout Google</td>
          <td></td>
        </tr>
      </tbody>
    </table>
  </body>
</html>

Merci d'avance à toute personne qui pourra me donner un indice pour résoudre ce problème ! - chris

6voto

Chris Bedford Points 466

Notre collègue de Pékin, Chenyun Xiao, a trouvé l'astuce. Si vous renommez les fichiers suite et testcase avec des extensions .html (et que vous vous assurez que le ref de suite à testcase est mis à jour pour refléter le nouveau nom du fichier testcase), tout fonctionnera comme prévu. Merci, Chenyun - Chris Bedford Il y a 1 min

0voto

Coretek Points 1227

Je vous suggère d'utiliser Java pour votre suite de tests et votre scénario de test.

J'ai rencontré des disparitions codées lorsque j'ai traité le code html de Selenium.

0voto

user1227037 Points 16

Je suis sûr qu'il existe une solution utilisant Selenium Server (anciennement RC) mais je ne la connais pas. Et je suis sur un projet qui m'empêche de faire des recherches.

PushToTest TestMaker dispose d'une excellente interface de ligne de commande pour exécuter des scripts Selenese Table Format scripts dans un environnement de bureau, de grille ou de nuage. Consultez le tutoriel à l'adresse suivante http://www.pushtotest.com/web-testing-with-selenium-pushtotest pour voir comment tout cela s'articule.

-Frank

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X