Rumah >hujung hadapan web >tutorial js >Ujian Selenium: Tutorial Langkah demi Langkah Lengkap
Ujian automasi telah menjadi bahagian yang tidak boleh dirunding dalam penghantaran perisian moden. Jika anda beroperasi di ruang ini, anda mungkin sudah berasa tertekan untuk melancarkan produk dan ciri baharu dengan lebih pantas, mengekalkan kualiti tinggi dan memenuhi jangkaan pengguna.
Bertuah untuk anda — mengautomasikan ujian boleh meningkatkan ketepatan keputusan dengan ketara (sehingga 43%) dan meningkatkan ketangkasan pasukan (sebanyak 42%). Tetapi untuk mencapai faedah ini, anda memerlukan alat yang betul yang memudahkan kerja anda.
Di situlah Selenium memasuki gambar.
Ia sangat fleksibel, membolehkan anda bekerja merentasi persekitaran, penyemak imbas dan aliran kerja yang berbeza. Pada asasnya, ia menyesuaikan diri dengan pendekatan ujian anda.
Bahagian terbaik? Kami telah menyediakan panduan ini yang membimbing anda melalui perkara-perkara penting dalam ujian Selenium — apakah itu, cara menyediakannya dan cara menulis ujian automatik pertama anda. Ini mesti dibaca untuk menangani cabaran yang anda hadapi dengan berkesan dalam ujian Selenium dunia sebenar.
Mari mulakan.
Selenium ialah perisian sumber terbuka yang terdiri daripada pelbagai alatan dan perpustakaan untuk mengautomasikan penyemak imbas web. Ia membolehkan anda mensimulasikan tindakan pengguna seperti mengklik, menaip, menavigasi dan berinteraksi dengan elemen web untuk menguji cara apl anda berkelakuan dalam keadaan yang berbeza.
Pada Selenium, anda boleh mengarang ujian berfungsi merentas pelayar web moden seperti Chrome, Firefox, Safari dan Edge atau menjalankan ujian dalam penyemak imbas tanpa kepala (cth. Chrome Tanpa Kepala) untuk pelaksanaan yang lebih pantas, terutamanya dalam saluran paip CI/CD. Ia juga berjalan pada Windows, macOS dan Linux.
Selenium menyediakan bahasa khusus domain ujian yang dipanggil Selenese untuk menulis ujian dalam banyak bahasa pengaturcaraan popular, termasuk JavaScript (Node.js), Groovy, PHP, C#, Perl, Scala, Python dan Ruby.
Anda boleh mula menggunakannya tanpa menanggung sebarang kos pelesenan. Komuniti aktifnya kerap menyumbang pembetulan, pemalam dan peningkatan. Anda juga boleh mendapatkan dokumentasi dan tutorial dalam talian yang meluas untuk menyelesaikan masalah.
Pernahkah anda terfikir mengapa seni bina Selenium distrukturkan dengan cara yang betul dan cara ia menyelesaikan cabaran ujian dunia sebenar dengan begitu berkesan? Mari kita telusuri evolusinya untuk mendedahkan kisah di sebalik reka bentuknya.
2004: Selenium lahir kerana keperluan apabila Jason Huggins di ThoughtWorks membangunkan alat untuk menjadikan ujian apl web lebih cekap.
Pada mulanya dipanggil "JavaScriptTestRunner," ia kemudiannya dinamakan semula Selenium — jelingan komik di Mercury Interactive, alat yang bersaing kerana unsur selenium mengatasi keracunan merkuri.
2005: Kawalan Jauh Selenium (RC) telah diperkenalkan untuk mengatasi dasar asal yang sama JavaScript. Ia membenarkan penguji menulis skrip dalam pelbagai bahasa pengaturcaraan dan menjalankannya dalam penyemak imbas yang berbeza dengan bertindak sebagai proksi berasaskan pelayan.
2006: Selenium IDE muncul sebagai pemalam Firefox mudah. Ciri rekod dan main baliknya menjadikan automasi ujian boleh diakses walaupun kepada bukan pengaturcara.
2008: Simon Stewart melancarkan Selenium WebDriver, yang mendayakan automasi penyemak imbas langsung tanpa memerlukan pelayan. Peralihan daripada RC kepada WebDriver menandakan satu lonjakan yang ketara, dan RC telah ditamatkan secara rasmi pada tahun 2011 dengan Selenium 2.0.
2011: Selenium Grid merevolusikan pelaksanaan ujian dengan membenarkan ujian berjalan selari merentas berbilang pelayar dan persekitaran, menjadikan ujian berskala besar lebih cekap.
2018: Selenium WebDriver menjadi standard W3C rasmi.
2021: Selenium 4 memulakan kerjaya dengan peningkatan yang ketara, termasuk sokongan W3C WebDriver asli, Grid Selenium yang diperbaharui dan penyepaduan yang lebih mendalam dengan alatan pembangun.
2023: Kemas kini sepanjang tahun tertumpu pada memperluaskan sokongan WebDriver BiDi (Dua Arah) dan meningkatkan Pengurus Selenium untuk pengurusan pergantungan. Selenium 4.16 menghadkan tahun dengan peningkatan prestasi dan kestabilan.
2024: Selenium 4.27 memperkenalkan penyepaduan yang diperluaskan dengan Chrome DevTools Protocol (CDP), sokongan yang dipertingkatkan untuk WebDriver BiDi, peningkatan prestasi untuk Selenium Grid dan pengendalian pelaksanaan JavaScript tak segerak yang lebih baik.
Selenium bukan hanya satu alat tetapi satu set alatan, dengan setiap komponen mempunyai tujuan tertentu. Bersama-sama, mereka mencipta ekosistem yang teguh untuk ujian automasi. Mari pecahkan semuanya dalam bahagian berikut.
Pelanjutan penyemak imbas pada Chrome dan Firefox ini membolehkan anda merakam, mengedit dan memainkan semula kes ujian. Dengan Selenium IDE, anda tidak perlu menulis sebarang kod untuk bermula. Ia adalah yang terbaik untuk prototaip pantas dan mencipta skrip ujian ringkas tanpa menyelami pengaturcaraan.
Selenium WebDriver ialah alat teguh yang membolehkan anda berinteraksi secara langsung dengan penyemak imbas menggunakan kod. Ia boleh mengendalikan elemen web dinamik dan interaksi lanjutan seperti drag-and-drop atau muat naik fail, dan mengurus keupayaan khusus penyemak imbas menggunakan boleh laku pemacu. Selenium WebDriver juga merupakan komponen penting dalam ujian penyemak imbas mudah alih.
Apabila projek anda berskala dan anda perlu menjalankan ujian merentas penyemak imbas, sistem pengendalian atau peranti yang berbeza, Selenium Grid melangkah masuk.
Ia melengkapkan anda untuk mengedarkan ujian anda pada berbilang mesin untuk mempercepatkan pelaksanaan. Selenium Grid beroperasi menggunakan seni bina hab-dan-nod, di mana hab menyelaraskan permintaan pelaksanaan ujian, dan nod mengendalikan menjalankan ujian pada penyemak imbas atau peranti yang ditetapkan.
Apabila anda mula menggunakan alat ini, anda akan mula-mula menulis skrip menggunakan perpustakaannya dalam bahasa pengaturcaraan pilihan anda, seperti Java, Python atau C#. Skrip anda adalah seperti satu set arahan untuk penyemak imbas — ia memberitahu perkara yang perlu dilakukan, seperti membuka halaman web atau mengisi borang.
Setelah skrip anda siap, WebDriver Selenium mengambil arahan daripadanya dan menghantarnya kepada pemacu penyemak imbas. Pemacu kemudian menterjemahkan arahan ke dalam format yang boleh difahami oleh penyemak imbas. Protokol WebDriver W3C ialah standard yang digunakan untuk komunikasi, menggantikan Protokol Wire JSON yang lebih lama.
Dalam langkah seterusnya, pemacu penyemak imbas menukar arahan yang diterjemahkan tersebut kepada tindakan sebenar dalam penyemak imbas. Sama ada anda mengklik pautan atau menatal halaman, tindakan ini melaksanakan tindakan ini seolah-olah anda melakukannya secara manual.
Selepas penyemak imbas melengkapkan setiap tindakan, ia bertindak balas kepada pemacu penyemak imbas.
Maklum balas ini dihantar kepada WebDriver, yang menyampaikannya kembali kepada skrip anda. Beginilah ia mengetahui sama ada tindakan itu berjaya jika terdapat sebarang ralat atau jika langkah selanjutnya perlu diambil berdasarkan keadaan semasa penyemak imbas.
Selenium ialah alat yang digemari ramai dalam kalangan pasukan teknikal dalam Kitaran Hayat Pembangunan Perisian (SDLC). Begini cara kumpulan utama ini menggunakannya:
Mereka menggunakan Selenium untuk mengesahkan cara kod bahagian hadapan berkelakuan dalam senario dunia sebenar. Ia berfaedah untuk menangkap kebiasaan khusus penyemak imbas semasa pembangunan, seperti isu pelaksanaan JavaScript atau perbezaan pemaparan CSS.
Dengan Selenium, mewujudkan saluran paip ujian berskala dan teguh menjadi mudah untuk jurutera DevOps dan automasi. Mereka boleh melaksanakan beratus-ratus ujian secara selari merentas berbilang penyemak imbas dan persekitaran, memastikan gelung maklum balas yang lebih pantas untuk pasukan pembangunan.
Selain itu, keserasian Selenium dengan alatan seperti Jenkins, GitHub Actions dan Kubernetes menyelaraskan aliran kerja CI/CD, yang seterusnya, meminimumkan risiko kod yang cacat digunakan untuk pengeluaran.
Penggunaan Selenium melangkaui mengautomasikan klik melalui elemen UI. Penguji perisian boleh memanfaatkannya untuk menulis skrip yang meniru gelagat pengguna dunia sebenar, seperti log masuk, menyerahkan borang dan melengkapkan transaksi.
Sebaliknya, bagi pakar QA, Selenium disepadukan dengan baik dengan suite ujian regresi untuk memastikan kemas kini apl tidak mematahkan fungsi kritikal dan terus memberikan prestasi yang konsisten tanpa mengira kekerapan perubahan.
Mari bincangkan perkara yang anda perlukan untuk bersedia sepenuhnya untuk ujian perisian Selenium.
Pertama, anda harus selesa melaksanakan corak reka bentuk seperti Model Objek Halaman (POM) atau Kaedah Kilang. Ini akan membantu anda membuat skrip ujian modular yang boleh diguna semula yang lebih mudah diselenggara.
Adalah juga penting untuk mengendalikan isu biasa dengan berkesan, seperti pengecualian unsur-tidak ditemui atau tamat masa, supaya ujian anda kekal andal. Jika apl anda sangat bergantung pada JavaScript, mengetahui cara mengurus operasi tak segerak dalam Selenium akan mengurangkan ujian yang tidak lancar.
Memandangkan apl web moden sering mengemas kini Model Objek Dokumen (DOM) secara dinamik, pencari tradisional tidak boleh dipercayai. Untuk menyasarkan elemen secara dinamik, anda mesti menguasai ekspresi XPath yang fleksibel dan pemilih CSS.
Manfaatkan pengesan relatif Selenium 4. Ia membolehkan anda mencari elemen berdasarkan kedudukannya berbanding dengan yang lain, memudahkan ujian reka letak yang kompleks.
Anda juga perlu mengetahui rangka kerja ujian popular seperti TestNG, JUnit atau PyTest. Ini membantu anda menyusun dan melaksanakan suite ujian dengan berkesan.
Ia datang dengan ciri penting seperti pelaksanaan selari, pengurusan pergantungan dan pelaporan tahap terperinci, semuanya menjadikan pengurusan persekitaran ujian yang lebih besar lebih mudah.
Menyepadukan rangka kerja ini dengan Selenium akan menjadikan ujian anda berskala dan boleh diselenggara, terutamanya jika anda bekerja dalam persekitaran kolaboratif atau CI/CD.
Jangan lupa pemacu penyemak imbas dan konfigurasinya. Untuk mengelakkan isu keserasian, gunakan alatan seperti Pengurus Selenium untuk menjajarkan versi penyemak imbas dan WebDriver secara automatik.
Jika anda menguji berbilang penyemak imbas atau platform, alatan seperti Docker boleh memudahkan persediaan dengan menyediakan persekitaran yang konsisten untuk pelaksanaan.
Satu yang besar ialah menyepadukan ujian Selenium ke dalam saluran paip CI/CD. Alat seperti Jenkins, GitLab CI/CD atau GitHub Actions boleh mengautomasikan ujian anda supaya ia dijalankan apabila kod dikemas kini. Ini memastikan isu-isu dapat diketahui lebih awal, menjimatkan masa dan usaha.
Anda juga boleh memanfaatkan platform ujian awan seperti TestGrid untuk menjalankan ujian pada pelbagai peranti dan penyemak imbas tanpa menguruskan sendiri infrastruktur tersebut.
Nyahpepijat ialah satu lagi kemahiran kritikal. Anda seharusnya biasa dengan alatan pembangun penyemak imbas untuk memeriksa elemen, menganalisis log konsol dan menyahpepijat panggilan rangkaian.
Selain itu, mengetahui cara menggunakan alat nyahpepijat IDE anda untuk ujian langkah demi langkah dan analisis log akan menjadikan mendiagnosis isu dalam skrip anda lebih cepat dan lebih cekap.
Banyak aplikasi moden sangat bergantung pada API, dan menggabungkan ujian UI Selenium dengan ujian API memberi anda liputan yang lebih luas. Alat seperti Posman atau RestAssured sangat bagus untuk ini dan boleh melengkapkan kepakaran Selenium anda dengan baik.
Dengan tiada prasyarat, mari jalani ujian automasi selenium langkah demi langkah. Kami juga akan membincangkan beberapa contoh dan cerapan praktikal untuk membantu anda bermula.
Sebelum anda melakukan apa-apa, sediakan alatan anda. Pasang Selenium WebDriver, pemacu penyemak imbas (seperti ChromeDriver untuk Chrome atau GeckoDriver untuk Firefox) dan sebarang rangka kerja ujian yang anda rancang untuk gunakan, seperti TestNG atau PyTest.
Pastikan versi WebDriver anda sepadan dengan versi penyemak imbas anda untuk mengelakkan masalah keserasian. Anda boleh menggunakan Pengurus Selenium untuk memastikan versi WebDriver anda sepadan secara automatik dengan versi penyemak imbas anda.
Mulakan dari kecil untuk memastikan semuanya berfungsi — seperti menulis skrip untuk membuka halaman web dan mencetak tajuk. Setelah yakin, lapisan dalam fungsi tambahan seperti berinteraksi dengan elemen atau mengesahkan tingkah laku halaman.
Selain itu, ingat untuk memastikan kebergantungan anda dikemas kini untuk mengelakkan perubahan yang pecah.
Skrip yang tersusun dengan baik menjimatkan masa anda apabila perubahan berlaku dan memudahkan kerjasama. Apabila anda bekerja dalam satu pasukan, orang lain sepatutnya dapat memahami dan melanjutkan ujian anda tanpa menguraikan kod yang tidak kemas dengan cepat. Oleh itu, luangkan sedikit masa dalam penstrukturan skrip.
Gunakan POM untuk memisahkan logik ujian daripada butiran UI. Sebagai contoh, jika anda menguji halaman log masuk, cipta kelas 'LoginPage' untuk mengendalikan elemen seperti medan nama pengguna, medan kata laluan dan butang log masuk. Kemudian, panggil kaedah ini daripada skrip ujian anda dan bukannya menulis semula pencari setiap kali.
Kes ujian hendaklah jelas, khusus dan boleh diambil tindakan. Katakan anda sedang menguji tapak eDagang. Dalam kes itu, satu ujian mungkin menyemak sama ada carian untuk "komputer riba" memaparkan produk yang berkaitan dan satu lagi boleh mengesahkan bahawa mengklik "Tambah ke Troli" sebenarnya menambah item.
Fikirkan tentang kes tepi juga. Bagaimana jika pengguna memasukkan "laptop123$$$" atau input serupa yang merangkumi kedua-dua aksara abjad angka dan khas? Adakah carian masih berfungsi? Parameter ujian anda membolehkan anda merangkumi berbilang senario tanpa kod pendua.
Sebelum anda meningkatkan skala, uji secara setempat, kerana ini adalah cara paling mudah untuk mengesahkan skrip anda. Menguji ciri penukaran kata laluan? Jalankan pada penyemak imbas tempatan anda untuk mengesahkan input dan output sepadan dengan jangkaan.
Larian tempatan juga sesuai untuk nyahpepijat. Jika sesuatu gagal, anda boleh menjeda pelaksanaan, memeriksa penyemak imbas dan melaraskan skrip anda dalam masa nyata. Gunakan mod tanpa kepala untuk melangkau pemaparan UI. Ia sesuai apabila anda tidak perlu melihat penyemak imbas sedang beraksi tetapi mahukan hasilnya.
Setelah semuanya berfungsi dengan baik secara tempatan, anda boleh menjalankannya dengan yakin pada persekitaran yang lebih besar seperti saluran paip CI/CD atau persediaan teragih.
Kenapa? Kerana ini menjimatkan masa.
Berikut ialah senario: jika anda perlu menguji ciri carian, log masuk dan daftar keluar pada Chrome dan Firefox, anda boleh mengkonfigurasi Selenium Grid atau menggunakan pelaksanaan selari TestNG.
Pelaksanaan selari juga mendedahkan isu khusus penyemak imbas dengan lebih cepat. Sebagai contoh, lungsur turun mungkin berfungsi dalam Chrome tetapi berkelakuan aneh dalam Firefox. Membetulkan percanggahan ini lebih awal menjimatkan masalah anda.
Elemen dinamik boleh menjadi rumit, tetapi ia ada di mana-mana dalam apl web moden. Bayangkan halaman di mana ID butang "Serah" berubah setiap kali anda memuat semula. Anda boleh menulis coretan kod menggunakan Selenium untuk mencari dan berinteraksi dengannya.
Gunakan ungkapan XPath yang fleksibel untuk mengenal pasti elemen butang yang teksnya mengandungi perkataan "Serah." Dengan ini, kod tersebut memastikan automasi kekal teguh dan boleh disesuaikan dengan perubahan dalam struktur halaman web.
Apabila ujian gagal, log boleh menyelamatkan anda. Sebagai contoh, jika ujian log masuk gagal, anda boleh log URL semasa dan sumber halaman untuk memahami perkara yang salah. Gunakan perpustakaan pengelogan seperti modul ‘pelogan’ terbina dalam Python, Log4j dalam Java atau SLF4J.
Selain log, tangkapan skrin kegagalan boleh menjadi tidak ternilai. Konfigurasikan ujian anda untuk menangkap tangkapan skrin secara automatik apabila sesuatu gagal — ini adalah cara cepat untuk mengenal pasti isu seperti kehilangan unsur atau perubahan UI yang tidak dijangka.
Automasikan ujian anda dengan alatan seperti Jenkins atau GitHub Actions.
Sebagai contoh, setiap kali pasukan anda menolak kod baharu, saluran paip anda boleh menarik perubahan terkini, menjalankan ujian dan melaporkan keputusan secara automatik. Ia seperti mempunyai sepasang mata tambahan pada projek anda 24/7. Persediaan ini juga mempercepatkan pembangunan dengan memberikan maklum balas segera.
Walaupun Selenium ialah alat yang berkuasa untuk automasi penyemak imbas, ia dilengkapi dengan set sekatan jalannya sendiri — beberapa daripadanya mungkin tidak dapat dilihat dengan segera. Berikut ialah aspek ujian perisian Selenium yang lebih rumit:
Apabila web berkembang, begitu juga Selenium. Tetapi apa yang seterusnya untuknya? Apakah arah aliran dan kemungkinan yang berpandangan ke hadapan yang boleh membentuk ujian Selenium?
Sebagai permulaan, peningkatan alat regresi visual telah menunjukkan bahawa ujian tradisional tidak selalu dapat menangkap percanggahan UI. Tetapi tidak jika Selenium menyepadukan sokongan asli untuk ujian visual.
Daripada menegaskan bahawa butang boleh diklik, anda boleh mengesahkan bahawa butang itu dijajar dengan sempurna, diwarnakan dengan betul dan kelihatan sama pada semua peranti.
Skrip Selenium mungkin termasuk perintah seperti ‘assertVisualConsistency(halaman, “baseline_screenshot”),’ dan sebarang drift UI akan dibenderakan secara automatik.
Pernahkah anda mendengar tentang lonjakan kuantum dengan pengkomputeran kuantum? Ia mungkin terdengar seperti fiksyen sains sekarang, tetapi ini akhirnya boleh memberi kesan kepada ujian Selenium.
Algoritma kuantum boleh memproses suite ujian besar-besaran secara eksponen dengan lebih pantas, membolehkan ujian masa nyata merentas ratusan persekitaran. Ini boleh menjadikan ujian silang penyemak imbas dan merentas peranti berskala besar serta-merta.
Akhir sekali, bayangkan antara muka seret dan lepas di mana anda mentakrifkan senario ujian secara visual, dan Selenium menjana kod asas. Walaupun pada kebiasaannya ia adalah alat pembangun, masa depan boleh membawa sambungan tanpa kod atau kod rendah.
Ini akan mengurangkan halangan kemasukan untuk penguji bukan teknikal sambil mengekalkan fleksibiliti Selenium untuk pengguna lanjutan.
TestGrid ialah platform semua-dalam-satu yang direka untuk memastikan aplikasi web anda berfungsi dengan sempurna merentas penyemak imbas utama, seperti Chrome, Firefox, Safari, Opera dan Edge, serta pelbagai sistem pengendalian dan peranti.
Dengan TestGrid, anda boleh menjalankan ujian Selenium automatik di awan atau di premis, memberikan anda kefleksibelan untuk menguji di mana-mana yang paling sesuai untuk anda. Antara muka intuitifnya menjadikan penyediaan dan pengurusan ujian menjadi mudah — walaupun anda bukan pakar teknikal.
Apakah yang membuatkan TestGrid menonjol?
Bersedia untuk mengambil ujian Selenium anda ke peringkat seterusnya?
Ujian selenium memperkemas ujian aplikasi web dengan keupayaan automasi yang mantap. Menguasai alatan dan tekniknya meningkatkan kecekapan ujian, memastikan penghantaran perisian yang boleh dipercayai, berskala dan berkualiti tinggi untuk aplikasi moden.
Sumber: Artikel ini pada asalnya diterbitkan di testgrid.io.
Atas ialah kandungan terperinci Ujian Selenium: Tutorial Langkah demi Langkah Lengkap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!