Diferencia entre revisiones de «Simplium»
Línea 79: | Línea 79: | ||
La anotación '''@Screenshot''' indica que se guardará una captura de pantalla del navegador en caso de que la prueba falle. | La anotación '''@Screenshot''' indica que se guardará una captura de pantalla del navegador en caso de que la prueba falle. | ||
+ | |||
+ | === Anotacion para el timeout === | ||
+ | Si el test está fallando por timeout puede que el valor por defecto (30000 milisegundos) no sea suficiente. Entonces: | ||
+ | |||
+ | @Timeout(x), x expresado en milisengundos | ||
+ | |||
=== La clase de test === | === La clase de test === | ||
Línea 107: | Línea 113: | ||
Como vemos, tenemos acceso al objeto ''selenium'', el cual ya está listo para usarse. Simplium se encarga de configurar el objeto e invocar repetidas veces al método con diferentes navegadores (según la configuración de @MiTestWeb). | Como vemos, tenemos acceso al objeto ''selenium'', el cual ya está listo para usarse. Simplium se encarga de configurar el objeto e invocar repetidas veces al método con diferentes navegadores (según la configuración de @MiTestWeb). | ||
− | |||
− | |||
− | |||
− | |||
− | |||
==Ver también== | ==Ver también== |
Revisión del 20:28 28 jun 2010
Simplium permite crear test de Selenium para que puedan ser ejecutados en diferentes browsers y entornos. Tomando como entorno la maquina local de un desarrollador, un servidor de test o incluso el Server productivo.
Simplium mira en que entorno tiene que correr (desarrollo, test o producción), basado en esa información corre los test contra diferentes servers (local, Selenium remote, selenium grid) y en los browsers que el entorno tenga especificados.
Contenido
Ejemplo de uso
Los pasos para usar Simplium son:
- Crear una anotación propia en donde se indique la configuración deseada.
- Crear un test JUnit que herede de SimpliumWebTest y use la anotación anterior.
- Usar el test!
Vamos al paso-a-paso.
La anotación
Creamos una anotación propia que indica la configuración general de Selenium.
package com.dosideas.simplium;
import java.lang.annotation.Documented; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import org.junit.Ignore; import org.simplium.annotation.Browsers; import org.simplium.annotation.Enviroments; import org.simplium.annotation.Screenshot; import org.simplium.annotation.Screenshot.CaptureRule;
@Enviroments( development = { "localhost", "4444", "http://www.google.com" }, test = { "test.host", "4444", "http://www.google.com" }, production = { "prod.host", "4444", "http://www.google.com" } ) @Browsers( development = { "*iexplore",
"*firefox"
}, test = { "*firefox on Windows", "*firefox on MacOS", "*firefox on Linux", "*iexplore on Windows", "*iexplore on MacOS", "*safari on MacOS", "*safari on Windows", "*opera on Windows", "*opera on MacOS", "*opera on Linux", "*googlechrome on Windows" }, production = { "as test" } ) @Documented @Inherited @Retention(RetentionPolicy.RUNTIME) @Screenshot(CaptureRule.CAPTURE_WHEN_EXCEPTION_OCCURES) @Ignore public @interface MiTestWeb { }
La anotación @Environments declara los "ambientes" posibles para esta ejecución. De esta manera podemos declarar ambientes de desarrollo, testing y producción. De manera predeterminada las pruebas se ejecutan con la configuración de desarrollo; si deseamos usar otra configuración debemos definir la variable de entorno "environment" en la JVM (por ejemplo, para test pasamos el parámetro "-Denviroment=test").
La anotación @Browsers indica los navegadores sobre los cuales se ejecutarán las pruebas, dependiendo del entorno.
La anotación @Screenshot indica que se guardará una captura de pantalla del navegador en caso de que la prueba falle.
Anotacion para el timeout
Si el test está fallando por timeout puede que el valor por defecto (30000 milisegundos) no sea suficiente. Entonces:
@Timeout(x), x expresado en milisengundos
La clase de test
Creamos una clase de test JUnit, la cual hereda de SimpliumWebTest y usa la anotación anterior.
package com.dosideas.simplium;
import junit.framework.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.simplium.SimpliumWebTest; import org.simplium.junit.SimpliumJUnitRunner; import static org.junit.Assert.*;
@MiTestWeb @RunWith(SimpliumJUnitRunner.class) public class SimpliumTest extends SimpliumWebTest {
@Test public void verificarTitulo() { selenium.open("/"); assertEquals("Google", selenium.getTitle()); }
}
Como vemos, tenemos acceso al objeto selenium, el cual ya está listo para usarse. Simplium se encarga de configurar el objeto e invocar repetidas veces al método con diferentes navegadores (según la configuración de @MiTestWeb).