Napa Selenium lan Timun Ora Digunakake Bareng

Ing posting iki, aku bakal nerangake sebabe aku yakin ora becik nulis tes otomatis UI karo Selenium lan Timun.

Judhul kiriman kasebut nyebutake Selenium lan Timun amarga alat kasebut minangka otomatisasi browser lan alat BDD sing paling populer, nanging konteks artikel iki ditrapake kanggo alat otomatisasi UI sing digabung karo alat BDD.

Sadurunge luwih jero, ayo maneh sawetara informasi latar mburi.




Apa Selenium?

Selenium minangka alat uji coba otomatisasi browser sing bisa berinteraksi karo elemen HTML aplikasi web kanggo nggawe simulasi kegiatan pangguna.

Ing Selenium WebDriver, kita bisa nulis skrip ing pirang-pirang basa pamrograman lan bisa dadi aset sing apik kanggo macem-macem tes OS lan lintas-browser.




Apa Timun?

Timun digawe kanggo ndorong proses Development behaviour Driven Development (BDD), saengga pelanggan bisa nggambarake sarat minangka serangkaian conto sing diarani skenario, ing file teks biasa nggunakake basa Gherkin ing format Given When Then.



Ing jagad Cucumber, file-file kasebut diarani file fitur sing ditinjau dening tim Scrum kanggo ngerti persyaratan sing jelas sadurunge miwiti pangembangan nyata.

Sawise pangembangan ditindakake, pangembang lan / utawa QA bakal nulis Definisi Langkah sing intine cuplikan kode sing ngubungake skenario saka file fitur menyang kode tes sing nglakokake tumindak tumrap aplikasi sing lagi dites.



Selenium lan Timun

Selenium lan Timun minangka alat sing apik kanggo keperluane dhewe, nanging yen digunakake bebarengan, prekara ora bisa kawin kanthi becik! Ayo ndeleng apa.


Crita umume ditulis saka perspektif pangguna, kayata:

Fitur: Fungsi mlebu

Minangka pangguna situs web abc.com

Aku pengin pelanggan bisa mlebu situs kasebut


Supaya bisa ndeleng informasi akun kasebut.

Sabanjure, Skenario ing file fitur ditulis kanthi cara sing nggambarake tumindake fitur nalika pangguna sesambungan karo aplikasi . Contone:

Skenario 1: Login sing sah

Amarga aku ana ing kaca Login abc.com


Nalika aku ngetik kredensial sing valid

Banjur aku dialihake menyang kaca Akunku

Supaya sampeyan bisa nambah skenario kanggo nyoba kombinasi data sing beda.

Amarga crita lan file fitur kasebut ditulis saka sudut pandang tingkat dhuwur, lan amarga kita pengin ngotomatisasi skenario, mula bisa nulis definisi langkah ing Timun sing nyebut Selenium kanggo nyopir aplikasi kasebut, tindakake lan verifikasi asile.


Nanging, ing kene ana masalah; nalika miwiti nggabungake Selenium karo Timun kanggo nulis tes UI otomatis.

Ing kabeh keadilan, ing kasus-kasus sederhana kaya skenario Login ing ndhuwur, samubarang cocog banget lan pendekatane katon bisa dipercaya, lan nyatane, conto-conto sing sampeyan weruh ing internet, nuduhake panggunaan Selenium lan Timun, kayane diwatesi mung kanggo conto Login sing misuwur.

Sing maca blog kaya ngono bakal nganggep bisa njupuk skenario Login sing sederhana lan ngetrapake prinsip sing padha karo konteks aplikasi sing luwih jembar.

Nanging aja nganti diapusi, amarga samubarang bisa dadi asem banget karo Selenium lan Timun nalika ditrapake kanggo aplikasi adhedhasar web gedhe ing jagad nyata.

