Keyword-driven framework para Watir

40 views
Skip to first unread message

Tedi Roca

unread,
Mar 13, 2013, 1:56:40 PM3/13/13
to testq...@googlegroups.com
Hola,

Estoy empezando a un montar un framework para Watir basado en keywords y me estaba preguntando si ya existe algo similar. He visto algún ejemplo por openqa.org pero utiliza librerías obsoletas. 

¿Os suena de que exista algo para tomar como base?

Salu2,

Manuel Pais

unread,
Mar 13, 2013, 2:06:49 PM3/13/13
to testq...@googlegroups.com

Hola Tedi,

Dependerá de como quieras usar las keywords, pero nosotros usamos Cucumber (Ruby) y Specflow (C#) que son herramientas de BDD. 

Al mejor te pueden servir. Se basean en escenarios con un formato Given/When/Then, los parsean y invocan el código de test correspondiente. 

Luego ese código puede hacer uso de Watir para manejar la aplicacion.

Un saludo,
Manuel 




2013/3/13 Tedi Roca <tedi...@gmail.com>

--
Has recibido este mensaje porque estás suscrito al grupo "TestQA" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a testqa-org+...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a testq...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/testqa-org?hl=es.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 



--
Manuel Pais
<QA Senior Analyst/>

Avalon Biometrics S.L.
Basauri 17, Ed. B, Local F
Madrid 28023 
Spain

Phone  :     +34-91-708-05-80 Ext. 1-127 
Fax     :      +34-91-708-05-81

Think green - please don't print this e-mail unless you really need to!


Roman Rodriguez

unread,
Mar 13, 2013, 2:11:20 PM3/13/13
to testq...@googlegroups.com
Hola Tedi,

Podrías dar un breve ejemplo descriptivo de como es la idea que quieres implementar?

Tal vez Cucumber + PageObject + Watir es lo que estás buscando.

Saludos





Román Rodriguez

Skype: roman.g.rodriguez

Por favor tome en cuenta el medio ambiente antes de imprimir este e-mail, recicle hojas, imprima de ambos lados.

martino turturiello

unread,
Mar 13, 2013, 2:48:47 PM3/13/13
to testq...@googlegroups.com
Yo he creado una libreria en Java para robot framework ( key driven)  si quieres ayuda subre esto... me avisas.

Saludos,
Martino

2013/3/13 Roman Rodriguez <roman.g....@gmail.com>



--
-----------------------------------------------------
Chi non ha apprezzato il suo maestro né la sua lezione, un giorno sarà forse colto, ma non sarà mai saggio.


Numero telefonico 09711835500
Skype: turturiellomartino

Iván Fernández

unread,
Mar 13, 2013, 8:43:52 PM3/13/13
to testq...@googlegroups.com
Tedi, cuando quieras hacemos una video conferencia y te enseño cómo lo hacemos en redsauce con watir-webdriver y cucumber, tanto en Java como en Ruby, con generación de informes super detallados (más allá del jUnit) en jenkins

Info sobre cucumber y cómo usarlo con sus tags y su canesú la puedes encontras en un ebook muy barato que se llama cucumber and cheese

Saludos,

Iván

__________


Iván Fernández García
Redsauce Engineering Services, S.L



2013/3/13 martino turturiello <turturiel...@gmail.com>
RS_MARCA_H_200.png

Manuel Pais

unread,
Mar 14, 2013, 5:44:47 AM3/14/13
to testq...@googlegroups.com

A mi me gusta también el cuke4ninja:


Habla de Cucumber pero también de como montar una framework para pruebas de aceptación automatizadas. 

Además usa ejemplos con ninjas y Chuck Norris lo que siempre es un plus :)

Manuel



2013/3/14 Iván Fernández <ifern...@redsauce.net>
RS_MARCA_H_200.png

Toni Robres Turon

unread,
Mar 14, 2013, 10:03:02 AM3/14/13
to testq...@googlegroups.com
Me parece una conversación muy interesante y creo que se podría hacer una quedada "fisica" o "virtual" para hablar de ello si os parece bien, ya que por lo que veo, en general hay mucha gente que esta trabajando con ello y podríamos intercambiar experiencias.

Que os parece?
Antonio Robres Turon
www.softqatest.com
RS_MARCA_H_200.png

