Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Lima rangka kerja ujian Python yang sangat baik

Lima rangka kerja ujian Python yang sangat baik

WBOY
WBOYke hadapan
2023-04-08 12:44:581397semak imbas

Dalam artikel ini, pembaca akan menemui perbandingan jujur ​​5 rangka kerja Python teratas untuk automasi ujian. Temui semua kebaikan dan keburukan mereka.

Lima rangka kerja ujian Python yang sangat baik

Selepas dinamakan sebagai bahasa pengaturcaraan terbaik 2018, Python terus meningkat dalam ranking dan kini berada di kedudukan ketiga, di belakang Java dan C, menurut Indeks yang diterbitkan oleh Tiobe . Rangka kerja automasi ujian berasaskan Python juga semakin popular apabila penggunaan bahasa ini meningkat. Nampaknya, pembangun dan penguji agak keliru apabila memilih rangka kerja terbaik untuk projek mereka. Semasa memilih satu, anda harus menilai banyak perkara, kualiti skrip rangka kerja, kesederhanaan kes ujian dan teknik menjalankan modul dan mengetahui kelemahannya. Ini adalah percubaan saya untuk membantu anda membandingkan lima rangka kerja Python teratas untuk automasi ujian pada 2019, dan kebaikan dan keburukannya berbanding rangka kerja lain. Jadi, anda boleh memilih rangka kerja automasi ujian Python yang ideal mengikut keperluan anda.

Rangka Kerja Robot

Rangka Kerja Robot digunakan terutamanya untuk pembangunan dipacu ujian penerimaan dan ujian penerimaan Ia adalah salah satu rangka kerja ujian Python yang teratas. Walaupun ia dibangunkan dalam Python, ia juga berjalan pada IronPython berasaskan .net dan Jython berasaskan Java. Robot sebagai rangka kerja Python serasi dengan semua platform – Windows, MacOS atau Linux.

Prasyarat

  • Pertama sekali, anda boleh menggunakan Robot Framework (RF) hanya jika anda memasang Python 2.7.14 atau lebih tinggi. Walaupun Python 3.6.4 juga digunakan, coretan kod yang disediakan pada blog RF rasmi akan memastikan bahawa komen yang sesuai ditambah, termasuk semua perubahan yang diperlukan.
  • Anda juga perlu memasang "pip" atau pengurus pakej Python.
  • Akhir sekali, rangka kerja pembangunan mesti dimuat turun. Edisi Komuniti PyCharm ialah rangka kerja yang popular di kalangan pembangun. Walau bagaimanapun, memandangkan coretan kod tidak bergantung kepada IDE, anda boleh menggunakan mana-mana IDE yang telah anda gunakan sebelum ini.

Kebaikan dan Kelemahan Robot

Mari kita lihat kelebihan dan kekurangan Robot sebagai rangka kerja automasi ujian berbanding rangka kerja Python yang lain:

Kelebihan

  • Menggunakan pendekatan ujian dipacu kata kunci, ia memudahkan proses automasi dengan membantu penguji mencipta kes ujian yang boleh dibaca dengan mudah.
  • Sintaks data ujian boleh digunakan dengan mudah.
  • Ia terdiri daripada alatan biasa dan perpustakaan ujian, dengan ekosistem yang besar di mana elemen individu boleh digunakan dalam projek berasingan.
  • Rangka kerja ini sangat boleh dikembangkan kerana ia mempunyai banyak API.
  • Rangka kerja robot membantu anda menjalankan ujian selari melalui Selenium Grid walau bagaimanapun, fungsi ini tidak terbina dalam.

Keburukan

  • Rangka kerja robot adalah rumit walaupun dalam hal membuat laporan HTML tersuai. Walau bagaimanapun, anda masih boleh menggunakan rangka kerja Robot untuk memberikan laporan pendek dalam format xUnit.
  • Satu lagi kelemahan rangka kerja Robot ialah kekurangan ujian selari.

Adakah Robot rangka kerja ujian Python terbaik untuk anda

Jika anda seorang pemula dalam bidang automasi dan kurang pengalaman pembangunan, maka gunakan Robot sebagai rangka kerja ujian Python teratas? adalah lebih baik daripada Pytest atau Pyunit lebih mudah digunakan kerana ia mempunyai perpustakaan terbina dalam yang kaya dan melibatkan penggunaan DSL berorientasikan ujian yang lebih mudah. Walau bagaimanapun, jika anda ingin membangunkan rangka kerja automasi yang kompleks, lebih baik beralih kepada Pytest atau mana-mana rangka kerja lain yang melibatkan kod Python.

