J'ai déjà testé Selenium IDE. C'est assez facile à utiliser, et j'ai créé quelques cas de test avec. J'ai cherché sur Google, essayant de trouver un moyen de répéter mes tests automatiquement. J'ai vu une solution avec gotolabel, des boucles while, etc. Mais je ne pouvais en faire fonctionner aucune. Quelqu'un peut-il me donner un conseil sur la manière de boucler mon test n
fois, ou de boucler indéfiniment J'apprécie toute aide.
Faire ceci:
Le fichier js fournit la fonctionnalité de boucle goto, gotoIf et while 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 < 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>
comme indiqué dans la réponse ci-dessus, installez l'extension utilisateur, ce qui ajoutera une fonctionnalité de boucle aux tests 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 < 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>
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 accéder.
Par exemple:
Ou si vous préférez voir le code source, voici une étiquette:
<tr>
<td>label</td>
<td>start</td>
<td></td>
</tr>
Et ceci provoque le retour du point d’exécution à l’étiquette:
<tr>
<td>gotolabel</td>
<td>start</td>
<td></td>
</tr>
Il existe d'autres commandes que vous pouvez voir sur la page du plug-in et documentées dans le projet Selenium IDE: Flow Control GitHub .
Je suis nouveau dans Selenium (je viens juste de l'utiliser depuis quelques minutes). Après une recherche rapide sur "Selenium loop" sur Google, cette question se posait à stackoverflow.com. J'ai immédiatement sauté dans l'extension et commencé à utiliser des boucles. La réponse acceptée est très utile. Cependant, je voulais faire remarquer quelque chose d’autre aux autres nouveaux venus dans 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 l'ait suspendu/arrêté). Cependant, j'ai remarqué qu'en faisant cela, les compteurs de cycles/échecs de l'interface graphique de Selenium ne sont pas incrémentés à chaque boucle (je devine, car un seul cas de test n'a jamais été terminé, il était en boucle indéfiniment). J'ai donc creusé un peu plus loin. Mon objectif était de laisser le même test en cours d'exécution pendant une longue période (quelques heures, voire toute la nuit) pour voir s'il y avait des échecs (je suis à la recherche d'un bogue intermittent pour le moment).
Le moyen le plus simple (pour moi, après quelques minutes de recherche/expérimentations) était de procéder comme suit (probablement qu'aucun plugin ne soit nécessaire, bien que le plugin attaché soit vraiment utile si vous souhaitez exécuter quelques petites boucles dans un scénario de test):
Maintenant, j'ai la même suite de tests simples qui s'exécute plusieurs fois et les compteurs Runs/Failures s'incrémentent comme prévu (sans avoir besoin de boucles).
Le sélénium IDE a maintenant un contrôle de flux. Ces commandes de flux de contrôle fonctionnent en spécifiant des commandes d'ouverture et de fermeture pour désigner un ensemble (ou un bloc) de commandes.
Commandes disponibles
Voici chacune des commandes de flux de contrôle disponibles accompagnées de leurs commandes associées et/ou de fermeture.
if, else si, else, fin fois, fin do, répétez si while, end
Vous pouvez en lire plus ici:
https://www.seleniumhq.org/Selenium-ide/docs/en/introduction/control-flow/
Pas besoin d'installer/télécharger quoi que ce soit, la commande intégrée times le fait très facilement:
times
en tant que Command
et 10
(par exemple) en tant que Target
.end
comme commandeDans cet exemple, je clique sur un bouton 2000 fois:
Pour boucler pour toujours, il suffit de remplacer 10
par un nombre extrêmement grand, ce qui prendra des siècles, ce qui est probablement aussi bon que jamais si vous exécutez Selenium IDE.
Ceci est un exemple pour l'utilisateur sampcop afin d'automatiser les plaintes de spam à l'aide des commandes label et goto Label:
1ère connexion sur spamcop.net
2ème utilisation de l'option Signaler comme spam
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>
Votre fichier de suite de tests est juste un fichier HTML, procédez comme 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>