SlideShare una empresa de Scribd logo
1 de 33
Casper js 
Asegurando la calidad en front-­end
David gil 
Desarrollador Drupal en 
david.gil@biko2.com 
@david_gil_biko2
¿ en 
proyectos 
Drupal ? 
Test funcionales 
Aseguran que el 
sw cumple los 
requisitos
¿Para qué? 
* Test de regresión automatizados 
- Automatizamos los test manuales. 
- Grabaciones de navegación + aserciones 
* Test de bugs de regresión automatizados 
- Al resolver un bug creamos test para 
garantizar que no se reproduce
¿Para qué? 
* Pruebas de humo automatizadas 
- Prueban automáticamente que una serie de 
funcionalidades clave siguen funcionando después 
de un deploy 
* refactoring
Show me the code!
Phantom js 
PhantomJS es un navegador headless basado en 
WebKit que proporciona un API JavaScript para 
controlarlo. 
Dispone de soporte nativo para: Manejo del DOM, 
selectores CSS, JSON, Canvas y SVG. 
¡Además, es rápido!.
Casper js 
CasperJS es una librería javascript que permite 
realizar scripts de navegación y tests usando 
PhantomJS (y SlimerJS). 
Permite realizar test de front-end del estilo a los 
que se realizan con frameworks como PHPUnit 
para testear código.
Casper js 
Syntactic Sugar para: 
• Definir pasos de navegación 
• Rellenar y enviar formularios 
• Click y seguir links 
• Capturar pantallazos 
• Testear el DOM 
• Descargar recursos 
• Escribir test funcionales y exportar los resultados 
a JUnit XML 
• scraping de Webs
Pruebas de humo en 
www.museoreinasofia.es 
Ej.1
Verde que te quiero verde!
Test de regresión en 
www.museoreinasofia.es 
Ej.2
Asegurando el css: phantom css 
https://github.com/Huddle/PhantomCSS
La primera vez es distinto
La primera vez es distinto
Verde que te quiero verde!
Vamos a hacerlo fallar
Soy un artista!
chapucero
Test con drupal 
Ej.3 
www.internetacademi.com
¡titan juampy! 
Utilidades para casper en drupal 
https://www.drupal.org/project/casperjs
internetAcademi vive de 
vender cursos. ¡Que no se 
rompa el proceso de 
compra! 
test de funcionalidades clave 
• Hago una compra como anónimo y hago 
verificaciones en el front 
• Me conecto al backend como admin 
• ¿Esta la compra? ¿importe correcto? ¿estado 
correcto? 
• ¿No vale solo el front?. Tenemos procesos 
complejos de sincronización con salesforce
Verde que te quiero verde!
Resurrectio: Grabación de test 
https://github.com/ebrehault/resurrectio
¡Muchas gracias! 
david.gil@ biko2.com 
@david_gil_biko2

Más contenido relacionado

La actualidad más candente

Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJSBEEVA_es
 
Nodejs.introduccion
Nodejs.introduccionNodejs.introduccion
Nodejs.introduccionkillfill
 
PHP Conference Argentina 2014
PHP Conference Argentina 2014PHP Conference Argentina 2014
PHP Conference Argentina 2014aciliainternet
 
ASP.NET 5 en Linux y Mac OS X: herramientas e integración
ASP.NET 5 en Linux y Mac OS X: herramientas e integraciónASP.NET 5 en Linux y Mac OS X: herramientas e integración
ASP.NET 5 en Linux y Mac OS X: herramientas e integraciónLuis Ruiz Pavón
 
Introduccion a Nodejs
Introduccion a NodejsIntroduccion a Nodejs
Introduccion a NodejsJan Sanchez
 
Curso node.js
Curso node.js Curso node.js
Curso node.js Redradix
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishJordi Llonch
 
Tools for High Availability
Tools for High AvailabilityTools for High Availability
Tools for High AvailabilityLuis Toscano
 
Multiplica tu productividad usando un preprocesador de css
Multiplica tu productividad usando un preprocesador de cssMultiplica tu productividad usando un preprocesador de css
Multiplica tu productividad usando un preprocesador de cssLeonidas Esteban González
 
Symfony2 Introducción
Symfony2 IntroducciónSymfony2 Introducción
Symfony2 Introducciónstrate
 
Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)PiXeL16
 
Manejo de packages en Kubernetes con Helm
Manejo de packages en Kubernetes con HelmManejo de packages en Kubernetes con Helm
Manejo de packages en Kubernetes con HelmMario IC
 