pytest

Pytest digunakan untuk semua jenis ujian perisian dan merupakan satu lagi rangka kerja ujian Python teratas untuk automasi ujian. Alat ini adalah sumber terbuka dan mudah dipelajari, serta boleh digunakan oleh pasukan QA, pasukan pembangunan, kumpulan latihan individu dan projek sumber terbuka. Kebanyakan projek di internet, termasuk nama besar seperti Dropbox dan Mozilla, telah bertukar daripada unittest (Pyunit) kepada Pytest kerana ciri bergunanya seperti "Penulisan Semula Penegasan". Mari kita lihat dengan lebih mendalam apa yang menjadikan rangka kerja Python ini istimewa.

Prasyarat

Pytest tidak memerlukan apa-apa yang kompleks selain daripada pengetahuan Python yang berfungsi. Apa yang anda perlukan ialah desktop kerja yang mempunyai:

  • Antara Muka Talian Perintah
  • Pengurus Pakej Python
  • IDE Pembangunan

Kebaikan dan Kelemahan Pytest

Kelebihan

  • Dalam komuniti ujian Python, sebelum Pytest, pembangun menyertakan ujian mereka dalam kategori besar. Walau bagaimanapun, Pytest membawa revolusi kerana ia memungkinkan untuk menulis suite ujian dengan cara yang lebih padat berbanding sebelum ini.
  • Alat ujian lain memerlukan pembangun atau penguji menggunakan penyahpepijat atau memeriksa log dan mengesan sumber nilai tertentu. Pytest membantu anda menulis kes ujian, membolehkan anda menyimpan semua nilai dalam kes ujian dan memberitahu anda nilai yang gagal dan nilai yang ditegaskan.
  • Ujian lebih mudah untuk ditulis dan difahami kerana ia tidak memerlukan kod boilerplate sebanyak mana.
  • Lekapan ialah fungsi yang boleh digunakan dengan menambahkan parameter pada fungsi ujian. Tugas mereka adalah untuk mengembalikan nilai. Dalam Pytest anda boleh menjadikannya modular dengan menggunakan lekapan. Menggunakan berbilang lekapan membantu anda meliputi semua kombinasi parameter tanpa perlu menulis semula kes ujian.
  • Pembangun Pytest telah mengeluarkan beberapa pemalam yang berguna untuk menjadikan rangka kerja itu boleh dikembangkan. Sebagai contoh, pytest-xdist boleh digunakan untuk melakukan ujian selari tanpa menggunakan pelari ujian yang berbeza. Ujian unit juga boleh dijadikan parameter tanpa menduplikasi sebarang kod.
  • Menyediakan pembangun dengan rutin khas tertentu untuk menjadikan penulisan kes ujian lebih mudah dan kurang terdedah kepada ralat. Kod juga menjadi lebih pendek dan lebih mudah difahami.

Kelemahan

Hakikat bahawa Pytest menggunakan rutin khas bermakna anda perlu berkompromi tentang keserasian. Anda akan dapat menulis kes ujian dengan mudah tetapi tidak akan dapat menggunakan kes ujian ini dengan mana-mana rangka kerja ujian lain.

Adakah Pytest rangka kerja ujian Python yang terbaik untuk anda

Nah, anda perlu bermula dengan mempelajari bahasa yang lengkap, tetapi apabila anda menguasainya, anda akan mendapat semua ciri seperti Statik? analisis kod, sokongan untuk berbilang IDE, dan yang paling penting, menulis kes ujian yang berkesan. Untuk menulis kes ujian berfungsi dan membangunkan rangka kerja yang kompleks, ia adalah lebih baik daripada ujian unit, tetapi jika matlamat anda adalah untuk membangunkan rangka kerja mudah, kelebihannya agak serupa dengan rangka kerja Robot.

Ujian Unit (PyUnit)

Unittest, atau PyUnit, ialah rangka kerja automasi ujian standard Python sendiri untuk ujian unit. Ia sangat diilhamkan oleh JUnit. Kaedah penegasan dan semua rutin pembersihan dan persediaan disediakan oleh TestCase kelas asas. Nama setiap kaedah dalam subkelas TestCase bermula dengan "ujian". Ini membolehkan mereka dijalankan sebagai kes ujian. Anda boleh menggunakan kaedah muat dan kelas TestSuite untuk mengumpulkan dan memuatkan ujian. Anda boleh menggunakannya bersama-sama untuk membina pelari ujian tersuai. Seperti menggunakan JUnit untuk ujian Selenium, unittest juga mempunyai keupayaan untuk menggunakan dan menjana laporan XML unittest-sml-reporting.

