Cómo hacer un bucle de pruebas en Selenio IDE?


He estado probando en Selenio IDE. Es bastante fácil de usar, y he creado algunos casos de prueba con él. He estado buscando en Google, tratando de encontrar una manera de repetir mis pruebas automáticamente. He visto una solución con gotolabel, bucles while, etc. Pero no pude hacer que ninguna de ellas funcionara. ¿Puede alguien darme un consejo sobre cómo hacer un bucle de mi prueba n veces, o un bucle para siempre. Agradezco cualquier ayuda.

Author: Ripon Al Wasim, 2012-06-14

7 answers

Haz esto:

  1. Descargue este archivo js: https://github.com/darrenderidder/sideflow/blob/master/sideflow.js
  2. Inicie Selenium IDE desde Firefox y abra el menú de opciones.
  3. Sube el .archivo js a las extensiones " Selenium Core (user-extensions.js) " field.

El archivo js proporciona funcionalidad de bucle goto, gotoIf y while en Selenium IDE. El siguiente ejemplo muestra un bucle 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
Author: Prashant Vadher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-03 09:41:36

Como se indica en la respuesta anterior, instale la extensión de usuario, que agregará funcionalidad de bucle a las pruebas Selenium IDE. El siguiente ejemplo muestra un bucle 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
Author: barry07,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-21 02:46:03

Soy nuevo en Selenium (acabo de empezar a usarlo hace unos minutos). Después de una búsqueda rápida en Google para" selenium loop " esto stackoverflow.com surgió una pregunta. Inmediatamente salté a la extensión y comencé a usar bucles. La respuesta aceptada es muy útil. Sin embargo, quería señalar algo más para otros que son nuevos en el selenio (y tropiezan en esta página).

He creado una prueba simple para una página web simple. Agregué un bucle para que la prueba se ejecutara indefinidamente (hasta que pausado / detenido). Sin embargo, noté que al hacer esto, los contadores de Corridas/Fallas dentro de la GUI de Selenium no se incrementan con cada bucle (supongo que porque un solo caso de prueba nunca se estaba ejecutando hasta completarse, solo se estaba reproduciendo indefinidamente). Así que cavé un poco más. Mi objetivo era dejar la misma prueba ejecutándose durante mucho tiempo (unas pocas horas, o posiblemente durante la noche) para ver si había algún fallo (estoy persiguiendo un error intermitente en este momento).

La forma más sencilla (para mí, después unos minutos de búsqueda / experimentación) era hacer lo siguiente (probablemente no se necesitan complementos, aunque el complemento adjunto es definitivamente útil si desea ejecutar algunos bucles pequeños dentro de un caso de prueba):

  • guarde el caso de prueba en un archivo de texto
  • guarde el conjunto de pruebas en un archivo de texto
  • abra el archivo de texto test suite en un editor de texto
  • copie y pegue el caso de prueba varias veces dentro del conjunto de pruebas (por ejemplo, mil veces)
  • a continuación, abra el conjunto de pruebas en Selenium, y ejecute el conjunto de pruebas

Ahora tengo el mismo conjunto de pruebas simples ejecutándose muchas veces, y los contadores de Ejecuciones/Fallos se incrementan como se esperaba (sin necesidad de bucles).

 4
Author: fuzion101,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-06 23:58:48

Utilice el plug-in de Control de flujo para Firefox. Después de reiniciar Firefox, use el comando label para marcar un punto en el script, y el comando gotolabel para saltar allí.

Por ejemplo:

introduzca la descripción de la imagen aquí

O si prefieres ver el código fuente, esta es una etiqueta:

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

Y esto hace que el punto de ejecución vuelva a saltar a la etiqueta:

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

Hay otros comandos que puede ver en la página del complemento, y documentados en el IDE de selenio: Flujo Control GitHub project .

 4
Author: Steve HHH,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-02 10:14:38

Este es un ejemplo para el usuario de sampcop con el fin de automatizar las quejas de spam utilizando los comandos label y goto Label:

1er Inicio de sesión en spamcop.net

2nd use report Spam option

3rd iniciar este 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
Author: HelioSilva,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-05 18:18:09

Su archivo test suite es solo un archivo HTML, así que haga lo siguiente:

<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
Author: Alexandre,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-31 12:38:04

Me pareció que este tutorial es mucho más útil, porque algunas de las respuestas anteriores son simplemente soluciones" ir a", en lugar de construcciones iterativas de bucle:

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

 0
Author: MrBCut,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-11 18:33:47