Tests funcionales con Geb
Índice
1. Características de Geb
2. Alternativas
3. Uso en otras empresas
4. Debate sobre tests funcionales
Test pyramid
Qué es Geb
● Browser automation solution
● Integrable con JUnit, TestNG, Cucumber,
Spock…
● Build system integration: Gradle, Grails,
Maven
Qué es Geb
Geb se apoya en:
● WebDriver cross-browser automation
● jQuery content selection
● Page Object modelling
● Groovy DSL
Selenium WebDriver
Browser automation framework
Sucesor de Selenium Remote Control
Funciona tanto en navegador real como
headless (e.g. PhantomJS)
Selenium WebDriver
● Cross-browser:
○ FF, IE, Chrome, Opera.
○ Experimental:
■ Chrome on Android,
■ Safari on iPhone/iPad
● Remote browsers (e.g. run IE from *NIX)
● Headless browsers
○ (HTMLUnit, PhantomJS)
Page Objects
Modela áreas UI como objetos
Reusabilidad/Mantenibilidad
Permite la herencia
Modules
Reutilización de bloques UI entre Pages
Permite declarar métodos ( = acciones)
Ejemplo: menú lateral, search input, etc.
jQuery content selection
Find, filter and interact with DOM elements
Permite:
● Assert content
● Trigger actions
… y más...
Elementos existentes por convención:
● title
● heading
Lanzar misma batería de pruebas en FF, Chrome, IE, etc.
Reporting
AJAX support
Alternativas
● WebDriver a pelo
● Apache JMeter
● Canoo WebTest
● Grails functional test
Ejemplo integrado en Scrum (I)
● Sprint Planning
○ Se decide si se va a crear test funcional o no
○ Se incluye en estimación y se crea tarea en US
● Pertenecía al DoD
Ejemplo integrado en Scrum (II)
● QA
○ Define las pruebas en Cucumber
○ [a veces también las implementan]
● Desarrolladores
○ Implementan las pruebas
○ [a veces también las definen]
Debate
● ¿Queremos tests funcionales?
● En caso afirmativo,
○ ¿cuándo, para qué?
○ ¿qué framework utilizar?

Tests funcionales con Geb

  • 1.
  • 2.
    Índice 1. Características deGeb 2. Alternativas 3. Uso en otras empresas 4. Debate sobre tests funcionales
  • 3.
  • 4.
    Qué es Geb ●Browser automation solution ● Integrable con JUnit, TestNG, Cucumber, Spock… ● Build system integration: Gradle, Grails, Maven
  • 5.
    Qué es Geb Gebse apoya en: ● WebDriver cross-browser automation ● jQuery content selection ● Page Object modelling ● Groovy DSL
  • 6.
    Selenium WebDriver Browser automationframework Sucesor de Selenium Remote Control Funciona tanto en navegador real como headless (e.g. PhantomJS)
  • 7.
    Selenium WebDriver ● Cross-browser: ○FF, IE, Chrome, Opera. ○ Experimental: ■ Chrome on Android, ■ Safari on iPhone/iPad ● Remote browsers (e.g. run IE from *NIX) ● Headless browsers ○ (HTMLUnit, PhantomJS)
  • 8.
    Page Objects Modela áreasUI como objetos Reusabilidad/Mantenibilidad Permite la herencia
  • 9.
    Modules Reutilización de bloquesUI entre Pages Permite declarar métodos ( = acciones) Ejemplo: menú lateral, search input, etc.
  • 10.
    jQuery content selection Find,filter and interact with DOM elements Permite: ● Assert content ● Trigger actions
  • 11.
    … y más... Elementosexistentes por convención: ● title ● heading Lanzar misma batería de pruebas en FF, Chrome, IE, etc. Reporting AJAX support
  • 13.
    Alternativas ● WebDriver apelo ● Apache JMeter ● Canoo WebTest ● Grails functional test
  • 14.
    Ejemplo integrado enScrum (I) ● Sprint Planning ○ Se decide si se va a crear test funcional o no ○ Se incluye en estimación y se crea tarea en US ● Pertenecía al DoD
  • 15.
    Ejemplo integrado enScrum (II) ● QA ○ Define las pruebas en Cucumber ○ [a veces también las implementan] ● Desarrolladores ○ Implementan las pruebas ○ [a veces también las definen]
  • 16.
    Debate ● ¿Queremos testsfuncionales? ● En caso afirmativo, ○ ¿cuándo, para qué? ○ ¿qué framework utilizar?