C:\fakepath\optimizacion
C:\fakepath\optimizacionC:\fakepath\optimizacion
C:\fakepath\optimizacionGonzalo C.
 
Integrando Groovy & Grails en el proceso de desarrollo
Integrando Groovy & Grails en el proceso de desarrolloIntegrando Groovy & Grails en el proceso de desarrollo
Integrando Groovy & Grails en el proceso de desarrolloJose Juan R. Zuñiga
 

La actualidad más candente (20)

Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
 
Nodejs.introduccion
Nodejs.introduccionNodejs.introduccion
Nodejs.introduccion
 
PHP Conference Argentina 2014
PHP Conference Argentina 2014PHP Conference Argentina 2014
PHP Conference Argentina 2014
 
ASP.NET 5 en Linux y Mac OS X: herramientas e integración
ASP.NET 5 en Linux y Mac OS X: herramientas e integraciónASP.NET 5 en Linux y Mac OS X: herramientas e integración
ASP.NET 5 en Linux y Mac OS X: herramientas e integración
 
Introduccion a Nodejs
Introduccion a NodejsIntroduccion a Nodejs
Introduccion a Nodejs
 
Introduccion a Node.js
Introduccion a Node.jsIntroduccion a Node.js
Introduccion a Node.js
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
 
Curso node.js
Curso node.js Curso node.js
Curso node.js
 
Introducción a Ansible
Introducción a AnsibleIntroducción a Ansible
Introducción a Ansible
 
Introducción a Node.js
Introducción a Node.jsIntroducción a Node.js
Introducción a Node.js
 
DeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - SpanishDeSymfonyDay 2014 - To mock or not to mock - Spanish
DeSymfonyDay 2014 - To mock or not to mock - Spanish
 
Tools for High Availability
Tools for High AvailabilityTools for High Availability
Tools for High Availability
 
Ajax
AjaxAjax
Ajax
 
Multiplica tu productividad usando un preprocesador de css
Multiplica tu productividad usando un preprocesador de cssMultiplica tu productividad usando un preprocesador de css
Multiplica tu productividad usando un preprocesador de css
 
Symfony2 Introducción
Symfony2 IntroducciónSymfony2 Introducción
Symfony2 Introducción
 
Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)Node JS (Francisco Cerdas)
Node JS (Francisco Cerdas)
 
Ipconfig
IpconfigIpconfig
Ipconfig
 
Manejo de packages en Kubernetes con Helm
Manejo de packages en Kubernetes con HelmManejo de packages en Kubernetes con Helm
Manejo de packages en Kubernetes con Helm
 
C:\fakepath\optimizacion
C:\fakepath\optimizacionC:\fakepath\optimizacion
C:\fakepath\optimizacion
 
Integrando Groovy & Grails en el proceso de desarrollo
Integrando Groovy & Grails en el proceso de desarrolloIntegrando Groovy & Grails en el proceso de desarrollo
Integrando Groovy & Grails en el proceso de desarrollo
 

Destacado

Uso de html5 + webcomponents
Uso de html5 + webcomponentsUso de html5 + webcomponents
Uso de html5 + webcomponentsAvanet
 
Mejora tus US con UX y modelos de satisfacción
Mejora tus US con UX y modelos de satisfacciónMejora tus US con UX y modelos de satisfacción
Mejora tus US con UX y modelos de satisfaccióndnmoncada
 
Integración de WAI-ARIA en HTML5
Integración de WAI-ARIA en HTML5Integración de WAI-ARIA en HTML5
Integración de WAI-ARIA en HTML5Jose R. Hilera
 
Ejemplo de corrección de errores de accesibilidad WCAG 2.0 en una página web
Ejemplo de corrección de errores de accesibilidad WCAG 2.0 en una página webEjemplo de corrección de errores de accesibilidad WCAG 2.0 en una página web
Ejemplo de corrección de errores de accesibilidad WCAG 2.0 en una página webJose R. Hilera
 
Desarrollo de Mobile Web Apps
Desarrollo de Mobile Web AppsDesarrollo de Mobile Web Apps
Desarrollo de Mobile Web AppsAsier Marqués
 
Introducción a Google Dart + HTML5
Introducción a Google Dart + HTML5Introducción a Google Dart + HTML5
Introducción a Google Dart + HTML5Avanet
 
