Cómo probar su aplicación de un extremo a otro usando Cypress.io

Imagen de https://unsplash.com/@kellysikkema
Imagen de https://unsplash.com/@kellysikkema

En este artículo, aprenderá:





  • Que es Cypress y cuando usarlo





  • Pruebas básicas con Cypress





  • Comandos avanzados de Cypress





  • Interactuar con los elementos de la interfaz de usuario





  • Prácticas recomendadas con Cypress






Introducción

Para probar sus aplicaciones, debe seguir los siguientes pasos:





  • Iniciar la aplicacion





  • Espere a que se inicie el servidor





  • ( , )





  • , ( , ..)









. , .





Cypress. Cypress , , :





  • ( , ..)













!  Cypress .  , , , .





, — , . Cypress .





, Cypress, .






Cypress

, :





Inicialización del proyecto

, Cypress:





Instalación de Cypress
Cypress

 . Linux,   ,  Cypress NPM.





, Cypress , :





Apertura de Cypress
Cypress

(Test Runner):





Interfaz de Test Runner
Test Runner

.






Cypress

Cypress ,   cypress/integration



.  :





Ir a ciprés / integración
cypress/integration

JavaScript  basicTest.js



:





Creando un archivo JavaScript
JavaScript

Cypress, Test Runner :





Actualización de la estructura de archivos en tiempo real

.





/cypress/integration/basicTest.js



:





El código para el archivo basicTest.js
basicTest.js
  • 1:  describe



    Cypress .





  • 2:  it



    , .





  • 3: .  , 2 + 2 4.  false



    , .





,  basicTest.js



Cypress.





Al hacer clic en basicTest.js en Test Runner
basicTest.js Test Runner

:





Resultado de la ejecución de la prueba

! , .





, ?   /cypress/integration/basicTest.js



   describe



:





Código para agregar a basicTest.js
basicTest.js
  • 2: 4 5 10, . , .





.  :





El resultado de nuestra segunda prueba

, .  , .





basicTest.js



  :





Código para agregar a basicTest.js
basicTest.js
  • 2: 5 5   100, .





:





Resultado de la prueba: ¡exitoso!
: !

!  .  expect



  BDD (behavior-driven) .  , (test-driven assertions).





 /cypress/integration/basicTest.js



:





(test-driven assertions) assert

TDD  assert



.





 basicTest.js



:





  • 2:  name



      age



    .





  • 6:  isObject



    person



    .   true



    ,  value is object



    .  , .





  • 10: ,  name



      .





  • 14: ,  name



      .





.  :





El resultado de ejecutar nuestra prueba

!  .  Cypress.





 basicTest.js



:





-

 Demoblaze , , .





 /cypress/integration/



 basicCommandsTest.js



.  :





Código para basicCommandsTest.js
basicCommandsTest.js
  • 3:  visit



    , Cypress - Demoblaze.





 basicCommandsTest.js



Test Runner:





Haga clic en basicCommandsTest.js en Test Runner
basicCommandsTest.js Test Runner

:





!  .  Cypress.





 basicCommandsTest.js



:






Cypress:

. , , HTML Cypress.





Cypress   JQuery  -.





, myButton



id



, :





Obtener un elemento a través de la identificación
id

, myButton



, :





Obtener un elemento a través de un nombre de clase

.





  The-Internet  .  -   / .





« ».





Página de prueba

DevTools, ,  button



 onclick



,  addElement()



.





Captura de pantalla de DeveloperTools
DeveloperTools

  :





Identificación del artículo

 /cypress/integration



 runningClickCommand.js



.  :





  • 2: -.





  • 6: button



    .





. :





Salida del resultado

, !  , ,  Add Element



.





.





  The-Internet’s login.  .





Captura de pantalla del sitio para realizar pruebas
Captura de pantalla de DeveloperTools
DeveloperTools
Captura de pantalla de DeveloperTools
DeveloperTools

username



 id



 username



,  password



 id



 password



.  , Login



 type



 submit



.  ,  username



 password



,   JQuery id



:





Identificar un elemento por su id
id

,  button



,    , :





 /cypress/integration



 runningTypeCommand.js



.  :





  • 3: .





  • 6:  username



     type



      ,  tomsmith



    .





  • 7:  password



     SuperSecretPassword



    .





  • 10: «».





.  :





Salida del resultado de ejecutar el código

!  .





  The-Internet .





DevTools:





Herramientas de desarrollo
Developer Tools

 type



  checkbox



.  ,   form



 id



 checkboxes



.    JQuery -:





Identificando nuestras casillas de verificación

 /cypress/integration/



 runningCheckCommand.js



:





  • 4: ,  check



    , .





  • 7: Cypress .





  • 8: .   uncheck



    , .





. :





Resultado de la ejecución de la prueba

!  .  Cypress.





.  , HTML, ,  ul



 li



.





 should



.     — The-Internet’s Add Element





Captura de pantalla de la página probada
Herramientas de desarrollo
Developer Tools

 Delete



 added-manually



.   button



:





Nuestra aprobacion

:





Recibir un artículo y luego aprobarlo

, :





Nuestra aprobacion

:





Recibir un artículo y luego aprobarlo

 /cypress/integration/runningClickCommand.js



:





Código para ejecutarClickCommand.js
runningClickCommand.js
  • 1:  added-manually



    .  , (have.length)



      .





  • 3:  Add Element



    , , (have.text)



       Add Element



    .





.  :





Resultado de lanzamiento

!  .   each



.





 cypress/integration/runningClickCommand.js



:





each

   The-Internet’s Add Elements page:





Captura de pantalla del sitio de prueba

,  Delete



.  ;  ,  Delete



  . , .





-  each



. , .   Delete



 click



.





Developer Tools:





 Delete



 class



 added-manually



.       each



, :





Recuperar un elemento y usar cada uno de ellos
each

 /cypress/integration/runningClickCommand.js



:





Código para ejecutarClickCommand.js
runningClickCommand.js
  • 2: ,  .added-manually



    .   $el



    .





  • 3: , Cypress.  .





:





Resultado de la ejecución del código

!  , .





:





:





  • 2: , Cypress,  Add Element



    20 .





.  :





Resultado de la ejecución del código

, - . !





, Cypress.





 cypress/integration/runningClickCommand.js



:






, .  :





No es la mejor estructura

Test Runner :





Visualización de la estructura de prueba en Test Runner
Test Runner

Cypress , .  , :





Buena estructura de proyecto

, :





:





Código de muestra

,     get



 type



.    ,  .





 cypress/support/commands.js



:





  • 1: ,  identifier



     data



    .





  • 2: , .





 .  /cypress/support/commands.js



.





:





Código de muestra

, .





«»

:





HTML  id



 first



.





Cypress .  , , :





 and



 should



.





Cypress

exec



  .  .





 localhost



, ,    Cypress.





Comandos de terminal

GitHub

GitHub





  • Cypress Tutorial Videos





  • End-To-End Testing With Cypress by codedamn





  • Real Confidence With Cypress





  • Best practices with Cypress: AssertJS Conference






La prueba es un paso clave en el proceso de desarrollo porque asegura que su aplicación funcione correctamente. Algunos programadores prefieren probar manualmente sus programas porque escribir pruebas requiere una cantidad significativa de tiempo y energía. Afortunadamente, Cypress ha resuelto este problema al permitir que el desarrollador escriba pruebas en un período de tiempo corto.





¡Gracias por llegar hasta el final! Si siente alguna confusión, le aconsejo que juegue con el código y lea los ejemplos.








All Articles