SlideShare una empresa de Scribd logo
Alberto Torreblanca
                        @albert1t0




Selenium & Drupal

Drupal Camp Lima 2011
"Sale el sol"
El poRque de los test
➔
    Se ha convertido en un
    estándar de calidad.
➔
    Ahorra tiempo de
    tiempo.
➔
    Pruebas en diferentes
    navegadores.
➔
    Protege los
    'Workflows'.
Algunas pautas - testing

             ➔
                 Todos los tests tienen
                 que tener un punto de
                 partida.
             ➔
                 Un test no tiene que
                 depender de otros,
                 para existir.
             ➔
                 Un test debe evaluar
                 una sola funcionalidad.
             ➔
                 Un test debe recoger
                 su basura al terminar.
                 (Cuando sea posible)
Algunos datos de
selenium IDE ...
➔
    Entorno para el
    desarrollo de pruebas
    automatizadas
➔
    Pruebas de tipo
    funcional a través de
    un navegador.
➔
    Open source,
    desarrollado en
    Javascript.
➔
    Extensión para Firefox.
Instalando Selenium IDE


➔
    Descargarlo en el site del
    proyecto:
    http://seleniumhq.org/download/

➔
    Realizarlo desde Firefox
➔
    Se intalará el IDE y
    varios Formatters.
➔
    Herramientas ››
    Selenium IDE.
Panel – selenium ide
            ➔
                Dirección Base
            ➔
                Velocidad - slider
            ➔
                Ejecutar todos los test.
            ➔
                Ejecutar un test.
            ➔
                Pausar.
            ➔
                Paso a paso - en pausa.
            ➔
                Aplicar secuencias
                repetitivas (Avanzado)
            ➔
                Grabado.
EJEMPLO – TEST CASE
Verify & assert
           ➔
               verifyElementPresent
           ➔
               verifyElementNotPrese
               nt
           ➔
               verifyText
           ➔
               verifyAttribute
           ➔
               verifyChecked
           ➔
               verifyAlert
           ➔
               verifyTitle
LOCALIZANDO

➔
    ID
➔
    Name
➔
    Link
➔
    Xpath
➔
    CSS
XPATH
➔
    //div[contains(text(),'
    Tiene un nombre')]
➔
    //div[@class='leftdiv']
    /input[2]
➔
    //input[@value='Butto
    n with ID']/following-
    sibling::input[@value='
    Sibling Button']
MISCELANEA - SELECTOR
           ➔
               link=Pertineo Quidne Si
               Validus
           ➔
               css=h2 > a (con Value)
           ➔
               //a[contains(text(),'Pert
               ineo Quidne Si Validus')]
           ➔
               //div[@id='node-
               97']/h2/a
           ➔
               //a[contains(@href,
               '/d7demo/node/97')]
           ➔
               //h2/a (con Value)
MáS ...



➔   Se puede buscar patrones:
    verifyText
    css=h2 > a
    glob:*dus
➔   Se pueden buscar o veificar
    expresiones regulares:
    verifyText
    css=div.meta.submitted > span
    regexp:w{7} w{3} *
JavaScript
➔
    javascript{ 10 * 10 }
➔
    javascript{ d = new
    Date();d.getHours()}
➔
    Acceso al DOM a través del
    objeto browserbot
    var window =
    this.browserbot.getUserWi
    ndow();