REST, jQuery y otros Frameworks JS
REST, jQuery y otros Frameworks JSREST, jQuery y otros Frameworks JS
REST, jQuery y otros Frameworks JSAdolfo Sanz De Diego
 
Workflow para volar con el CSS
Workflow para volar con el CSSWorkflow para volar con el CSS
Workflow para volar con el CSSNaiara Abaroa
 
Accesibilidad, hojas estilo cascada, y tu
Accesibilidad, hojas estilo cascada, y tuAccesibilidad, hojas estilo cascada, y tu
Accesibilidad, hojas estilo cascada, y tuAdrian Moreno Garcia
 
Introducción a HTML - CSS - JS
Introducción a HTML - CSS - JS Introducción a HTML - CSS - JS
Introducción a HTML - CSS - JS Alejandro Miguel
 
PAUTAS W3C DE ACCESIBILIDAD PARA HERRAMIENTAS DE EDICIÓN WEB (ATAG 2.0)
PAUTAS W3C DE ACCESIBILIDAD PARA HERRAMIENTAS DE EDICIÓN WEB (ATAG 2.0)PAUTAS W3C DE ACCESIBILIDAD PARA HERRAMIENTAS DE EDICIÓN WEB (ATAG 2.0)
PAUTAS W3C DE ACCESIBILIDAD PARA HERRAMIENTAS DE EDICIÓN WEB (ATAG 2.0)Jose R. Hilera
 
Ejemplos WAI-ARIA con HTML, CSS y JavaScript
Ejemplos WAI-ARIA con HTML, CSS y JavaScriptEjemplos WAI-ARIA con HTML, CSS y JavaScript
Ejemplos WAI-ARIA con HTML, CSS y JavaScriptJose R. Hilera
 
Desarrollo de aplicaciones web 3.0 (linked data + bpm + cloud)
Desarrollo de aplicaciones web 3.0 (linked data + bpm + cloud) Desarrollo de aplicaciones web 3.0 (linked data + bpm + cloud)
Desarrollo de aplicaciones web 3.0 (linked data + bpm + cloud) Software Guru
 
Depurando Java Script - Programador PHP
Depurando Java Script - Programador PHPDepurando Java Script - Programador PHP
Depurando Java Script - Programador PHPJuan Belón Pérez
 
Herramientas de evaluación de accesibilidad web WCAG 2.0
Herramientas de evaluación de accesibilidad web WCAG 2.0Herramientas de evaluación de accesibilidad web WCAG 2.0
Herramientas de evaluación de accesibilidad web WCAG 2.0Jose R. Hilera
 
Herramientas Frontend - Betabeers Salamanca - Enero 2015
Herramientas Frontend - Betabeers Salamanca - Enero 2015Herramientas Frontend - Betabeers Salamanca - Enero 2015
Herramientas Frontend - Betabeers Salamanca - Enero 2015Jesus Merino Parra
 
Taller de Maquetacion web | Jorge Callalle Torres
Taller de Maquetacion web | Jorge Callalle TorresTaller de Maquetacion web | Jorge Callalle Torres
Taller de Maquetacion web | Jorge Callalle TorresJorge Luis Callalle Torres
 

Destacado (20)

Uso de html5 + webcomponents
Uso de html5 + webcomponentsUso de html5 + webcomponents
Uso de html5 + webcomponents
 
Mejora tus US con UX y modelos de satisfacción
Mejora tus US con UX y modelos de satisfacciónMejora tus US con UX y modelos de satisfacción
Mejora tus US con UX y modelos de satisfacción
 
Integración de WAI-ARIA en HTML5
Integración de WAI-ARIA en HTML5Integración de WAI-ARIA en HTML5
Integración de WAI-ARIA en HTML5
 
Desarrollo de webapps 1
Desarrollo de webapps 1Desarrollo de webapps 1
Desarrollo de webapps 1
 
Tools and Frameworks
Tools and FrameworksTools and Frameworks
Tools and Frameworks
 
Ejemplo de corrección de errores de accesibilidad WCAG 2.0 en una página web
Ejemplo de corrección de errores de accesibilidad WCAG 2.0 en una página webEjemplo de corrección de errores de accesibilidad WCAG 2.0 en una página web
Ejemplo de corrección de errores de accesibilidad WCAG 2.0 en una página web
 
Desarrollo de Mobile Web Apps
Desarrollo de Mobile Web AppsDesarrollo de Mobile Web Apps
Desarrollo de Mobile Web Apps
 