Prasyarat

Tiada prasyarat sedemikian kerana unittest disertakan dengan Python secara lalai. Untuk menggunakannya, anda memerlukan pengetahuan standard tentang rangka kerja Python dan jika anda ingin memasang modul tambahan anda perlu memasang pip serta IDE untuk pembangunan.

Kebaikan dan keburukan PyUnit

Kelebihan

Sebagai sebahagian daripada perpustakaan standard Python, menggunakan Unittest mempunyai beberapa kelebihan:

  • Pembangunan Seseorang tidak perlu memasang sebarang modul tambahan kerana ia disertakan.
  • Unittest ialah terbitan xUnit dan berfungsi sama dengan rangka kerja xUnit yang lain. Orang yang tidak mempunyai latar belakang Python yang kuat selalunya berasa selesa untuk bekerja dengannya.
  • Anda boleh menjalankan kes ujian individu dengan cara yang lebih mudah. Apa yang anda perlu lakukan ialah nyatakan nama pada terminal. Outputnya juga ringkas, memberikan fleksibiliti rangka kerja dalam melaksanakan kes ujian.
  • Laporan ujian dijana dalam masa milisaat.

Kelemahan

  • Biasanya, snake_case digunakan untuk menamakan kod Python. Walau bagaimanapun, memandangkan rangka kerja ini mengambil banyak inspirasi daripada Junit, kaedah penamaan camelCase tradisional masih wujud. Ini boleh menjadi sangat mengelirukan.
  • Niat kod ujian kadangkala menjadi tidak jelas kerana ia sangat menyukai abstraksi.
  • Memerlukan banyak kod boilerplate.

Adakah PyUnit rangka kerja ujian Python terbaik untuk anda

Pada pendapat peribadi saya dan pendapat pembangun Python lain, Pytest memperkenalkan simpulan bahasa tertentu yang membenarkan penguji Tulis kod automasi yang lebih baik dalam cara yang sangat padat. Walaupun unittest muncul sebagai rangka kerja automasi ujian lalai, prinsip kerja dan konvensyen penamaannya sedikit berbeza daripada kod Python standard, dan ia memerlukan terlalu banyak kod boilerplate, menjadikannya rangka kerja automasi ujian Python yang kurang popular.

Kelakuan

Kita semua tahu tentang pembangunan dipacu tingkah laku, iaitu kaedah pembangunan perisian berasaskan tangkas terkini yang menggalakkan pembangun, pelakon perniagaan dan penganalisis kualiti untuk bekerjasama antara satu sama lain. Behave ialah satu lagi rangka kerja ujian Python teratas yang membolehkan pasukan melakukan ujian BDD tanpa sebarang komplikasi. Sifat rangka kerja ini sangat serupa dengan SpecFlow dan Cucumber untuk ujian automatik. Kes ujian ditulis dalam bahasa yang mudah dan boleh dibaca dan kemudian ditetapkan ke dalam kod semasa pelaksanaan. Gelagat direka bentuk daripada spesifikasi tingkah laku, dan langkah ini kemudiannya digunakan semula oleh senario ujian lain.

Prasyarat

Sesiapa sahaja yang mempunyai pengetahuan asas Python seharusnya boleh menggunakan Behave. Mari kita lihat prasyarat:

  • Sebelum memasang Behave, anda mesti memasang sebarang versi Python di atas 2.7.14.
  • Menggunakan Behave memerlukan pengurus pakej Python atau pip.
  • Persekitaran pembangunan ialah perkara terakhir dan paling penting yang anda perlukan. Anda boleh menggunakan Pycharm, yang disukai oleh kebanyakan pembangun, atau mana-mana IDE lain pilihan anda.

Kelebihan dan Kekurangan Tingkah Laku

Seperti semua tingkah laku lain dalam rangka kerja ujian terdorong, pendapat tentang kelebihan Tingkah Laku berbeza-beza mengikut setiap orang. Mari kita lihat kebaikan dan keburukan biasa menggunakan Behave:

Kebaikan

  • Gelagat sistem dinyatakan dalam bahasa separa formal dan perbendaharaan kata domain, menjadikan tingkah laku konsisten di seluruh organisasi .
  • Pasukan pembangunan yang bekerja pada modul berbeza dengan fungsi yang serupa diselaraskan dengan betul.
  • Blok bangunan sedia untuk melaksanakan pelbagai kes ujian.
  • Penaakulan dan pemikiran tercermin dalam butiran, menghasilkan spesifikasi produk yang lebih baik.
  • Disebabkan format spesifikasi yang serupa, pihak berkepentingan atau pengurus mempunyai kejelasan yang lebih baik tentang output daripada QA dan pembangun.

