Cara menguji aplikasi Anda secara end-to-end menggunakan Cypress.io

Gambar dari https://unsplash.com/@kellysikkema
Gambar dari https://unsplash.com/@kellysikkema

Di artikel ini, Anda akan mempelajari:





  • Apa itu Cypress dan kapan menggunakannya





  • Dasar-dasar Pengujian Menggunakan Cypress





  • Perintah Cypress Tingkat Lanjut





  • Berinteraksi dengan elemen antarmuka pengguna





  • Praktik Terbaik Menggunakan Cypress






pengantar

Untuk menguji aplikasi Anda, Anda perlu melakukan langkah-langkah berikut:





  • Luncurkan aplikasinya





  • Tunggu server dimulai





  • ( , )





  • , ( , ..)









. , .





Cypress. Cypress , , :





  • ( , ..)













!  Cypress .  , , , .





, โ€” , . Cypress .





, Cypress, .






Cypress

, :





Inisialisasi proyek

, Cypress:





Memasang Cypress
Cypress

 . Linux,   ,  Cypress NPM.





, Cypress , :





Pembukaan Cypress
Cypress

(Test Runner):





Antarmuka Test Runner
Test Runner

.






Cypress

Cypress ,   cypress/integration



.  :





Pergi ke cypress / integration
cypress/integration

JavaScript  basicTest.js



:





Membuat file JavaScript
JavaScript

Cypress, Test Runner :





Pembaruan struktur file waktu nyata

.





/cypress/integration/basicTest.js



:





Kode untuk file basicTest.js
basicTest.js
  • 1:  describe



    Cypress .





  • 2:  it



    , .





  • 3: .  , 2 + 2 4.  false



    , .





,  basicTest.js



Cypress.





Mengklik basicTest.js di Test Runner
basicTest.js Test Runner

:





Hasil uji coba

! , .





, ?   /cypress/integration/basicTest.js



   describe



:





Kode untuk ditambahkan ke basicTest.js
basicTest.js
  • 2: 4 5 10, . , .





.  :





Hasil tes kedua kami

, .  , .





basicTest.js



  :





Kode untuk ditambahkan ke basicTest.js
basicTest.js
  • 2: 5 5   100, .





:





Hasil tes: berhasil!
: !

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



      .





.  :





Hasil dari pengujian kami

!  .  Cypress.





 basicTest.js



:





-

 Demoblaze , , .





 /cypress/integration/



 basicCommandsTest.js



.  :





Kode untuk basicCommandsTest.js
basicCommandsTest.js
  • 3:  visit



    , Cypress - Demoblaze.





 basicCommandsTest.js



Test Runner:





Klik basicCommandsTest.js di Test Runner
basicCommandsTest.js Test Runner

:





!  .  Cypress.





 basicCommandsTest.js



:






Cypress:

. , , HTML Cypress.





Cypress   JQuery  -.





, myButton



id



, :





Mendapatkan elemen melalui id
id

, myButton



, :





Mendapatkan elemen melalui nama kelas

.





  The-Internet  .  -   / .





ยซ ยป.





Halaman pengujian

DevTools, ,  button



 onclick



,  addElement()



.





Tangkapan layar dari DeveloperTools
DeveloperTools

  :





Identifikasi barang

 /cypress/integration



 runningClickCommand.js



.  :





  • 2: -.





  • 6: button



    .





. :





Mengeluarkan hasilnya

, !  , ,  Add Element



.





.





  The-Internetโ€™s login.  .





Tangkapan layar situs untuk pengujian
Tangkapan layar dari DeveloperTools
DeveloperTools
Tangkapan layar dari DeveloperTools
DeveloperTools

username



 id



 username



,  password



 id



 password



.  , Login



 type



 submit



.  ,  username



 password



,   JQuery id



:





Mengidentifikasi elemen dengan id-nya
id

,  button



,    , :





 /cypress/integration



 runningTypeCommand.js



.  :





  • 3: .





  • 6:  username



     type



      ,  tomsmith



    .





  • 7:  password



     SuperSecretPassword



    .





  • 10: ยซยป.





.  :





Mengeluarkan hasil dari menjalankan kode

!  .





  The-Internet .





DevTools:





Alat pengembang
Developer Tools

 type



  checkbox



.  ,   form



 id



 checkboxes



.    JQuery -:





Mengidentifikasi kotak centang kami

 /cypress/integration/



 runningCheckCommand.js



:





  • 4: ,  check



    , .





  • 7: Cypress .





  • 8: .   uncheck



    , .





. :





Hasil uji coba

!  .  Cypress.





.  , HTML, ,  ul



 li



.





 should



.     โ€” The-Internetโ€™s Add Element





Tangkapan layar dari halaman yang diuji
Alat pengembang
Developer Tools

 Delete



 added-manually



.   button



:





Persetujuan kami

:





Menerima item dan kemudian menyetujui

, :





Persetujuan kami

:





Menerima item dan kemudian menyetujui

 /cypress/integration/runningClickCommand.js



:





Kode untuk runningClickCommand.js
runningClickCommand.js
  • 1:  added-manually



    .  , (have.length)



      .





  • 3:  Add Element



    , , (have.text)



       Add Element



    .





.  :





Luncurkan Hasil

!  .   each



.





 cypress/integration/runningClickCommand.js



:





each

   The-Internetโ€™s Add Elements page:





Tangkapan layar situs uji

,  Delete



.  ;  ,  Delete



  . , .





-  each



. , .   Delete



 click



.





Developer Tools:





 Delete



 class



 added-manually



.       each



, :





Mengambil elemen dan menggunakan masing-masing
each

 /cypress/integration/runningClickCommand.js



:





Kode untuk runningClickCommand.js
runningClickCommand.js
  • 2: ,  .added-manually



    .   $el



    .





  • 3: , Cypress.  .





:





Hasil eksekusi kode

!  , .





:





:





  • 2: , Cypress,  Add Element



    20 .





.  :





Hasil eksekusi kode

, - . !





, Cypress.





 cypress/integration/runningClickCommand.js



:






, .  :





Bukan struktur terbaik

Test Runner :





Menampilkan struktur pengujian di Test Runner
Test Runner

Cypress , .  , :





Struktur proyek yang bagus

, :





:





Kode sampel

,     get



 type



.    ,  .





 cypress/support/commands.js



:





  • 1: ,  identifier



     data



    .





  • 2: , .





 .  /cypress/support/commands.js



.





:





Kode sampel

, .





ยซยป

:





HTML  id



 first



.





Cypress .  , , :





 and



 should



.





Cypress

exec



  .  .





 localhost



, ,    Cypress.





Perintah Terminal

GitHub

GitHub





  • Cypress Tutorial Videos





  • End-To-End Testing With Cypress by codedamn





  • Real Confidence With Cypress





  • Best practices with Cypress: AssertJS Conference






Pengujian adalah langkah kunci dalam proses pengembangan karena ini memastikan bahwa aplikasi Anda berfungsi dengan benar. Beberapa programmer lebih suka menguji program mereka secara manual karena tes menulis membutuhkan banyak waktu dan energi. Untungnya, Cypress telah memecahkan masalah ini dengan mengizinkan pengembang untuk menulis tes dalam jangka waktu yang singkat.





Terima kasih telah mencapai akhir! Jika Anda merasa bingung, saya menyarankan Anda untuk bermain-main dengan kode dan melihat contoh.








All Articles