Introducción a Google Dart + HTML5
Introducción a Google Dart + HTML5Introducción a Google Dart + HTML5
Introducción a Google Dart + HTML5
 
REST, jQuery y otros Frameworks JS
REST, jQuery y otros Frameworks JSREST, jQuery y otros Frameworks JS
REST, jQuery y otros Frameworks JS
 
Workflow para volar con el CSS
Workflow para volar con el CSSWorkflow para volar con el CSS
Workflow para volar con el CSS
 
Accesibilidad, hojas estilo cascada, y tu
Accesibilidad, hojas estilo cascada, y tuAccesibilidad, hojas estilo cascada, y tu
Accesibilidad, hojas estilo cascada, y tu
 
Introducción a HTML - CSS - JS
Introducción a HTML - CSS - JS Introducción a HTML - CSS - JS
Introducción a HTML - CSS - JS
 
PAUTAS W3C DE ACCESIBILIDAD PARA HERRAMIENTAS DE EDICIÓN WEB (ATAG 2.0)
PAUTAS W3C DE ACCESIBILIDAD PARA HERRAMIENTAS DE EDICIÓN WEB (ATAG 2.0)PAUTAS W3C DE ACCESIBILIDAD PARA HERRAMIENTAS DE EDICIÓN WEB (ATAG 2.0)
PAUTAS W3C DE ACCESIBILIDAD PARA HERRAMIENTAS DE EDICIÓN WEB (ATAG 2.0)
 
Flujos de interaccion
Flujos de interaccionFlujos de interaccion
Flujos de interaccion
 
Ejemplos WAI-ARIA con HTML, CSS y JavaScript
Ejemplos WAI-ARIA con HTML, CSS y JavaScriptEjemplos WAI-ARIA con HTML, CSS y JavaScript
Ejemplos WAI-ARIA con HTML, CSS y JavaScript
 
Desarrollo de aplicaciones web 3.0 (linked data + bpm + cloud)
Desarrollo de aplicaciones web 3.0 (linked data + bpm + cloud) Desarrollo de aplicaciones web 3.0 (linked data + bpm + cloud)
Desarrollo de aplicaciones web 3.0 (linked data + bpm + cloud)
 
Depurando Java Script - Programador PHP
Depurando Java Script - Programador PHPDepurando Java Script - Programador PHP
Depurando Java Script - Programador PHP
 
Herramientas de evaluación de accesibilidad web WCAG 2.0
Herramientas de evaluación de accesibilidad web WCAG 2.0Herramientas de evaluación de accesibilidad web WCAG 2.0
Herramientas de evaluación de accesibilidad web WCAG 2.0
 
Herramientas Frontend - Betabeers Salamanca - Enero 2015
Herramientas Frontend - Betabeers Salamanca - Enero 2015Herramientas Frontend - Betabeers Salamanca - Enero 2015
Herramientas Frontend - Betabeers Salamanca - Enero 2015
 
Taller de Maquetacion web | Jorge Callalle Torres
Taller de Maquetacion web | Jorge Callalle TorresTaller de Maquetacion web | Jorge Callalle Torres
Taller de Maquetacion web | Jorge Callalle Torres
 

Similar a Casper JS - Asegurando la calidad en front-end Drupal

Conferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y RailsConferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y RailsDavid Calavera
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJSRodrigo Pimentel
 
Java script para desarrolladores SharePoint
Java script para desarrolladores SharePointJava script para desarrolladores SharePoint
Java script para desarrolladores SharePointAdrian Diaz Cervera
 
Automatización de pruebas funcionales
Automatización de pruebas funcionalesAutomatización de pruebas funcionales
Automatización de pruebas funcionalesVicenç García-Altés
 
Introducción a SharePoint Framework
Introducción a SharePoint FrameworkIntroducción a SharePoint Framework
Introducción a SharePoint FrameworkHaaron Gonzalez
 
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup
 
Presentación RodrigoPolo.com @ Barcamp Guatemala '09
Presentación RodrigoPolo.com @ Barcamp Guatemala '09Presentación RodrigoPolo.com @ Barcamp Guatemala '09
Presentación RodrigoPolo.com @ Barcamp Guatemala '09Rodrigo Polo
 
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARLa Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARPablo Godel
 
Optimizando Sitios Web
Optimizando Sitios WebOptimizando Sitios Web
Optimizando Sitios WebGrupo Mediabox
 
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?Martin Siniawski
 
Unit & Integration Testing
Unit & Integration TestingUnit & Integration Testing
Unit & Integration TestingJavier Carranza
 

