Dalam artikel ini, pembaca akan menemui perbandingan jujur 5 rangka kerja Python teratas untuk automasi ujian. Temui semua kebaikan dan keburukan mereka.
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 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.
Mari kita lihat kelebihan dan kekurangan Robot sebagai rangka kerja automasi ujian berbanding rangka kerja Python yang lain:
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 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.
Pytest tidak memerlukan apa-apa yang kompleks selain daripada pengetahuan Python yang berfungsi. Apa yang anda perlukan ialah desktop kerja yang mempunyai:
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.
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.
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.
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.
Sebagai sebahagian daripada perpustakaan standard Python, menggunakan Unittest mempunyai beberapa kelebihan:
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.
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.
Sesiapa sahaja yang mempunyai pengetahuan asas Python seharusnya boleh menggunakan Behave. Mari kita lihat prasyarat:
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:
Satu-satunya kelemahan ialah ia hanya berfungsi untuk ujian kotak hitam.
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 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.
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.
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.
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.
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!