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
110
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
86
Valor por encima de código: el poder del Despliegue Continuo
islomar
1
210
Pusheando en master, que es gerundio
islomar
2
230
Refactoring legacy code using Approval testing (Meetup Alicante)
islomar
3
140
Aventuras y desventuras de un mindundi en Spotify
islomar
3
1.6k
Mutation testing 101
islomar
3
160
Agile (mucho) más allá de Scrum
islomar
1
180
TCR workshop
islomar
1
530
Refactoring legacy code using Approval testing
islomar
0
45
Other Decks in Programming
See All in Programming
ペアーズでの、Langfuseを中心とした評価ドリブンなリリースサイクルのご紹介
fukubaka0825
2
330
Introduction to kotlinx.rpc
arawn
0
700
苦しいTiDBへの移行を乗り越えて快適な運用を目指す
leveragestech
0
640
さいきょうのレイヤードアーキテクチャについて考えてみた
yahiru
3
760
Rails アプリ地図考 Flush Cut
makicamel
1
120
社内フレームワークとその依存性解決 / in-house framework and its dependency management
vvakame
1
560
AWS Organizations で実現する、 マルチ AWS アカウントのルートユーザー管理からの脱却
atpons
0
150
ARA Ansible for the teams
kksat
0
150
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
2
140
法律の脱レガシーに学ぶフロントエンド刷新
oguemon
5
740
仕様変更に耐えるための"今の"DRY原則を考える / Rethinking the "Don't repeat yourself" for resilience to specification changes
mkmk884
3
570
Serverless Rust: Your Low-Risk Entry Point to Rust in Production (and the benefits are huge)
lmammino
1
110
Featured
See All Featured
KATA
mclloyd
29
14k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Into the Great Unknown - MozCon
thekraken
35
1.6k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
The Cost Of JavaScript in 2023
addyosmani
47
7.3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Making Projects Easy
brettharned
116
6k
Visualization
eitanlees
146
15k
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?