Kelemahan

Satu-satunya kelemahan ialah ia hanya berfungsi untuk ujian kotak hitam.

Adakah Behave rangka kerja ujian Python yang terbaik untuk anda

Nah, seperti yang kami katakan, Behave (rangka kerja Python) hanya sesuai untuk ujian kotak hitam. Ujian web ialah contoh yang baik kerana kes penggunaan boleh diterangkan dalam bahasa biasa. Walau bagaimanapun, Behave bukanlah pilihan yang baik untuk ujian integrasi atau ujian unit, kerana verbositi hanya akan merumitkan senario ujian yang kompleks. Kedua-dua pembangun dan penguji mengesyorkan pytest-bdd Ia adalah alternatif kepada Behave kerana ia menggunakan semua kelebihan dalam Pytest dan melaksanakannya untuk menguji senario yang didorong oleh tingkah laku.

Lettuce

Lettuce ialah satu lagi alat automasi dipacu tingkah laku yang mudah digunakan berdasarkan Timun dan Python. Matlamat utama Lettuce adalah untuk memberi tumpuan kepada tugas biasa pembangunan yang didorong oleh tingkah laku dan menjadikan proses itu lebih mudah dan menyeronokkan.

Prasyarat

Anda memerlukan sekurang-kurangnya Python 2.7.14 dan IDE dipasang. Anda boleh menggunakan Pycharm atau mana-mana IDE lain pilihan anda. Selain itu, untuk menjalankan ujian, anda perlu memasang pengurus pakej Python.

Kebaikan dan keburukan Lettuce

Kebaikan

  • Nah, seperti mana-mana rangka kerja ujian BDD yang lain, Lettuce membolehkan pembangun mencipta berbilang senario dan fungsi penerangan bahasa semula jadi.
  • Pasukan Dev dan QA diselaraskan dengan betul kerana spesifikasi adalah dalam format yang serupa.
  • Untuk ujian kotak hitam, Lettuce berguna untuk menjalankan kes ujian yang didorong oleh tingkah laku.

Kelemahan

Hanya ada satu kelemahan untuk menggunakan Lettuce sebagai rangka kerja Python. Untuk berjaya melaksanakan ujian yang didorong oleh tingkah laku, komunikasi antara pasukan pembangunan, QA dan pihak berkepentingan adalah perlu. Ketidakhadiran atau salah komunikasi boleh menjadikan proses itu samar-samar dan mana-mana pasukan boleh bertanya soalan.

Adakah Lettuce rangka kerja ujian Python yang terbaik untuk anda

Menurut pembangun dan penguji automasi, Cucumber lebih berguna apabila melakukan ujian BDD. Tetapi jika kita bercakap tentang pembangun Python dan QA, tidak ada yang seperti pytest-bdd Semua ciri hebat Pytest seperti kekompakan dan kod yang mudah difahami dilaksanakan dalam rangka kerja ini digabungkan dengan verbositi ujian dipacu tingkah laku.

Ringkasan!

Dalam artikel di atas, kami membincangkan lima rangka kerja Python teratas untuk automasi ujian pada 2019 berdasarkan prosedur ujian yang berbeza. Pytest, rangka kerja Robot dan unittest digunakan untuk ujian kefungsian dan unit, manakala Lettuce dan Behave hanya sesuai untuk ujian dipacu tingkah laku.

Daripada ciri yang disebutkan, kita boleh membuat kesimpulan bahawa untuk ujian berfungsi, Pytest adalah yang terbaik. Walau bagaimanapun, jika anda baru dalam ujian automatik berasaskan Python, rangka kerja Robot ialah alat yang hebat untuk bermula. Walaupun fungsinya terhad, ia membolehkan anda memimpin dengan mudah di trek. Untuk ujian BDD berasaskan Python, Lettuce dan Behave adalah sama baiknya, tetapi jika anda sudah mempunyai pengalaman dengan Pytest, lebih baik gunakan pytest-bdd.

Saya harap artikel saya dapat membantu anda belajar daripada Python teratas rangka kerja ujian Buat pilihan yang tepat untuk keperluan automasi web Python anda. Selamat mencuba!

Atas ialah kandungan terperinci Lima rangka kerja ujian Python yang sangat baik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam