Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Functional testing with Geb
Search
Isidro López
December 04, 2015
Programming
0
100
Functional testing with Geb
Isidro López
December 04, 2015
Tweet
Share
More Decks by Isidro López
See All by Isidro López
Thinking about value
islomar
1
63
Valor por encima de código: el poder del Despliegue Continuo
islomar
1
200
Pusheando en master, que es gerundio
islomar
2
230
Refactoring legacy code using Approval testing (Meetup Alicante)
islomar
3
130
Aventuras y desventuras de un mindundi en Spotify
islomar
3
1.6k
Mutation testing 101
islomar
3
150
Agile (mucho) más allá de Scrum
islomar
1
160
TCR workshop
islomar
1
510
Refactoring legacy code using Approval testing
islomar
0
40
Other Decks in Programming
See All in Programming
週次リリースを実現するための グローバルアプリ開発
tera_ny
1
110
rails stats で紐解く ANDPAD のイマを支える技術たち
andpad
1
300
創造的活動から切り拓く新たなキャリア 好きから始めてみる夜勤オペレーターからSREへの転身
yjszk
1
130
Итераторы в Go 1.23: зачем они нужны, как использовать, и насколько они быстрые?
lamodatech
0
880
暇に任せてProxmoxコンソール 作ってみました
karugamo
2
720
これでLambdaが不要に?!Step FunctionsのJSONata対応について
iwatatomoya
2
3.7k
20年もののレガシープロダクトに 0からPHPStanを入れるまで / phpcon2024
hirobe1999
0
540
ブラウザ単体でmp4書き出すまで - muddy-web - 2024-12
yue4u
3
490
モバイルアプリにおける自動テストの導入戦略
ostk0069
0
110
GitHubで育つ コラボレーション文化 : ニフティでのインナーソース挑戦事例 - 2024-12-16 GitHub Universe 2024 Recap in ZOZO
niftycorp
PRO
0
100
17年周年のWebアプリケーションにTanStack Queryを導入する / Implementing TanStack Query in a 17th Anniversary Web Application
saitolume
0
250
SymfonyCon Vienna 2025: Twig, still relevant in 2025?
fabpot
3
1.2k
Featured
See All Featured
A designer walks into a library…
pauljervisheath
205
24k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
900
A Modern Web Designer's Workflow
chriscoyier
693
190k
A Tale of Four Properties
chriscoyier
157
23k
Producing Creativity
orderedlist
PRO
342
39k
Scaling GitHub
holman
459
140k
Bash Introduction
62gerente
609
210k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
For a Future-Friendly Web
brad_frost
175
9.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
170
Transcript
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
None
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?