Comment boucler les tests dans Selenium IDE?

J'ai testé dans Selenium IDE. C'est assez facile à utiliser, et j'ai créé des cas de test avec. J'ai cherché Google, essayant de trouver un moyen de répéter mes tests automatiquement. J'ai vu une solution avec gotolabel, tandis que les boucles, etc. Mais je ne pouvais pas faire l'un d'eux fonctionne. Quelqu'un peut-il me donner un conseil sur la façon de boucler mon test n fois, ou boucle pour toujours. J'apprécie toute l'aide.

35
demandé sur Ripon Al Wasim 2012-06-14 16:45:25

7 réponses

Faites ceci:

  1. Téléchargez ce fichier js: https://github.com/darrenderidder/sideflow/blob/master/sideflow.js
  2. Lancez Selenium IDE depuis Firefox et ouvrez le menu options.
  3. Télécharger le .fichier js à la "Selenium Core extensions (utilisateur-extensions.js)" sur le terrain.

Le fichier JS fournit des fonctionnalités Goto, gotoIf et while loop dans Selenium IDE. L'exemple ci-dessous montre une boucle simple:

<tr>
    <td>getEval</td>
    <td>index = 0;</td>
    <td></td>
</tr>
<tr>
    <td>while</td>
    <td>index &lt; 10;</td>
    <td></td>
</tr>
<tr>
    <td>storeEval</td>
    <td>index</td>
    <td>value</td>
</tr>
<tr>
    <td>echo</td>
    <td>${value}</td>
    <td></td>
</tr>
<tr>
    <td>getEval</td>
    <td>index++;</td>
    <td></td>
</tr>
<tr>
    <td>endWhile</td>
    <td></td>
    <td></td>
</tr>
44
répondu Prashant Vadher 2014-12-03 09:41:36

Comme indiqué dans la réponse ci-dessus, installez l'extension utilisateur, qui ajoutera une fonctionnalité de boucle aux tests IDE Selenium. L'exemple ci-dessous montre une boucle simple:

<tr>
<td>getEval</td>
<td>index = 0;</td>
<td></td>
</tr>
<tr>
<td>while</td>
<td>index &lt; 10;</td>
<td></td>
</tr>
<tr>
<td>storeEval</td>
<td>index</td>
<td>value</td>
</tr>
<tr>
<td>echo</td>
<td>${value}</td>
<td></td>
</tr>
<tr>
<td>getEval</td>
<td>index++;</td>
<td></td>
</tr>
<tr>
<td>endWhile</td>
<td></td>
<td></td>
</tr>
17
répondu barry07 2012-08-21 02:46:03

Je suis nouveau sur Selenium (je viens de commencer à l'utiliser il y a quelques minutes). Après une recherche rapide sur Google pour "selenium loop" cette stackoverflow.com la question est venue. J'ai immédiatement sauté dans l'extension et j'ai commencé à utiliser des boucles. La réponse acceptée est très utile. Cependant, je voulais souligner autre chose pour d'autres qui sont nouveaux au sélénium (et trébucher sur cette page).

J'ai créé un test simple pour une page Web simple. J'ai ajouté une boucle pour que le test s'exécute indéfiniment (jusqu'à ce que je pause/arrêté). Cependant, j'ai remarqué qu'en faisant cela, les compteurs Runs/Failures dans L'interface graphique Selenium ne s'incrémentent pas à chaque boucle (je devine qu'un seul cas de test n'a jamais été exécuté, il était juste en boucle indéfiniment). Alors j'ai creusé un peu plus loin. Mon but était de laisser le même test en cours d'exécution pendant une longue période (quelques heures, ou peut-être du jour au lendemain) pour voir s'il y avait des échecs (je suis à la recherche d'un bug intermittent en ce moment).

Le moyen Le plus simple (pour moi, après quelques minutes de recherche / d'expérimentation) était de faire ce qui suit (probablement pas de plugins nécessaires, bien que le plugin ci-joint soit certainement utile si vous voulez exécuter quelques petites boucles dans un cas de test):

  • enregistre le cas de test dans un fichier texte
  • enregistrez la suite de tests dans un fichier texte
  • ouvrez le fichier texte de la suite de tests dans un éditeur de texte
  • copiez et collez le cas de test plusieurs fois dans la suite de tests (par exemple, mille fois)
  • ouvrez ensuite la suite de tests dans Selenium, et exécutez la suite de tests

Maintenant, j'ai la même suite de tests simple qui s'exécute plusieurs fois, et les compteurs Runs/Failures s'incrémentent comme prévu (sans avoir besoin de boucles).

4
répondu fuzion101 2014-10-06 23:58:48

Utilisez le plug-in Flow Control pour Firefox . Après avoir redémarré Firefox, utilisez la commande label pour marquer un point dans le script, et la commande gotolabel pour y sauter.

Par exemple:

entrez la description de l'image ici

, Ou si vous préférez voir le code source, c'est une étiquette:

<tr>
    <td>label</td>
    <td>start</td>  
    <td></td>
</tr>

Et cela fait revenir le point d'exécution à l'étiquette:

<tr>
    <td>gotolabel</td>
    <td>start</td>
    <td></td>
</tr>

Il y a d'autres commandes que vous pouvez voir sur la page du plug-in, et documentées dans le IDE sélénium: flux Contrôler le projet GitHub .

4
répondu Steve HHH 2017-03-02 10:14:38

Ceci est un exemple pour l'utilisateur sampcop afin d'automatiser les plaintes de spam en utilisant les commandes label et Goto Label:

1ère Connexion sur spamcop.net

2ème utilisation de L'option de Spam de rapport

3ème démarrer ce script

<!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://www.spamcop.net/sc" />
<title>testecase</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">testecase</td></tr>
</thead><tbody>

<tr>
    <td>label</td>
    <td>target1</td>
    <td></td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>link=Report Now</td>
    <td></td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>//input[@value='Send Spam Report(s) Now']</td>
    <td></td>
</tr>
<tr>
    <td>gotoLabel</td>
    <td>target1</td>
    <td></td>
</tr>
</tbody></table>
</body>
</html>
0
répondu HelioSilva 2014-02-05 18:18:09

Votre fichier de suite de tests est juste un fichier HTML, alors faites simplement ce qui suit:

<tr><td><a href="testCase1.html">testCase1</a></td></tr>
<tr><td><a href="sameStep.html">sameStep</a></td></tr>
<tr><td><a href="testCase2.html">testCase1</a></td></tr>
<tr><td><a href="sameStep.html">sameStep</a></td></tr>
0
répondu Alexandre 2015-03-31 12:38:04

J'ai trouvé ce tutoriel beaucoup plus utile, car certaines des réponses ci-dessus sont simplement des solutions" aller à", au lieu de constructions en boucle itératives:

Http://www.software-testing-tutorials-automation.com/2013/07/example-of-while-and-endwhile-loop.html

0
répondu MrBCut 2017-01-11 18:33:47