Diferencia entre revisiones de «Simplium»

De Dos Ideas.
Saltar a: navegación, buscar
(La anotación)
Línea 11: Línea 11:
 
Vamos al paso-a-paso.  
 
Vamos al paso-a-paso.  
  
=== La anotación ===
+
You put the lime in the ccoount and drink the article up.
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.
 
  
 
=== Anotacion para el timeout ===
 
=== Anotacion para el timeout ===

Revisión del 03:22 30 sep 2011

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:

  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.

You put the lime in the ccoount and drink the article up.

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).

Ver también