Ayo njupuk conto kaca asil telusuran aplikasi e-commerce khas sing adol produk kanthi online. Biasane kaca asil telusuran kebak fitur, kayata saringan, jinis, dhaptar produk, kemampuan kanggo ngganti telusuran, kemampuan kanggo nutupi utawa mbukak otomatis nalika nggulung, lsp, kaya sing bisa dideleng ing gambar ing ngisor iki:

Aku bakal nganggep manawa saben fitur ing kaca asil telusuran, ditambahake menyang situs kanthi tambahan kanthi nggunakake pangembangan tangkas.

Nglamar prinsip sing padha karo conto Login sing sederhana, amarga saben fitur dikembangake, kita bakal duwe file fitur masing-masing kapenuhan macem-macem skenario. Contone:

Ing pengulangan 1 pangembangan, 'Filter miturut Rega' dikembangake, mula kita bakal duwe file fitur kanthi skenario dhewe sing gegandhengan karo filter rega.

Ing pengulangan 2 pangembangan, 'Filter miturut Rating Star' dikembangake, mula kita bakal duwe file fitur kanthi skenario dhewe sing gegandhengan karo filter rating bintang, lan liya-liyane kanggo saben fitur anyar.

Penting, dicathet yen skenario ing saben file fitur mung khusus kanggo fitur masing-masing. Kasunyatane, iki sebabe dheweke diarani file fitur amarga fokus ing fitur individu .

Kaya sing wis diandharake sadurunge, yen aplikasi iku gampang, kita bakal bisa urip kanthi tantangan otomatis ing skenario ing UI karo Selenium lan Timun. Nanging, nalika aplikasi saya gedhe lan ditambahake fitur-fitur anyar, kerumitan bisa uga ana amarga bisa uga ana katergantungan ing antarane fitur sing beda.

Contone, aku luwih dhisik bisa nyaring asil telusuran miturut rega banjur ngetrapake filter liyane kanggo rating bintang. Ah… saiki kita duwe masalah!

File fitur sing saiki kudu ditrapake skenario iki? Ing file 'Filter miturut Peringkat Bintang' utawa file 'Filter miturut Rega'? Kepiye yen saiki nambah skenario kanggo ngetrapake asil ing saring kanggo ngurutake swara paling dhuwur?

Yen pemangku kepentingan pengin ndeleng apa jangkoan tes kita, file file sing endi sing kudu ditliti? Apa dheweke bakal entuk gambaran lengkap babagan skenario kanthi maca mung salah sawijining file fitur utawa dheweke kudu maca kabeh file fitur?

Ing wektu pangembangan, nalika saben fitur dikembangake siji-saben ing saben pengulangan, file fitur bakal fokus ing fitur kasebut dhewe, mula nalika duwe sawetara fitur, kita kudu miwiti mikir babagan nyoba, dudu mung ing isolasi nanging uga skenario kreatif sing nggabungake macem-macem fitur.

Lan nyatane, iki sing bakal ditindakake pangguna asli aplikasi kasebut. Dheweke bakal luwih dhisik ngetik kritéria sing digoleki, yen ing kaca asil telusuran, bisa uga bakal pagin, banjur disaring, banjur diurutake, banjur bali, lan liya-liyane, lan bisa nindakake tumindak kasebut kanthi tertib. Ora bakal ana urutan acara sing diwenehake. Iki yaiku a lelungan pangguna nyata lan tes nyata sistem!

Sebagéyan gedhe kewan omo ing aplikasi bakal kapacak nalika fitur kasebut minangka barang utawa nalika rong fitur sing bisa diisolasi kanthi becik, ora bisa digunakake bebarengan. Iki adhedhasar Model Tes Pasangan.

Dadi, apa masalah gedhe nggunakake Selenium lan Timun bebarengan?

Yen bisa, kita ora nggunakake GUI web kanggo verifikasi fungsional. Fungsi fitur kudu dites ing lapisan API kanthi tes integrasi.

UI mung kudu dilindhungi kanggo mriksa pangguna liwat aplikasi, utawa tes end-to-end lan priksa manawa modul utawa widget sing diarepake ana ing kaca kasebut nalika pangguna navigasi saka sawijining kaca menyang kaca liyane.