Similar a Casper JS - Asegurando la calidad en front-end Drupal (20)

Conferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y RailsConferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y Rails
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJS
 
Java script para desarrolladores SharePoint
Java script para desarrolladores SharePointJava script para desarrolladores SharePoint
Java script para desarrolladores SharePoint
 
BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
 
Automatización de pruebas funcionales
Automatización de pruebas funcionalesAutomatización de pruebas funcionales
Automatización de pruebas funcionales
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
 
Testing, tipos y otros flamewars
Testing, tipos y otros flamewarsTesting, tipos y otros flamewars
Testing, tipos y otros flamewars
 
Ruby on Rails en Grandes Companias, Casos Reales
Ruby on Rails en Grandes Companias, Casos RealesRuby on Rails en Grandes Companias, Casos Reales
Ruby on Rails en Grandes Companias, Casos Reales
 
Html5
Html5Html5
Html5
 
Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
 
Introducción a SharePoint Framework
Introducción a SharePoint FrameworkIntroducción a SharePoint Framework
Introducción a SharePoint Framework
 
Angular js in mobile
Angular js in mobileAngular js in mobile
Angular js in mobile
 
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
.NET UY Meetup 4 - AOP & PostSharp by Bruno Bologna & Fabian Fernandez
 
Presentación RodrigoPolo.com @ Barcamp Guatemala '09
Presentación RodrigoPolo.com @ Barcamp Guatemala '09Presentación RodrigoPolo.com @ Barcamp Guatemala '09
Presentación RodrigoPolo.com @ Barcamp Guatemala '09
 
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceARLa Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
La Caja de Herramientas del Desarrollador Moderno PHPConferenceAR
 
Optimizando Sitios Web
Optimizando Sitios WebOptimizando Sitios Web
Optimizando Sitios Web
 
Mejores practicas para acelerar sitios web
Mejores practicas para acelerar sitios webMejores practicas para acelerar sitios web
Mejores practicas para acelerar sitios web
 
Scrum para uno
Scrum para unoScrum para uno
Scrum para uno
 
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
 
Unit & Integration Testing
Unit & Integration TestingUnit & Integration Testing
Unit & Integration Testing
 

Más de David Gil Sánchez

Selfbank - Caso Éxito - DrupalCamp Caceres 2016
Selfbank - Caso Éxito - DrupalCamp Caceres 2016Selfbank - Caso Éxito - DrupalCamp Caceres 2016
Selfbank - Caso Éxito - DrupalCamp Caceres 2016David Gil Sánchez
 
Drupal & Paragraphs. DrupalCamp Granada 2016
Drupal & Paragraphs. DrupalCamp Granada 2016Drupal & Paragraphs. DrupalCamp Granada 2016
Drupal & Paragraphs. DrupalCamp Granada 2016David Gil Sánchez
 
Presentación MuseoReinaSofia.es en Drupal Camp 2013
Presentación MuseoReinaSofia.es en Drupal Camp 2013Presentación MuseoReinaSofia.es en Drupal Camp 2013
Presentación MuseoReinaSofia.es en Drupal Camp 2013David Gil Sánchez
 
Mejora la experiencia de búsquedas con SOLR - Sesión Drupal Camp 2013 - Caceres
Mejora la experiencia de búsquedas con SOLR - Sesión Drupal Camp 2013 - CaceresMejora la experiencia de búsquedas con SOLR - Sesión Drupal Camp 2013 - Caceres
Mejora la experiencia de búsquedas con SOLR - Sesión Drupal Camp 2013 - CaceresDavid Gil Sánchez
 
Drupal + Solr Mejorando la experiencia de búsqueda
Drupal + Solr Mejorando la experiencia de búsquedaDrupal + Solr Mejorando la experiencia de búsqueda
Drupal + Solr Mejorando la experiencia de búsquedaDavid Gil Sánchez
 
BancaCivica.es: Un caso de éxito Drupal en el sector bancario
BancaCivica.es: Un caso de éxito Drupal en el sector bancarioBancaCivica.es: Un caso de éxito Drupal en el sector bancario
BancaCivica.es: Un caso de éxito Drupal en el sector bancarioDavid Gil Sánchez
 

Más de David Gil Sánchez (6)

Selfbank - Caso Éxito - DrupalCamp Caceres 2016
Selfbank - Caso Éxito - DrupalCamp Caceres 2016Selfbank - Caso Éxito - DrupalCamp Caceres 2016
Selfbank - Caso Éxito - DrupalCamp Caceres 2016
 
