Python BDD Framework Framework Perbandingan: Pro dan Kontra

Halo semuanya. Sudah bulan ini , kursus Insinyur QA Python dimulai di OTUS. Untuk mengantisipasi dimulainya kursus ini, kami membagikan kepada Anda terjemahan materi yang menarik.



Hampir semua bahasa pemrograman utama memiliki kerangka kerja untuk pengujian BDD , dan Python tidak terkecuali. Dan faktanya, dia memiliki beberapa dari mereka! Jadi, bagaimana Anda membandingkan mereka dan mana yang terbaik? Mari kita coba mencari tahu.


berperilaku


berperilaku adalah salah satu kerangka python BDD paling populer. Terlepas dari kenyataan bahwa itu bukan bagian resmi dari proyek Mentimun , fungsinya sangat mirip dengan kerangka Mentimun.


Sumber:



Logo



Pro:


  • Sepenuhnya mendukung bahasa Gherkin;
  • Fungsionalitas lingkungan dan perlengkapan membuat pemasangan dan pelepasan menjadi mudah;
  • Ada integrasi dengan Django dan Flask;
  • Populer dengan pythonists BDD;
  • Dokumentasi dan manual yang baik;
  • Ada dukungan untuk PyCharm Professional Edition .

Cons:


  • Tidak ada dukungan untuk eksekusi paralel, ini membutuhkan kerangka kerja paralel-perilaku yang terpisah;
  • berperilaku adalah kerangka kerja mandiri;
  • Berbagi langkah di antara file fitur dapat merepotkan.

pytest-bdd


pytest-bdd adalah plugin pytest yang memungkinkan pengguna untuk menulis tes sebagai file fitur Gherkin alih-alih fungsi tes. Karena terintegrasi ke dalam pytest, ia dapat bekerja dengan plugin pytest lainnya, seperti pytest-html untuk membuat laporan yang indah dan pytest-xdist untuk pengujian paralel. Ini juga menggunakan perlengkapan pytest untuk menyuntikkan dependensi.


Sumber:



Logo



Pro:


  • Sepenuhnya kompatibel dengan pytest dan plugin utamanya;
  • Anda dapat menikmati semua manfaat dari komunitas pytest;
  • Perlengkapan adalah cara yang bagus untuk mengelola konteks antara langkah-langkah;
  • Tes dapat disaring dan dijalankan bersama dengan tes pytest lainnya;
  • Definisi step and hook dapat dengan mudah dibagikan menggunakan conftest.py;
  • Data tabular dapat diproses dengan lebih baik untuk pengujian berbasis data ;
  • Dokumentasi dan tutorial online yang sangat baik;
  • Ada dukungan untuk PyCharm Professional Edition .

Cons:


  • Modul definisi langkah harus memiliki deklarasi eksplisit untuk file fitur (melalui "@ skenario" atau fungsi "skenario");
  • Rencana skenario harus ditangani secara berbeda.

lobak


lobak adalah kerangka kerja BDD yang disorot: ia menambahkan sintaks baru ke bahasa Gherkin. Fitur bahasa seperti loop skrip, prasyarat skrip, dan konstanta menjadikan lobak Gherkin lebih terprogram untuk kasus uji.


Sumber:



Logo



Pro:


  • Ekstensi bahasa Gherkin memungkinkan penguji untuk menulis tes dengan lebih baik;
  • Situs web, dokumentasi, dan logo - semuanya ada di tempatnya;
  • File fitur dan definisi langkah sangat jelas.

Cons:


  • Ini adalah kerangka kerja mandiri dengan sejumlah ekstensi;
  • Puritan BDD mungkin tidak menyukai penambahan sintaks Gherkin.

selada


selada adalah "sayuran" kerangka BDD Python lain yang telah dikenal selama beberapa tahun. Namun, situs dan kodenya belum diperbarui untuk waktu yang lama.


Sumber:



Logo:



Pro:


  • Kode sederhana
  • Terverifikasi dan bagus.

Cons:


  • Tidak kaya fungsi seperti dalam kerangka kerja lain;
  • Dia tampaknya tidak memiliki dukungan aktif yang berkelanjutan.

menyegarkan


freshen adalah salah satu kerangka kerja pertama untuk pengujian BDD dengan Python. Dia adalah plugin untuk hidung . Namun, menyegarkan dan hidung tidak lagi didukung, dan halaman dokumentasinya dengan jelas menyatakan penggunaan kerangka kerja lain.


Rekomendasi


Tidak satu pun dari kerangka kerja di atas yang sempurna, tetapi banyak dari mereka memiliki keunggulan yang signifikan. Secara umum, saya akan merekomendasikan menggunakan pytest-bdd, karena ia memiliki semua kelebihan kekuatan pytest. Saya percaya bahwa pytest adalah salah satu kerangka kerja terbaik untuk pengujian dalam bahasa apa pun karena keringkasannya, perlengkapannya, pernyataan dan pluginnya. 2018 Python Developers Survey mengungkapkan bahwa pytest adalah kerangka pengujian paling populer untuk Python. Terlepas dari kenyataan bahwa pytest-bdd tidak terlihat dipoles berperilaku, saya percaya bahwa beberapa TLC dari komunitas open source dapat memperbaikinya.
Dan beberapa rekomendasi lagi:


  • Gunakan berperilaku jika Anda membutuhkan pengalaman pembangunan bersih yang andal dan komunitas besar.
  • Gunakan pytest-bdd jika Anda membutuhkan integrasi dengan plugin lain yang sudah berisi banyak tes pytest, atau jika Anda perlu menjalankan tes secara paralel.
  • Gunakan lobak jika Anda ingin lebih banyak kontrol perangkat lunak atas pengujian di tingkat Gherkin.
  • Jangan gunakan selada dan menyegarkan.

Apa kerangka BDD favorit Anda? Silakan berbagi komentar!

Source: https://habr.com/ru/post/id460046/


All Articles