Simplium
De Dos Ideas
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 |
[editar] 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.
[editar] 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.
[editar] 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).