Drupal & Paragraphs. DrupalCamp Granada 2016
Drupal & Paragraphs. DrupalCamp Granada 2016Drupal & Paragraphs. DrupalCamp Granada 2016
Drupal & Paragraphs. DrupalCamp Granada 2016
 
Presentación MuseoReinaSofia.es en Drupal Camp 2013
Presentación MuseoReinaSofia.es en Drupal Camp 2013Presentación MuseoReinaSofia.es en Drupal Camp 2013
Presentación MuseoReinaSofia.es en Drupal Camp 2013
 
Mejora la experiencia de búsquedas con SOLR - Sesión Drupal Camp 2013 - Caceres
Mejora la experiencia de búsquedas con SOLR - Sesión Drupal Camp 2013 - CaceresMejora la experiencia de búsquedas con SOLR - Sesión Drupal Camp 2013 - Caceres
Mejora la experiencia de búsquedas con SOLR - Sesión Drupal Camp 2013 - Caceres
 
Drupal + Solr Mejorando la experiencia de búsqueda
Drupal + Solr Mejorando la experiencia de búsquedaDrupal + Solr Mejorando la experiencia de búsqueda
Drupal + Solr Mejorando la experiencia de búsqueda
 
BancaCivica.es: Un caso de éxito Drupal en el sector bancario
BancaCivica.es: Un caso de éxito Drupal en el sector bancarioBancaCivica.es: Un caso de éxito Drupal en el sector bancario
BancaCivica.es: Un caso de éxito Drupal en el sector bancario
 

Casper JS - Asegurando la calidad en front-end Drupal

  • 1. Casper js Asegurando la calidad en front-­end
  • 2. David gil Desarrollador Drupal en david.gil@biko2.com @david_gil_biko2
  • 3. ¿ en proyectos Drupal ? Test funcionales Aseguran que el sw cumple los requisitos
  • 4. ¿Para qué? * Test de regresión automatizados - Automatizamos los test manuales. - Grabaciones de navegación + aserciones * Test de bugs de regresión automatizados - Al resolver un bug creamos test para garantizar que no se reproduce
  • 5. ¿Para qué? * Pruebas de humo automatizadas - Prueban automáticamente que una serie de funcionalidades clave siguen funcionando después de un deploy * refactoring
  • 6. Show me the code!
  • 7. Phantom js PhantomJS es un navegador headless basado en WebKit que proporciona un API JavaScript para controlarlo. Dispone de soporte nativo para: Manejo del DOM, selectores CSS, JSON, Canvas y SVG. ¡Además, es rápido!.
  • 8. Casper js CasperJS es una librería javascript que permite realizar scripts de navegación y tests usando PhantomJS (y SlimerJS). Permite realizar test de front-end del estilo a los que se realizan con frameworks como PHPUnit para testear código.
  • 9. Casper js Syntactic Sugar para: • Definir pasos de navegación • Rellenar y enviar formularios • Click y seguir links • Capturar pantallazos • Testear el DOM • Descargar recursos • Escribir test funcionales y exportar los resultados a JUnit XML • scraping de Webs
  • 10. Pruebas de humo en www.museoreinasofia.es Ej.1
  • 11.
  • 12. Verde que te quiero verde!
  • 13. Test de regresión en www.museoreinasofia.es Ej.2
  • 14. Asegurando el css: phantom css https://github.com/Huddle/PhantomCSS
  • 15.
  • 16. La primera vez es distinto
  • 17. La primera vez es distinto
  • 18. Verde que te quiero verde!
  • 19. Vamos a hacerlo fallar
  • 22. Test con drupal Ej.3 www.internetacademi.com
  • 23. ¡titan juampy! Utilidades para casper en drupal https://www.drupal.org/project/casperjs
  • 24. internetAcademi vive de vender cursos. ¡Que no se rompa el proceso de compra! test de funcionalidades clave • Hago una compra como anónimo y hago verificaciones en el front • Me conecto al backend como admin • ¿Esta la compra? ¿importe correcto? ¿estado correcto? • ¿No vale solo el front?. Tenemos procesos complejos de sincronización con salesforce
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31. Verde que te quiero verde!
  • 32. Resurrectio: Grabación de test https://github.com/ebrehault/resurrectio
  • 33. ¡Muchas gracias! david.gil@ biko2.com @david_gil_biko2