➔
    Fireevents en los test
    (onFocus, onBlur,
    onChange, onSubmit,
    onMouseOut,
    onMouseOver
Comentario & variable

➔
    Comentar es
    importante.
➔
    Store
➔
    Storetext
➔
    Store .....
➔
    Echo ${var}
➔
    ${var}
ALMACENANDO SUITES

           ➔
               Se guardan los casos
               independientes.
           ➔
               Se guardan los test
               Suites.
           ➔
               Todo lo que se guarda
               es HTML (Tablas)
           ➔
               Guarda para llamar
               desde otros lenguajes.
Selenium rc
➔
    Servidor java
    multiplataforma
➔
    Ejecución de pruebas
    en diferentes
    navegadores
➔
    Diferentes lenguajes
    java, python, php, C#,
    Ruby, PHPUnit, TestNG
Lanzando el server
➔   FIREFOX
    java -jar selenium-server-standalone-2.15.0.jar -htmlSuite
    *firefox http://localhost/d7demo
    ruta_completa/Test_suite.html ruta_completa/result.html
➔   CHROME
    java -jar selenium-server-standalone-2.15.0.jar -htmlSuite
    *chrome http://localhost/d7demo
    ruta_completa/Test_suite.html ruta_completa/result.html
➔   IEXPLORER
    java -jar selenium-server-standalone-2.15.0.jar -htmlSuite
    *firefox http://localhost/d7demo
    ruta_completa/Test_suite.html ruta_completa/result.html
EJEMPLO CHROME
REFERENCIAS
          http://seleniumhq.org/docs/
GRACIAS
alberto.torreblanca@gmail.com
          @albert1t0

Más contenido relacionado

Similar a Selenium & Drupal

Prueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriverPrueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriver
David Gómez García
 
Gwt III - Avanzado
Gwt III - AvanzadoGwt III - Avanzado
Gwt III - Avanzado
Manuel Carrasco Moñino
 
[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven
Eudris Cabrera
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJS
Rodrigo Pimentel
 
Jvmmx docker jvm
Jvmmx docker jvmJvmmx docker jvm
Jvmmx docker jvm
superserch
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
Andy Dawson
 
Introducción a groovy & grails
Introducción a groovy & grailsIntroducción a groovy & grails
Introducción a groovy & grails
Fátima Casaú Pérez
 
Curso TDD Ruby on Rails #03: Tests unitarios
Curso TDD Ruby on Rails #03: Tests unitariosCurso TDD Ruby on Rails #03: Tests unitarios
Curso TDD Ruby on Rails #03: Tests unitarios
Alberto Perdomo
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
BEEVA_es
 
Construccion de proyectos con gradle
Construccion de proyectos con gradleConstruccion de proyectos con gradle
Construccion de proyectos con gradle
David Gómez García
 
Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain
Raul Fraile
 
Cloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de PersistenciaCloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de Persistencia
David J. Brenes
 
Groovy & Grails
Groovy & GrailsGroovy & Grails
Groovy & Grailsbetabeers
 
Breve introducción práctica al DevOps - (es) 2021_03_18
Breve introducción práctica al DevOps -  (es) 2021_03_18Breve introducción práctica al DevOps -  (es) 2021_03_18
Breve introducción práctica al DevOps - (es) 2021_03_18
Young Suk Ahn Park
 
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfPHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
Raaulroodriguez
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2
Mario IC
 
Rompiendo paradigmas
Rompiendo paradigmasRompiendo paradigmas
Rompiendo paradigmas
Zuriel Diaz
 
Pipelines as Code en Azure DevOps
Pipelines as Code en Azure DevOpsPipelines as Code en Azure DevOps
Pipelines as Code en Azure DevOps
Christian Melendez
 
Open Source Modern Web Development
Open Source Modern Web DevelopmentOpen Source Modern Web Development
Open Source Modern Web DevelopmentJaime Irurzun
 

Similar a Selenium & Drupal (20)

Prueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriverPrueba De Aplicaciones Web con Selenium 2 y WebDriver
Prueba De Aplicaciones Web con Selenium 2 y WebDriver
 
Gwt III - Avanzado
Gwt III - AvanzadoGwt III - Avanzado
Gwt III - Avanzado
 
[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven[ES] Primeros pasos con Maven
[ES] Primeros pasos con Maven
 
Probando aplicaciones AngularJS
Probando aplicaciones AngularJSProbando aplicaciones AngularJS
Probando aplicaciones AngularJS
 
Jvmmx docker jvm
Jvmmx docker jvmJvmmx docker jvm
Jvmmx docker jvm
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Introducción a groovy & grails
Introducción a groovy & grailsIntroducción a groovy & grails
Introducción a groovy & grails
 
Curso TDD Ruby on Rails #03: Tests unitarios
Curso TDD Ruby on Rails #03: Tests unitariosCurso TDD Ruby on Rails #03: Tests unitarios
Curso TDD Ruby on Rails #03: Tests unitarios
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
 
Construccion de proyectos con gradle
Construccion de proyectos con gradleConstruccion de proyectos con gradle
Construccion de proyectos con gradle
 
Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain
 
Cloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de PersistenciaCloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de Persistencia
 
Groovy & Grails
Groovy & GrailsGroovy & Grails
Groovy & Grails
 
Breve introducción práctica al DevOps - (es) 2021_03_18
Breve introducción práctica al DevOps -  (es) 2021_03_18Breve introducción práctica al DevOps -  (es) 2021_03_18
Breve introducción práctica al DevOps - (es) 2021_03_18
 
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdfPHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf PHP.pdf
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2
 
Rompiendo paradigmas
Rompiendo paradigmasRompiendo paradigmas
Rompiendo paradigmas
 
Pipelines as Code en Azure DevOps
Pipelines as Code en Azure DevOpsPipelines as Code en Azure DevOps
Pipelines as Code en Azure DevOps
 
Open Source Modern Web Development
Open Source Modern Web DevelopmentOpen Source Modern Web Development
Open Source Modern Web Development
 
Jdbc
JdbcJdbc
Jdbc
 

Más de Alberto Torreblanca Villavicencio

Drupal Camp 2013 - Lo nuevo de Open Atrium 2
Drupal Camp 2013 -  Lo nuevo de Open Atrium 2Drupal Camp 2013 -  Lo nuevo de Open Atrium 2
Drupal Camp 2013 - Lo nuevo de Open Atrium 2
Alberto Torreblanca Villavicencio
 
Drupal Camp Lima 2013 - Drupal & PhpStorm
Drupal Camp Lima 2013 - Drupal & PhpStormDrupal Camp Lima 2013 - Drupal & PhpStorm
Drupal Camp Lima 2013 - Drupal & PhpStorm
Alberto Torreblanca Villavicencio
 
Metodologías ágiles desarrollo de software
Metodologías ágiles   desarrollo de softwareMetodologías ágiles   desarrollo de software
Metodologías ágiles desarrollo de software
Alberto Torreblanca Villavicencio
 
Internet, pasado y presente
Internet, pasado y presenteInternet, pasado y presente
Internet, pasado y presente
Alberto Torreblanca Villavicencio
 
Análisis de items con jMetrik
Análisis de items con jMetrikAnálisis de items con jMetrik
Análisis de items con jMetrik
Alberto Torreblanca Villavicencio
 
Medición y construcción de instrumentos
Medición y construcción de instrumentosMedición y construcción de instrumentos
Medición y construcción de instrumentos
Alberto Torreblanca Villavicencio
 
Cursos virtuales con chamilo lms
Cursos virtuales con chamilo lmsCursos virtuales con chamilo lms
Cursos virtuales con chamilo lms
Alberto Torreblanca Villavicencio
 
Mobile learning curso y lecciones en la red
Mobile learning   curso y lecciones en la redMobile learning   curso y lecciones en la red
Mobile learning curso y lecciones en la red
Alberto Torreblanca Villavicencio
 
La educación & internet
La educación &  internetLa educación &  internet
La educación & internet
Alberto Torreblanca Villavicencio
 
E social learning
E social learningE social learning
Migrando data - DRUPAL
Migrando data - DRUPALMigrando data - DRUPAL
Migrando data - DRUPAL
Alberto Torreblanca Villavicencio
 
Entornos personales de aprendizaje
Entornos personales de aprendizajeEntornos personales de aprendizaje
Entornos personales de aprendizaje
Alberto Torreblanca Villavicencio
 
Actualidad del e-learning
Actualidad del e-learningActualidad del e-learning
Actualidad del e-learning
Alberto Torreblanca Villavicencio
 
Cambiando de paradigmas en las aulas
Cambiando de paradigmas en las aulasCambiando de paradigmas en las aulas
Cambiando de paradigmas en las aulas
Alberto Torreblanca Villavicencio
 
Iniciándose en Drupal 7 con Druppix
Iniciándose en Drupal 7 con DruppixIniciándose en Drupal 7 con Druppix
Iniciándose en Drupal 7 con Druppix
Alberto Torreblanca Villavicencio
 
Lo nuevo de drupal 7 - Invasión drupal 27-11-2010
Lo nuevo de drupal 7 - Invasión drupal 27-11-2010Lo nuevo de drupal 7 - Invasión drupal 27-11-2010
Lo nuevo de drupal 7 - Invasión drupal 27-11-2010
Alberto Torreblanca Villavicencio
 
Open Atrium - adaptación español
Open Atrium - adaptación españolOpen Atrium - adaptación español
Open Atrium - adaptación español
Alberto Torreblanca Villavicencio
 
Spanish Redistributable Intro To Scrum
Spanish Redistributable Intro To ScrumSpanish Redistributable Intro To Scrum
Spanish Redistributable Intro To Scrum
Alberto Torreblanca Villavicencio
 
MedicióN Y EvaluacióN
MedicióN Y EvaluacióNMedicióN Y EvaluacióN
MedicióN Y EvaluacióN
Alberto Torreblanca Villavicencio
 

Más de Alberto Torreblanca Villavicencio (20)

Drupal Camp 2013 - Lo nuevo de Open Atrium 2
Drupal Camp 2013 -  Lo nuevo de Open Atrium 2Drupal Camp 2013 -  Lo nuevo de Open Atrium 2
Drupal Camp 2013 - Lo nuevo de Open Atrium 2
 
Drupal Camp Lima 2013 - Drupal & PhpStorm
Drupal Camp Lima 2013 - Drupal & PhpStormDrupal Camp Lima 2013 - Drupal & PhpStorm
Drupal Camp Lima 2013 - Drupal & PhpStorm
 
Metodologías ágiles desarrollo de software
Metodologías ágiles   desarrollo de softwareMetodologías ágiles   desarrollo de software
Metodologías ágiles desarrollo de software
 
Internet, pasado y presente
Internet, pasado y presenteInternet, pasado y presente
Internet, pasado y presente
 
Análisis de items con jMetrik
Análisis de items con jMetrikAnálisis de items con jMetrik
Análisis de items con jMetrik
 
Medición y construcción de instrumentos
Medición y construcción de instrumentosMedición y construcción de instrumentos
Medición y construcción de instrumentos
 
Cursos virtuales con chamilo lms
Cursos virtuales con chamilo lmsCursos virtuales con chamilo lms
Cursos virtuales con chamilo lms
 
Mobile learning curso y lecciones en la red
Mobile learning   curso y lecciones en la redMobile learning   curso y lecciones en la red
Mobile learning curso y lecciones en la red
 
Introducción a la administración de sitios web
Introducción a la administración de sitios webIntroducción a la administración de sitios web
Introducción a la administración de sitios web
 
La educación & internet
La educación &  internetLa educación &  internet
La educación & internet
 
E social learning
E social learningE social learning
E social learning
 
Migrando data - DRUPAL
Migrando data - DRUPALMigrando data - DRUPAL
Migrando data - DRUPAL
 
Entornos personales de aprendizaje
Entornos personales de aprendizajeEntornos personales de aprendizaje
Entornos personales de aprendizaje
 
Actualidad del e-learning
Actualidad del e-learningActualidad del e-learning
Actualidad del e-learning
 
Cambiando de paradigmas en las aulas
Cambiando de paradigmas en las aulasCambiando de paradigmas en las aulas
Cambiando de paradigmas en las aulas
 
Iniciándose en Drupal 7 con Druppix
Iniciándose en Drupal 7 con DruppixIniciándose en Drupal 7 con Druppix
Iniciándose en Drupal 7 con Druppix
 
Lo nuevo de drupal 7 - Invasión drupal 27-11-2010
Lo nuevo de drupal 7 - Invasión drupal 27-11-2010Lo nuevo de drupal 7 - Invasión drupal 27-11-2010
Lo nuevo de drupal 7 - Invasión drupal 27-11-2010
 
Open Atrium - adaptación español
Open Atrium - adaptación españolOpen Atrium - adaptación español
Open Atrium - adaptación español
 
Spanish Redistributable Intro To Scrum
Spanish Redistributable Intro To ScrumSpanish Redistributable Intro To Scrum
Spanish Redistributable Intro To Scrum
 
MedicióN Y EvaluacióN
MedicióN Y EvaluacióNMedicióN Y EvaluacióN
MedicióN Y EvaluacióN
 

Selenium & Drupal

  • 1. Alberto Torreblanca @albert1t0 Selenium & Drupal Drupal Camp Lima 2011 "Sale el sol"
  • 2. El poRque de los test ➔ Se ha convertido en un estándar de calidad. ➔ Ahorra tiempo de tiempo. ➔ Pruebas en diferentes navegadores. ➔ Protege los 'Workflows'.
  • 3. Algunas pautas - testing ➔ Todos los tests tienen que tener un punto de partida. ➔ Un test no tiene que depender de otros, para existir. ➔ Un test debe evaluar una sola funcionalidad. ➔ Un test debe recoger su basura al terminar. (Cuando sea posible)
  • 4. Algunos datos de selenium IDE ... ➔ Entorno para el desarrollo de pruebas automatizadas ➔ Pruebas de tipo funcional a través de un navegador. ➔ Open source, desarrollado en Javascript. ➔ Extensión para Firefox.
  • 5. Instalando Selenium IDE ➔ Descargarlo en el site del proyecto: http://seleniumhq.org/download/ ➔ Realizarlo desde Firefox ➔ Se intalará el IDE y varios Formatters. ➔ Herramientas ›› Selenium IDE.
  • 6. Panel – selenium ide ➔ Dirección Base ➔ Velocidad - slider ➔ Ejecutar todos los test. ➔ Ejecutar un test. ➔ Pausar. ➔ Paso a paso - en pausa. ➔ Aplicar secuencias repetitivas (Avanzado) ➔ Grabado.
  • 8. Verify & assert ➔ verifyElementPresent ➔ verifyElementNotPrese nt ➔ verifyText ➔ verifyAttribute ➔ verifyChecked ➔ verifyAlert ➔ verifyTitle
  • 9. LOCALIZANDO ➔ ID ➔ Name ➔ Link ➔ Xpath ➔ CSS
  • 10. XPATH ➔ //div[contains(text(),' Tiene un nombre')] ➔ //div[@class='leftdiv'] /input[2] ➔ //input[@value='Butto n with ID']/following- sibling::input[@value=' Sibling Button']
  • 11. MISCELANEA - SELECTOR ➔ link=Pertineo Quidne Si Validus ➔ css=h2 > a (con Value) ➔ //a[contains(text(),'Pert ineo Quidne Si Validus')] ➔ //div[@id='node- 97']/h2/a ➔ //a[contains(@href, '/d7demo/node/97')] ➔ //h2/a (con Value)
  • 12. MáS ... ➔ Se puede buscar patrones: verifyText css=h2 > a glob:*dus ➔ Se pueden buscar o veificar expresiones regulares: verifyText css=div.meta.submitted > span regexp:w{7} w{3} *
  • 13. JavaScript ➔ javascript{ 10 * 10 } ➔ javascript{ d = new Date();d.getHours()} ➔ Acceso al DOM a través del objeto browserbot var window = this.browserbot.getUserWi ndow(); ➔ Fireevents en los test (onFocus, onBlur, onChange, onSubmit, onMouseOut, onMouseOver
  • 14. Comentario & variable ➔ Comentar es importante. ➔ Store ➔ Storetext ➔ Store ..... ➔ Echo ${var} ➔ ${var}
  • 15. ALMACENANDO SUITES ➔ Se guardan los casos independientes. ➔ Se guardan los test Suites. ➔ Todo lo que se guarda es HTML (Tablas) ➔ Guarda para llamar desde otros lenguajes.
  • 16. Selenium rc ➔ Servidor java multiplataforma ➔ Ejecución de pruebas en diferentes navegadores ➔ Diferentes lenguajes java, python, php, C#, Ruby, PHPUnit, TestNG
  • 17.
  • 18. Lanzando el server ➔ FIREFOX java -jar selenium-server-standalone-2.15.0.jar -htmlSuite *firefox http://localhost/d7demo ruta_completa/Test_suite.html ruta_completa/result.html ➔ CHROME java -jar selenium-server-standalone-2.15.0.jar -htmlSuite *chrome http://localhost/d7demo ruta_completa/Test_suite.html ruta_completa/result.html ➔ IEXPLORER java -jar selenium-server-standalone-2.15.0.jar -htmlSuite *firefox http://localhost/d7demo ruta_completa/Test_suite.html ruta_completa/result.html
  • 20. REFERENCIAS http://seleniumhq.org/docs/