Diferencia entre revisiones de «Simplium»
(→Ver también) |
|||
Línea 2: | Línea 2: | ||
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. | 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. | ||
+ | |||
+ | ==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. | ||
+ | |||
+ | <code java5> | ||
+ | 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 { } | ||
+ | </code> | ||
+ | |||
+ | 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. | ||
+ | |||
+ | === La clase de test === | ||
+ | Creamos una clase de test JUnit, la cual hereda de ''SimpliumWebTest'' y usa la anotación anterior. | ||
+ | |||
+ | <code java5> | ||
+ | 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"); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </code> | ||
+ | |||
+ | 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== | ||
Línea 7: | Línea 112: | ||
*[http://www.dosideas.com/descargas/category/3-testing.html?download=31%3Ap Descargar proyecto de ejemplo] | *[http://www.dosideas.com/descargas/category/3-testing.html?download=31%3Ap Descargar proyecto de ejemplo] | ||
*[http://simplium.sektor.se/index.html Web oficial de Simplium] | *[http://simplium.sektor.se/index.html Web oficial de Simplium] | ||
+ | *[http://simplium.sektor.se/explore.html Tutorial de Simplium] |
Revisión del 15:30 27 ene 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.
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.
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"); }
}
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).