Tedi Roca

unread,
Mar 14, 2013, 10:16:35 AM3/14/13
to testq...@googlegroups.com
Qué bueno ver tantos "automatizadores" por aquí :)

Os cuento un poco más sobre el escenario. El primer punto es que trabajamos junto a un partner para desarrollar una solución, lo cual limita nuestra interacción con partes del sistema a los objetos que podemos inspeccionar. 
El sistema está compuesto a grandes rasgos por los siguientes componentes:
  • Un módulo que recibe metadatos a través de varios XML y una serie de documentos # Para testear esta parte hice una utilidad que genera juegos de datos a partir de los contenidos de un Excel; algo que podría re-aprovechar.
  • Un procesador que trata el conjunto los metadatos y los documentos, extrae cierta información e inserta la información en la BD. # Esta parte la tengo bastante bien cubierta con otra utilidad que compara datos de referencia con los actuales y nos da unos informes bastante detallados
  • UI que permite a los usuarios revisar y modificar los datos procesados. # Aquí tenemos parte cubierta con Watir y hemos ido modularizando bastante la librería de funciones.
  • Módulo para exportar el conjunto de datos. # Está parte también está automatizada.
  • Stylesheet para transformar el conjunto de datos a un markup concreto. # Hacemos una reconciliación semi-automática entre dos fuentes con la misma información pero en diferentes formatos. Necesitamos automatizar más.
En general tenemos una cobertura razonable para la mayoría de componentes del sistema. El escenario de negocio para esta plataforma ha cambiado ligeramente, ya que el modulo procesador no está siendo tan eficiente como se esperaba, lo que hace necesaria una mayor interacción con la UI para revisar datos. Así pues, necesitamos incrementar la cobertura en esa área y ejercitar la persistencia para todo el modelo de datos.

Aquí viene la parte más compleja. El modelo de datos para cada objeto que cargamos en el sistema tiene una media de 150 data points, de los cuales en muchos casos sus contenidos van a ser extremadamente similares y en otros van a ser tan divergentes, que generan ramificaciones en el modelo de datos.  Por ejemplo, si comparamos dos objetos podríamos tener:

                     Objeto 1                        Objeto 2
                      ------------                       -------------
Datapoint 1     Dropdown                      Dropdown
Datapoint 2     Dropdown - Opción A     Dropdown - Opción B
Datapoint 3     Tabla (6 celdas)             Checkbox                          

Además de los propios data points hay otros aspectos que pueden cambiar el modelo de datos a utilizar, como por ejemplo los metadatos que pasamos inicialmente.

En definitiva, lo que queremos montar es un framework que nos permita definir definer una gran conjunto de datos para un número mucho más reducido de operaciones. Cucumber es una opción interesante, pero lo que realmente me motiva es poder entrar gran candidad de datos en tablas, sin necesidad de escribir en modo user stories. Algo tipo: 

Component Object Action Value Recovery Comment
Descriptor Tag attribute  XML 1 Set Tag content XML 1    
Descriptor Tag attribute  XML n Set Tag content XML n    
Descriptor Login Submit  SFTP server    
Processor   Verify_batch   Abort_Test  

Podría re-aprovechar el parser que monté para generar los datos de prueba del primer módulo (generador), pero si ya hay algo interesante por ahí fuera, por qué no reutilizar :)

Salu2
RS_MARCA_H_200.png

Roman Rodriguez

unread,
Mar 14, 2013, 10:56:06 AM3/14/13
to testq...@googlegroups.com
Tedi,

Con Cucumber podés escribir los datos de entrada en una estructura tipo tabla. Aqui adjunto un ejemplo.

También puedes tomar todos los valores en un solo paso si te resulta conveniente.

Saludos.

Roman







Román Rodriguez

Skype: roman.g.rodriguez

Por favor tome en cuenta el medio ambiente antes de imprimir este e-mail, recicle hojas, imprima de ambos lados.


RS_MARCA_H_200.png
Ejemplo.feature

Manuel Pais

unread,
Mar 14, 2013, 11:51:59 AM3/14/13
to testq...@googlegroups.com

A mi me parece genial una quedada para hablar de estos temas!

Manuel


