So testen Sie Ihre Anwendung durchgehend mit Cypress.io

Bild von https://unsplash.com/@kellysikkema
Bild von https://unsplash.com/@kellysikkema

In diesem Artikel erfahren Sie:





  • Was ist Cypress und wann soll es verwendet werden?





  • Testen der Grundlagen mit Cypress





  • Erweiterte Cypress-Befehle





  • Interaktion mit Elementen der Benutzeroberfläche





  • Best Practices mit Cypress






Einführung

Um Ihre Anwendungen zu testen, müssen Sie die folgenden Schritte ausführen:





  • Anwendung starten





  • Warten Sie, bis der Server gestartet ist





  • ( , )





  • , ( , ..)









. , .





Cypress. Cypress , , :





  • ( , ..)













!  Cypress .  , , , .





, — , . Cypress .





, Cypress, .






Cypress

, :





Projektinitialisierung

, Cypress:





Cypress installieren
Cypress

 . Linux,   ,  Cypress NPM.





, Cypress , :





Eröffnung der Zypresse
Cypress

(Test Runner):





Test Runner-Schnittstelle
Test Runner

.






Cypress

Cypress ,   cypress/integration



.  :





Gehen Sie zu Zypresse / Integration
cypress/integration

JavaScript  basicTest.js



:





Erstellen einer JavaScript-Datei
JavaScript

Cypress, Test Runner :





Aktualisierung der Dateistruktur in Echtzeit

.





/cypress/integration/basicTest.js



:





Der Code für die Datei basicTest.js
basicTest.js
  • 1:  describe



    Cypress .





  • 2:  it



    , .





  • 3: .  , 2 + 2 4.  false



    , .





,  basicTest.js



Cypress.





Klicken Sie im Test Runner auf basicTest.js
basicTest.js Test Runner

:





Testergebnis

! , .





, ?   /cypress/integration/basicTest.js



   describe



:





Code zum Hinzufügen zu basicTest.js
basicTest.js
  • 2: 4 5 10, . , .





.  :





Das Ergebnis unseres zweiten Tests

, .  , .





basicTest.js



  :





Code zum Hinzufügen zu basicTest.js
basicTest.js
  • 2: 5 5   100, .





:





Testergebnis: erfolgreich!
: !

!  .  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



      .





.  :





Das Ergebnis der Durchführung unseres Tests

!  .  Cypress.





 basicTest.js



:





-

 Demoblaze , , .





 /cypress/integration/



 basicCommandsTest.js



.  :





Code für basicCommandsTest.js
basicCommandsTest.js
  • 3:  visit



    , Cypress - Demoblaze.





 basicCommandsTest.js



Test Runner:





Klicken Sie im Test Runner auf basicCommandsTest.js
basicCommandsTest.js Test Runner

:





!  .  Cypress.





 basicCommandsTest.js



:






Cypress:

. , , HTML Cypress.





Cypress   JQuery  -.





, myButton



id



, :





Ein Element über die ID abrufen
id

, myButton



, :





Ein Element über einen Klassennamen abrufen

.





  The-Internet  .  -   / .





« ».





Testseite

DevTools, ,  button



 onclick



,  addElement()



.





Screenshot von DeveloperTools
DeveloperTools

  :





Artikelidentifikation

 /cypress/integration



 runningClickCommand.js



.  :





  • 2: -.





  • 6: button



    .





. :





Ergebnis ausgeben

, !  , ,  Add Element



.





.





  The-Internet’s login.  .





Screenshot der Site zum Testen
Screenshot von DeveloperTools
DeveloperTools
Screenshot von DeveloperTools
DeveloperTools

username



 id



 username



,  password



 id



 password



.  , Login



 type



 submit



.  ,  username



 password



,   JQuery id



:





Identifizieren eines Elements anhand seiner ID
id

,  button



,    , :





 /cypress/integration



 runningTypeCommand.js



.  :





  • 3: .





  • 6:  username



     type



      ,  tomsmith



    .





  • 7:  password



     SuperSecretPassword



    .





  • 10: «».





.  :





Ausgabe des Ergebnisses der Ausführung des Codes

!  .





  The-Internet .





DevTools:





Entwicklerwerkzeuge
Developer Tools

 type



  checkbox



.  ,   form



 id



 checkboxes



.    JQuery -:





Identifizierung unserer Kontrollkästchen

 /cypress/integration/



 runningCheckCommand.js



:





  • 4: ,  check



    , .





  • 7: Cypress .





  • 8: .   uncheck



    , .





. :





Testergebnis

!  .  Cypress.





.  , HTML, ,  ul



 li



.





 should



.     — The-Internet’s Add Element





Screenshot der getesteten Seite
Entwicklerwerkzeuge
Developer Tools

 Delete



 added-manually



.   button



:





Unsere Zustimmung

:





Einen Artikel erhalten und dann genehmigen

, :





Unsere Zustimmung

:





Einen Artikel erhalten und dann genehmigen

 /cypress/integration/runningClickCommand.js



:





Code für runningClickCommand.js
runningClickCommand.js
  • 1:  added-manually



    .  , (have.length)



      .





  • 3:  Add Element



    , , (have.text)



       Add Element



    .





.  :





Ergebnis starten

!  .   each



.





 cypress/integration/runningClickCommand.js



:





each

   The-Internet’s Add Elements page:





Screenshot der Teststelle

,  Delete



.  ;  ,  Delete



  . , .





-  each



. , .   Delete



 click



.





Developer Tools:





 Delete



 class



 added-manually



.       each



, :





Ein Element abrufen und dann jedes verwenden
each

 /cypress/integration/runningClickCommand.js



:





Code für runningClickCommand.js
runningClickCommand.js
  • 2: ,  .added-manually



    .   $el



    .





  • 3: , Cypress.  .





:





Ergebnis der Codeausführung

!  , .





:





:





  • 2: , Cypress,  Add Element



    20 .





.  :





Ergebnis der Codeausführung

, - . !





, Cypress.





 cypress/integration/runningClickCommand.js



:






, .  :





Nicht die beste Struktur

Test Runner :





Anzeigen der Teststruktur im Test Runner
Test Runner

Cypress , .  , :





Gute Projektstruktur

, :





:





Beispielcode

,     get



 type



.    ,  .





 cypress/support/commands.js



:





  • 1: ,  identifier



     data



    .





  • 2: , .





 .  /cypress/support/commands.js



.





:





Beispielcode

, .





«»

:





HTML  id



 first



.





Cypress .  , , :





 and



 should



.





Cypress

exec



  .  .





 localhost



, ,    Cypress.





Terminalbefehle

GitHub

GitHub





  • Cypress Tutorial Videos





  • End-To-End Testing With Cypress by codedamn





  • Real Confidence With Cypress





  • Best practices with Cypress: AssertJS Conference






Das Testen ist ein wichtiger Schritt im Entwicklungsprozess, da es sicherstellt, dass Ihre Anwendung ordnungsgemäß funktioniert. Einige Programmierer ziehen es vor, ihre Programme manuell zu testen, da das Schreiben von Tests viel Zeit und Energie kostet. Glücklicherweise hat Cypress dieses Problem gelöst, indem es dem Entwickler ermöglicht hat, Tests in kurzer Zeit zu schreiben.





Danke, dass du es bis zum Ende geschafft hast! Wenn Sie Verwirrung stiften, empfehle ich Ihnen, mit dem Code zu spielen und die Beispiele durchzugehen.








All Articles