Lelungan pangguna khas bakal dibutuhake:

1 - Navigasi menyang homepage situs web abc.com

2 - Telusuri produk saka homepage

3 - Telusuri dhaptar asil telusuran

4 - Gunakake filter lan / utawa ngurutake

5 - Waca rincian produk

6 - Tambah produk menyang kranjang

7 - Terusake mriksa…

Selenium apik banget kanggo ngotomatisasi skenario kasebut lan mriksa macem-macem elemen ing saben kaca lan kaya sing dakkandhakake ing ndhuwur, iku sing kudu fokus nalika nyoba ing lapisan UI, lan nyoba transisi negara sing beda-beda.

Kaya sing bisa dideleng, saben lelungan pangguna liwat aplikasi nutul akeh kaca lan bisa uga interaksi karo macem-macem fitur ing saben kaca, lan kita bakal verifikasi macem-macem perkara ing saben langkah sajrone lelungan, mula nggunakake file fitur kanggo nyathet skenario kasebut ora ana artine apa-apa, amarga ora nyoba fitur, kita nyoba sistem integral.

Pancen pancen wujud pear nalika nyoba nulis skenario pungkasan-menyang-mburi ing format Diwenehake Nalika Sampeyan. Pira sing bakal diwenehake karo Givens? Kepiye pirang-pirang dina Jum'at?

Ana sing bisa ujar manawa kanggo tes end-to-end, kita mung bisa nggunakake Selenium dhewe tanpa Timun lan duwe tes otomatis kapisah kanggo saben fitur nggunakake Selenium lan Timun. Maneh, aku ora nyaranake pendekatan iki amarga sampeyan bisa uga duwe tes duplikat lan ngerti tes UI sing alon lan rapuh, mula kita kudu ora duwe luwih akeh! Kajaba iku, sampeyan isih kudu ngatasi tes katergantungan fitur.

Ringkesan

Timun minangka alat sing apik kanggo mriksa prilaku fitur ing lapisan API kanthi tes integrasi sing saben fitur bisa dites kanthi lengkap. Alat iki kudu digunakake kanggo Tes Tes.

Selenium minangka alat sing apik kanggo otomatis skenario pangguna ing lapisan UI lan mriksa prilaku sistem kanthi sakabehe, kalebu akeh crita pangguna.

Nalika tekan Pengujian Integrasi Sistem utawa Uji UI, luwih becik nggunakake Selenium tanpa kerangka Timun sing ndasari nalika nyoba nulis file fitur Timun kanggo lelungan pangguna, bisa dadi rumit banget lan ora bisa menehi tujuan sing dibangun alat kasebut.

Artikelku adhedhasar nyuda kasunyatan!

  • Yen ana regane nggunakake timun, iku ing level fitur.
  • Priksa fungsi fitur paling apik ing njaba UI, kayata. Tes API.
  • Malah ing tes lapisan API, timun gagal banget.
  • Tes UI kudu nyakup skenario pangguna / bisnis lan ora fitur siji.

Timun bisa digunakake kanthi apik kanthi tampilan lan skenario sing sederhana lan naif, kayata fungsi login favorit kabeh wong.

Amarga aku ana ing kaca login
Nalika aku ngetik kredensial sing valid
Banjur aku kudu ndeleng akunku

Nanging panguji sing cerdas ngerti manawa fungsi login sing sederhana uga kudu dipriksa. Coba ganti cek kasebut ing timun.

Iki mung kanggo mlebu; coba tulisen tes end-to-end ing timun!

Tes UI kudu kalebu lelungan pangguna sing biasane end-to-end lan nggunakake macem-macem fitur aplikasi.

Ana akeh sing bisa ditindakake sajrone pangguna mlaku ing aplikasi kasebut.

Timun mesthi dudu alat sing pas kanggo tes skenario pangguna / bisnis.