2013/3/14 Toni Robres Turon <twii...@gmail.com>
RS_MARCA_H_200.png

Tedi Roca

unread,
Mar 15, 2013, 4:34:38 PM3/15/13
to testq...@googlegroups.com
Pinta bien. Voy a darle un vistazo :) 

Gracias.

------------------------
Tedi Roca


__________

<RS_MARCA_H_200.png>
<Ejemplo.feature>

Tedi Roca

unread,
Mar 22, 2013, 6:08:48 AM3/22/13
to testq...@googlegroups.com
Buenos días,

He estado dando un repaso a Cucumber y me ha gustado bastante. La verdad es que nunca lo había utilizado pero pinta genial. También me leí uno de los libros que me habéis recomendado (Cucumber and Cheese) y he de decir que me parece un recurso genial para cualquier persona que se quiera iniciar, no solamente en Cucumer, sino en general en Watir y Ruby. Habría casi matado por tener algo así hace tiempo cuando empecé a hacer mis pinitos en el mundo del scritping :)

Volviendo al tema que estamos intentando poner en marcha, todavía no lo termino de ver montado con Cucumber. Básicamente vamos a generar un set de datos bastante grande, que tenemos que verificar en diferentes puntos, lo cual nos lleva  a un escenario tal que:

Data Set         UI         XML         XML(+XSLT)
---------------------------------------------------------------------------------------------
Data Point 1 Data Point 1 Data Point 1 Data Point 1
.         .         .         .
.         .         .         .
.         .         .         .
Data Point N Data Point N Data Point N Data Point N

Y a partir de aquí generaremos combinaciones de [1...N; N aprox 100]. Una vez generadas las combinaciones, tenemos que verificar los datos (transformados) en diferentes puntos del sistema y cada punto de verificació es asíncrono, lo cual significa que no necesariamente puede verificarse con un escenario completo. Cucumber parece ser ideal para manejar escenarios de alto nivel, pero en nuestro caso la parte clave a estresar es el modelo de datos del sistema, con lo cual todavía no termino de ver claro que nos sirva.

Se me ocurren 3 escenarios sobre cómo hacerlo, utilizando Cucumber (1 y 2) y sin utilizar Cucumber (3)

1) Datos redundantes:

Scenario Outline: Modifying UI values
Given I have no data
When I edit the field "<type>"
And I enter the data "<data>"
And I click the save button
Then I should see the "<data>" persisted for the "<type>" field

| type | field         |
| field_1 | content_1 |
| field_2 | content_2 |
| field_N | content_N |

Repetir esto X veces para cada juego de datos y luego volver a repetirlo para cada punto de validación.


2) Perder detalles:

Definir como en el caso anterior, pero hacer referencia al data set N y reutilizarlo en los siguientes escenarios, parseándolo antes:

3) Keyword-driven:

a. Definir una tabla con todos los datos de entrada.
b. Parsear la tabla y editar los datos en la UI.
c. Exportar el XML inicial y verificarlo contra la tabla de set de datos inicial (parseando los tags).
d. Transformat el XML y verificarlo contra la tabla de set de datos inicial (parseando los tags).

¿Qué os parece?

Luis Espla

unread,
Mar 25, 2013, 6:39:00 AM3/25/13
to testq...@googlegroups.com
Hola,
Quería empezar a hacer unas pruebas con cucumber y me surgen unas dudas:
  • ¿Por que Watir y no sellenium, que ventajas y deventajas véis en uno y en otro? 
  • ¿Watir soporta todas las versiones de Internet Explorer?

Gracias 

 
2013/3/22 Tedi Roca <tedi...@gmail.com>

Iván Fernández

unread,
Mar 25, 2013, 6:49:29 AM3/25/13
to testq...@googlegroups.com
Hola Luis,


Watir soporta únicamente internet explorer, hay cientos de versiones intermedias de estos navegadores y lo mejor es hacer la prueba con las versiones que quieres utilizar para ver si funcionan, y mantenerte en esa versión de Watir todo o que puedas

Saludos,

Iván

__________


Iván Fernández García
Redsauce Engineering Services, S.L



2013/3/25 Luis Espla <luis...@gmail.com>
RS_MARCA_H_200.png
Reply all
Reply to author
Forward
0 new messages