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:

  1. Crear una anotación propia en donde se indique la configuración deseada.
  2. Crear un test JUnit que herede de SimpliumWebTest y use la anotación anterior.
  3. 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).

[editar] Ver también