top 6 best python testing frameworks
Αυτό το σεμινάριο εξηγεί πώς μπορεί να χρησιμοποιηθεί το Python για δοκιμαστικό προγραμματισμό και παραθέτει τις δυνατότητες και τη σύγκριση των κορυφαίων πλαισίων δοκιμών Python:
Με την ευρεία εφαρμογή της Τεχνητής Νοημοσύνης, η Python έχει γίνει μια δημοφιλής γλώσσα προγραμματισμού.
Αυτό το σεμινάριο θα καλύψει τον τρόπο με τον οποίο το Python μπορεί να χρησιμοποιηθεί για δοκιμαστικό προγραμματισμό μαζί με ορισμένα πλαίσια δοκιμών που βασίζονται σε Python.
Ας αρχίσουμε!!
=> Δείτε όλα τα εκπαιδευτικά προγράμματα Python εδώ.
Τι θα μάθετε:
Τι είναι το Python;
Σύμφωνα με τον παραδοσιακό ορισμό, το Python είναι μια ερμηνευμένη, υψηλού επιπέδου, γενική γλώσσα προγραμματισμού που βοηθά τους προγραμματιστές να γράφουν διαχειρίσιμο και λογικό κώδικα για μικρά και μεγάλης κλίμακας έργα.
Μερικά από τα οφέλη των Pythons είναι:
- Καμία συλλογή δεν προκαλεί τη γρήγορη εκτέλεση του κύκλου Edit-Test-Debug.
- Εύκολο εντοπισμό σφαλμάτων
- Εκτεταμένη βιβλιοθήκη υποστήριξης
- Εύκολο να μάθετε τη δομή δεδομένων
- Υψηλή παραγωγικότητα
- Ομαδική συνεργασία
Εργασία στην Python
- Ο διερμηνέας διαβάζει τον κώδικα python από το αρχείο προέλευσης και τον εξετάζει για σφάλμα σύνταξης.
- Εάν ο κωδικός είναι χωρίς σφάλματα, τότε ο διερμηνέας μετατρέπει τον κωδικό σε ισοδύναμο «κώδικα Byte».
- Αυτός ο κωδικός byte μεταδίδεται στη συνέχεια στην εικονική μηχανή Python (PVM) όπου ο κωδικός Byte μεταγλωττίζεται ξανά για σφάλμα εάν υπάρχει.
Τι είναι το Python Testing;
- Οι αυτοματοποιημένες δοκιμές είναι ένα πολύ γνωστό πλαίσιο στον κόσμο των δοκιμών. Εκεί εκτελούνται τα σχέδια δοκιμής χρησιμοποιώντας σενάριο αντί για ανθρώπινο.
- Το Python διαθέτει τα εργαλεία και τις βιβλιοθήκες που υποστηρίζουν αυτοματοποιημένες δοκιμές για το σύστημά σας.
- Οι θήκες Python Test είναι συγκριτικά εύκολες στην εγγραφή. Με την αυξημένη χρήση του Python, τα πλαίσια δοκιμών αυτοματοποίησης με βάση το Python γίνονται επίσης δημοφιλή.
Λίστα πλαισίων δοκιμών Python
Παρακάτω παρατίθενται ορισμένα πλαίσια δοκιμών Python που πρέπει να γνωρίζετε.
- Ρομπότ
- PyTest
- Όχι
- Έγγραφο δοκιμής
- Μύτη2
- Καταθέτω
Σύγκριση εργαλείων δοκιμής Python
Ας συνοψίσουμε γρήγορα αυτά τα πλαίσια σε έναν σύντομο πίνακα σύγκρισης:
Αδεια | Μέρος του | Κατηγορία | Κατηγορία Ειδικό χαρακτηριστικό | |
---|---|---|---|---|
pytest.warns () | waiting_warning: Προσδοκία (, αγώνα) | Επιβεβαίωση προειδοποίησης με τις λειτουργίες | ||
Ρομπότ ![]() | Ελεύθερο λογισμικό (Άδεια ASF} | Γενικές βιβλιοθήκες δοκιμών Python. | Δοκιμή αποδοχής | Προσέγγιση βάσει λέξεων-κλειδιών. |
PyTest ![]() | Ελεύθερο λογισμικό (άδεια MIT) | Αυτόνομη, επιτρέπει μικρές δοκιμαστικές σουίτες. | Δοκιμή μονάδας | Ειδικό και απλό προσάρτημα κατηγορίας για ευκολότερη δοκιμή. |
ανυπόμονος ![]() | Ελεύθερο λογισμικό (άδεια MIT) | Μέρος της τυπικής βιβλιοθήκης Python. | Δοκιμή μονάδας | Γρήγορη συλλογή δοκιμών και ευέλικτη εκτέλεση δοκιμών. |
Έγγραφο δοκιμής ![]() | Ελεύθερο λογισμικό (άδεια MIT) | Μέρος της τυπικής βιβλιοθήκης Python. | Δοκιμή μονάδας | Python Interactive Shell για τη γραμμή εντολών και την εφαρμογή χωρίς αποκλεισμούς. |
Μύτη2 ![]() | Ελεύθερο λογισμικό (Άδεια BSD) | Διαθέτει unittest χαρακτηριστικά με πρόσθετη δυνατότητα και πρόσθετα. | unittest επέκταση | Ένας μεγάλος αριθμός προσθηκών. |
Καταθέτω ![]() | Ελεύθερο λογισμικό (Άδεια ASF) | Διαθέτει unittest και μύτη χαρακτηριστικά με πρόσθετο χαρακτηριστικό και πρόσθετα. | unittest επέκταση | Βελτίωση δοκιμαστικής ανακάλυψης. |
(Συντομογραφίες: MIT = Τεχνολογικό Ινστιτούτο της Μασαχουσέτης (1980), BSD = Διανομή λογισμικού Berkeley (1988), ASF = Ίδρυμα λογισμικού Apache (2004) )
Ας αρχίσουμε!!
# 1) Ρομπότ
- Το πιο δημοφιλές Robot Framework είναι ένα πλαίσιο ελέγχου αυτοματισμού ανοιχτού κώδικα που βασίζεται στο Python.
- Αυτό το πλαίσιο αναπτύχθηκε εξ ολοκλήρου στο Python και χρησιμοποιείται για Δοκιμή αποδοχής και Τ καθοδηγείται από την ανάπτυξη. Το στυλ λέξεων-κλειδιών χρησιμοποιείται για τη σύνταξη δοκιμαστικών περιπτώσεων στο πλαίσιο ρομπότ.
- Το ρομπότ είναι ικανό να εκτελεί Java και .Net και υποστηρίζει επίσης δοκιμές αυτοματισμού σε πολλαπλές πλατφόρμες όπως Windows, Mac OS και Linux για εφαρμογές επιτραπέζιων υπολογιστών, εφαρμογές για κινητά, εφαρμογές ιστού κ.λπ.
- Μαζί με τη δοκιμή αποδοχής, το ρομπότ χρησιμοποιείται επίσης για αυτοματοποίηση ρομποτικών διεργασιών (RPA).
- Κουκούτσι (Πακέτο εγκατάστασης για Python) συνιστάται ιδιαίτερα για εγκατάσταση ρομπότ.
- Η χρήση σύνταξης δεδομένων σε πίνακα, δοκιμών βάσει λέξεων-κλειδιών, πλούσιων βιβλιοθηκών & εργαλείων και παράλληλων δοκιμών είναι μερικά από τα ισχυρά χαρακτηριστικά του Robot που το καθιστούν δημοφιλές στους δοκιμαστές.
Παράδειγμα:
*** Settings *** Library SeleniumLibrary *** Variables *** ${SERVER} localhost:7272 ${BROWSER} Firefox ${DELAY} 0 ${VALID USER} demo ${VALID PASSWORD} mode ${LOGIN URL} http://${SERVER}/ ${WELCOME URL} http://${SERVER}/welcome.html ${ERROR URL} http://${SERVER}/error.html *** Keywords *** Open Browser To Login Page Open Browser ${LOGIN URL} ${BROWSER} Maximize Browser Window Set Selenium Speed ${DELAY} Login Page Should Be Open Title Should Be Login Page Go To Login Page Go To ${LOGIN URL} Login Page Should Be Open Input Username (Arguments) ${username} Input Text username_field ${username} Input Password (Arguments) ${password} Input Text password_field ${password} Submit Credentials Click Button login_button Welcome Page Should Be Open Location Should Be ${WELCOME URL} Title Should Be Welcome Page
Εδώ είναι ένα δείγμα του Αποτυχία εκτέλεσης δοκιμής.
Εδώ είναι ένα δείγμα του Επιτυχής εκτέλεση δοκιμής.
Πακέτα / Μέθοδοι:
Ονομα πακέτου | Εργαζόμενος | Εισαγωγή πακέτου |
---|---|---|
τρέξιμο() | Για να εκτελέσετε δοκιμές. | από το ρομπότ εισαγωγής |
run_cli () | Για να εκτελέσετε δοκιμές με όρισμα γραμμής εντολών. | από το ρομπότ εισαγωγής run_cli |
αναπήδηση () | Για να επεξεργαστείτε την έξοδο δοκιμής. | από το ρομπότ εισαγωγής ρομπότ |
Σύνδεσμος για API: Οδηγός χρήσης του Robot Framework
Σύνδεσμος λήψης: Ρομπότ
# 2) PyTest
- Το PyTest είναι ένα πλαίσιο δοκιμών ανοιχτού κώδικα Python που είναι γενικά για όλους, αλλά ειδικά για Λειτουργική και δοκιμή API.
- Κουκούτσι (Πακέτο εγκατάστασης για Python) απαιτείται για την εγκατάσταση του PyTest.
- Υποστηρίζει απλό ή σύνθετο κώδικα κειμένου για τη δοκιμή API, βάσεων δεδομένων και UI.
- Η απλή σύνταξη είναι χρήσιμη για εύκολη εκτέλεση δοκιμών.
- Πλούσια πρόσθετα και είναι σε θέση να εκτελεί παράλληλα δοκιμές.
- Μπορεί να εκτελέσει οποιοδήποτε συγκεκριμένο υποσύνολο δοκιμών.
Παράδειγμα:
import pytest //Import unittest module// def test_file1_method(): //Function inside class// x=5 y=6 assert x+1 == y,'test failed'
Για να εκτελέσετε τη δοκιμή χρησιμοποιήστε το δοκιμή εντολή.
Στιγμιότυπο οθόνης για αναφορά:
(εικόνα πηγή )
Πακέτα / Μέθοδοι:
Λειτουργία | Παράμετροι | Εργαζόμενος |
---|---|---|
pytest.approx () | αναμενόμενος, rel = Κανένα, abs = Κανένα, nan_ok = Λάθος | Βεβαιωθείτε ότι δύο αριθμοί ή δύο σύνολα αριθμών είναι περίπου ισούται με κάποιες διαφορές. |
pytest.fail () | μήνυμα (str) pytrace (bool) | Εάν η δοκιμή εκτέλεσης αποτύχει ρητά, εμφανίζεται το μήνυμα. |
pytest.skip () | allow_module_level (bool) | Παράλειψη της δοκιμής εκτέλεσης με το μήνυμα που εμφανίζεται. |
pytest.exit () | μήνυμα (str) κωδικός επιστροφής (int) | Έξοδος από τη διαδικασία δοκιμής. |
pytest.main () | args = Κανένα plugins = Κανένα | Επιστρέψτε τον κωδικό εξόδου μόλις ολοκληρωθεί η εκτέλεση της δοκιμής. |
pytest.raises () | expect_exception: Προσδοκία (, αγώνα) | Βεβαιωθείτε ότι μια κλήση μπλοκ κώδικα αυξάνει την αναμενόμενη_εξαγωγή ή για να αυξήσει μια εξαίρεση αποτυχίας |
Εάν θέλετε να αποκτήσετε πρόσβαση σε ένα τεστ που είναι γραμμένο σε ένα συγκεκριμένο αρχείο, χρησιμοποιούμε την παρακάτω εντολή.
py.test
Πρόγραμμα Pytest: Το Pytest Fixture χρησιμοποιείται για την εκτέλεση κώδικα πριν από την εκτέλεση της μεθόδου δοκιμής για την αποφυγή επανάληψης κώδικα. Αυτό βασικά χρησιμοποιείται για την προετοιμασία της σύνδεσης βάσης δεδομένων.
Μπορείτε να ορίσετε το προσάρτημα PyTest όπως φαίνεται παρακάτω.
@pytest.fixture
Ισχυρισμός: Ο ισχυρισμός είναι η συνθήκη που επιστρέφει αληθής ή ψευδής. Η εκτέλεση δοκιμής σταματά όταν ο ισχυρισμός αποτύχει.
Δίνεται παρακάτω ένα παράδειγμα:
def test_string_equal(): assert double(55) == 62 assert 25 == 62 + where 25 = double(55)
Σύνδεσμος για API: API Pytest
Σύνδεσμος λήψης: Pytest
# 3) Unittest
- Το Unittest είναι το πρώτο με βάση το Python αυτοματοποιημένο πλαίσιο δοκιμής μονάδας που είχε σχεδιαστεί για να λειτουργεί με τη βασική βιβλιοθήκη Python.
- Υποστηρίζει την επαναχρησιμοποίηση δοκιμαστικών στολών και οργάνων δοκιμών.
- Εμπνεύστηκε από το JUnit και υποστηρίζει αυτοματοποιημένο έλεγχο, συμπεριλαμβανομένων συλλογών δοκιμών, ανεξαρτησίας δοκιμών, κώδικα ρύθμισης για δοκιμές κ.λπ.
- Ονομάζεται επίσης ως PyUnit.
- Ανεπιθύμητο2 είναι ένα στήριγμα πρόσθετων νέων δυνατοτήτων που προστίθενται στο Unittest.
Τυπική ροή εργασίας της Unittest:
- Εισαγάγετε τη μονάδα Unittest στον κωδικό προγράμματος.
- Μπορείτε να ορίσετε τη δική σας τάξη.
- Δημιουργήστε συναρτήσεις εντός της κλάσης που έχετε ορίσει.
- Τοποθετήστε unittest.main () που είναι η κύρια μέθοδος στο κάτω μέρος του κώδικα για να εκτελέσετε τη δοκιμαστική θήκη.
Παράδειγμα:
import unittest //Import unittest module// def add(x,y): return x + y class Test(unittest.TestCase): //Define your class with testcase// def addition(self): self.assertEquals(add(4,5),9) //Function inside class// if __name__ == '__main__': unittest.main() //Insert main() method//
Στιγμιότυπο οθόνης για αναφορά:
(εικόνα πηγή )
Πακέτα / Μέθοδοι:
Μέθοδος | Εργαζόμενος |
---|---|
προσθήκη δοκιμής () | Προσθέστε τη μέθοδο δοκιμής στη δοκιμαστική σουίτα. |
setUp () | Κλήθηκε πριν από την εκτέλεση της μεθόδου δοκιμής για την προετοιμασία της εγκατάστασης δοκιμής. |
δάκρυ () | Κλήθηκε μετά την εκτέλεση της μεθόδου δοκιμής ακόμη και αν η δοκιμή ρίξει μια εξαίρεση. |
setUpClass () | Κλήθηκε μετά από δοκιμές σε ατομική τάξη. |
tearDownClass () | Κλήθηκε μετά από δοκιμές σε ατομική τάξη. |
τρέξιμο() | Εκτελέστε τη δοκιμή με αποτελέσματα. |
εντοπισμός σφαλμάτων () | Εκτελέστε τη δοκιμή χωρίς αποτέλεσμα. |
Ανακαλύπτω() | Βρίσκει όλες τις δοκιμαστικές ενότητες σε υποκαταλόγους από τον συγκεκριμένο κατάλογο. |
assertEqual (α, β) | Για να ελέγξετε την ισότητα δύο αντικειμένων. |
asserTrue / assertFalse (κατάσταση) | Για να ελέγξετε την κατάσταση Boolean. |
( Σημείωση: unittest.mock () είναι μια βιβλιοθήκη για δοκιμές Python που επιτρέπει την αντικατάσταση τμημάτων συστήματος με ψεύτικα αντικείμενα. Ο πυρήνας πλαστή τάξη βοηθά στη δημιουργία μιας δοκιμαστικής σουίτας εύκολα.)
Σύνδεσμος για API: Unittest API
Σύνδεσμος λήψης: Όχι
# 4) DocTest
- Το Doctest είναι μια ενότητα που περιλαμβάνεται στην τυπική διανομή της Python και χρησιμοποιείται για Δοκιμή μονάδας λευκού κουτιού.
- Ψάχνει για διαδραστικές συνεδρίες python για να ελέγξει εάν λειτουργούν ακριβώς όπως απαιτείται.
- Χρησιμοποιεί επιλεκτικές δυνατότητες Python όπως docstrings, The Python interactive shell και Python introspection (καθορισμός ιδιοτήτων αντικειμένων κατά το χρόνο εκτέλεσης).
- Βασικές λειτουργίες:
- Ενημέρωση docstring
- Εκτέλεση δοκιμών παλινδρόμησης
- Οι λειτουργίες testfile () και testmod () χρησιμοποιούνται για την παροχή βασικής διεπαφής.
Παράδειγμα:
def test(n): import math if not n >= 0: raise ValueError('n must be >= 0') //number should be 0 or greater than 0 if math.floor(n) != n: raise ValueError('n must be exact integer') //Error when number is not an integer if n+1 == n: raise OverflowError('n too large') //Error when number is too large r = 1 f = 2 while f <= n: //Calculate factorial r *= f f += 1 return r if __name__ == '__main__': import doctest //Import doctest doctest.testmod() //Calling the testmod method
Στιγμιότυπο οθόνης για αναφορά:
(εικόνα πηγή )
Πακέτα / Λειτουργίες :
Λειτουργία | Παράμετροι | |
---|---|---|
hidung.tools.intest | (func) | Η μέθοδος ή η λειτουργία μπορεί να αναφέρεται ως δοκιμή. |
doctest.testfile () | όνομα αρχείου (διορθωτικό) (, module_relative) (, όνομα) (, πακέτο) (, σφαίρες) (, λοβό) (, αναφορά) (, optionflags) (, extraglobs) (, raise_on_error) (, parser) (, κωδικοποίηση) | |
doctest.testmod () | m) (, όνομα) (, σφαίρες) (, verbose) (, αναφορά) (, optionflags) (, extraglobs) (, raise_on_error) (, exclude_empty) | |
doctest.DocFileSuite () | * διαδρομές, (module_relative) (, package) (, setUp) (, tearDown) (, globs) (, optionflags) (, parser) (, encoding) | |
doctest.DocTestSuite () | (module) (, globs) (, extraglobs) (, test_finder) (, setUp) (, tearDown) (, πούλι) |
Σημείωση: Για τον έλεγχο διαδραστικών παραδειγμάτων στο αρχείο κειμένου μπορούμε να χρησιμοποιήσουμε τη συνάρτηση testfile ().
doctest.testfile (“example.txt”)
Μπορείτε να εκτελέσετε απευθείας τη δοκιμή από τη γραμμή εντολών με;
python factorial.py
Σύνδεσμος για API: API DocTest
Σύνδεσμος λήψης: Γιατρός
# 5) Μύτη2
- Το Nose2 είναι ο διάδοχος του Nose και βασίζεται στο Python Πλαίσιο δοκιμών μονάδας που μπορούν να εκτελέσουν το Doctests και το UnitTests.
- Η μύτη2 βασίζεται στο ανυπόμονος Ως εκ τούτου αναφέρεται ως επεκτείνει το πιο αδιάφορο ή το πιο αδιάφορο με την προσθήκη που έχει σχεδιαστεί για να κάνει τις δοκιμές απλές και ευκολότερες.
- Η Nose χρησιμοποιεί συλλογικές δοκιμές από το unittest.testcase και υποστηρίζει πολλαπλές λειτουργίες για τη γραφή δοκιμών και εξαιρέσεων.
- Η μύτη υποστηρίζει τα φωτιστικά πακέτων, τα μαθήματα, τις ενότητες και την πολύπλοκη προετοιμασία που θα καθοριστούν σε μία μόνο στιγμή αντί να γράφονται συχνά.
Παράδειγμα:
from mynum import * import nose def test_add_integers(): assert add(5, 3) == 8 def test_add_floats(): assert add(1.5, 2.5) == 4 def test_add_strings(): nose.tools.assert_raises(AssertionError, add, 'paul', 'carol') // To throw one of the expected exception to pass if __name__ == '__main__': nose.run()
Στιγμιότυπο οθόνης για αναφορά:
Πακέτα / Μέθοδοι:
Μέθοδος | Παράμετροι | Εργαζόμενος |
---|---|---|
hidung.tools.ok_ | (π.χ., msg = Κανένα) | Συντόμευση για επιβεβαίωση. |
hidung.tools.ok_ | (a, b, msg = Κανένα) | Συντόμευση για «assert a == b, '% R! =% R'% (a, b) |
hidung.tools.make_decorator | (func) | Για αναπαραγωγή μεταδεδομένων για τη δεδομένη συνάρτηση. |
hidung.tools.raises | (*εξαίρεση) | Για να πετύχετε μία από τις αναμενόμενες εξαιρέσεις που θα περάσουν. |
hidung.tools.timed | (όριο) | Για να καθορίσετε το χρονικό όριο εντός του οποίου θα πρέπει να περάσει το τεστ. |
hidung.tools.with_setup | (εγκατάσταση = Κανένα, αποκοπή = Κανένα) | Για να προσθέσετε τη μέθοδο ρύθμισης σε μια δοκιμαστική λειτουργία. |
hidung.tools.nottest | (func) | Η μέθοδος ή η συνάρτηση δεν μπορούν να αναφέρονται ως δοκιμή. |
Σύνδεσμος για API: Πρόσθετα για τη μύτη2
Σύνδεσμος λήψης: Μύτη2
# 6) Καταθέστε
- Το Testify έχει σχεδιαστεί για να αντικαθιστά τα πιο άσχημα και μύτη. Το Testify διαθέτει πιο προηγμένες δυνατότητες σε σχέση με το unittest.
- Το Testify είναι δημοφιλές ως εφαρμογή της σημασιολογικής δοκιμής Java (Εύκολη εκμάθηση και εφαρμογή προδιαγραφών δοκιμών λογισμικού).
- Εκτέλεση Αυτοματοποιημένη μονάδα, ολοκλήρωση και έλεγχος συστήματος είναι πιο εύκολο να καταθέσετε.
Χαρακτηριστικά
- Απλή μέθοδος σύνταξης στο προσάρτημα.
- Βελτιωμένη ανακάλυψη δοκιμών.
- Μέθοδος ρύθμισης σε επίπεδο κατηγορίας και προσάρτηση.
- Επεκτάσιμο σύστημα προσθηκών.
- Εύκολο στη χρήση βοηθητικών προγραμμάτων δοκιμών.
Παράδειγμα:
from testify import * class AdditionTestCase(TestCase): @class_setup def init_the_variable(self): self.variable = 0 @setup def increment_the_variable(self): self.variable += 1 def test_the_variable(self): assert_equal(self.variable, 1) @suite('disabled', reason='ticket #123, not equal to 2 places') def test_broken(self): # raises 'AssertionError: 1 !~= 1.01' assert_almost_equal(1, 1.01, threshold=2) @teardown def decrement_the_variable(self): self.variable -= 1 @class_teardown def get_rid_of_the_variable(self): self.variable = None if __name__ == '__main__': run()
Στιγμιότυπο οθόνης για αναφορά:
(εικόνα πηγή )
Πακέτα / Μέθοδοι:
Ονομα πακέτου | Εργαζόμενος | Εισαγωγή πακέτου |
---|---|---|
διεκδικώ | Παρέχει ολοκληρωμένα εργαλεία δοκιμών για τη δοκιμή του συστήματος. | εισαγωγή 'github.com/stretchr/testify/assert' |
κοροϊδεύω | Χρήσιμο για να δοκιμάσετε τα αντικείμενα και τις κλήσεις σας. | εισαγωγή 'github.com/stretchr/testify/mock' |
απαιτώ | Λειτουργεί με τον ίδιο τρόπο όπως ισχυρίζεται, αλλά σταματά την εκτέλεση της δοκιμής όταν οι δοκιμές αποτύχουν. | εισαγωγή 'github.com/stretchr/testify/require' |
μετά | Παρέχει λογική για τη δημιουργία δομής και μεθόδων σουίτας δοκιμών. | εισαγωγή 'github.com/stretchr/testify/suite' |
Σύνδεσμος για API: Αρχεία πακέτων του Testify
Σύνδεσμος λήψης: Καταθέτω
Πρόσθετο πλαίσιο δοκιμών Python
Μέχρι στιγμής έχουμε ελέγξει το πιο δημοφιλές πλαίσιο δοκιμών Python. Είναι μερικοί περισσότερα ονόματα σε αυτήν τη λίστα που μπορεί να γίνουν δημοφιλή στο μέλλον.
# 7) Συμπεριφέρετε
- Συμπεριφορά αναφέρεται ως BDD (Ανάπτυξη βάσει συμπεριφοράς) πλαίσιο δοκιμής που χρησιμοποιείται επίσης για Δοκιμή μαύρου κουτιού . Το Behave χρησιμοποιεί τη φυσική γλώσσα για τη συγγραφή δοκιμών και συνεργάζεται με το Unicode Strings.
- Ο κατάλογος συμπεριφοράς περιέχει αρχεία χαρακτηριστικών που έχουν μορφή απλού κειμένου μοιάζει με φυσική γλώσσα και Εφαρμογές βήμα Python .
Σύνδεσμος για API: Οδηγός συμπεριφοράς
Σύνδεσμος λήψης: Συμπεριφέρομαι
# 8) Μαρούλι
- Το μαρούλι είναι χρήσιμο για Δοκιμή ανάπτυξης βάσει συμπεριφοράς . Κάνει τη διαδικασία δοκιμής εύκολη και επεκτάσιμη.
- Το μαρούλι περιλαμβάνει βήματα όπως:
- Περιγράφοντας τη συμπεριφορά
- Ορισμός βημάτων στο Python.
- Εκτέλεση του κώδικα
- Τροποποίηση κώδικα για να περάσει το τεστ.
- Εκτέλεση του τροποποιημένου κώδικα.
- Αυτά τα βήματα ακολουθούνται για 3 - 4 φορές για να καταστεί το λογισμικό χωρίς σφάλματα και έτσι να βελτιωθεί η ποιότητά του.
Σύνδεσμος για API: Τεκμηρίωση μαρουλιού
Σύνδεσμος λήψης: Μαρούλι
Συχνές Ερωτήσεις και Απαντήσεις
Ας ρίξουμε μια ματιά σε μερικές από τις πιο συχνές ερωτήσεις σχετικά με αυτό το θέμα-
Q # 1) Γιατί χρησιμοποιείται η Python για αυτοματοποίηση;
Απάντηση: Καθώς το 'Python συνοδεύεται από τα εργαλεία και τις βιβλιοθήκες που υποστηρίζουν αυτοματοποιημένες δοκιμές για το σύστημά σας', υπάρχουν πολλοί άλλοι λόγοι για τους οποίους το Python χρησιμοποιείται για δοκιμές.
- Το Python είναι αντικειμενοστραφές και λειτουργικό που επιτρέπει στους προγραμματιστές να συμπεράνουν αν η λειτουργία και οι τάξεις είναι κατάλληλες σύμφωνα με τις απαιτήσεις.
- Η Python προσφέρει μια πλούσια βιβλιοθήκη χρήσιμων πακέτων για δοκιμές μετά την εγκατάσταση του 'Pip'.
- Οι απάτριδες λειτουργίες και η απλή σύνταξη είναι χρήσιμες για τη δημιουργία ευανάγνωστων δοκιμών.
- Ο Python παίζει το ρόλο της γέφυρας μεταξύ της δοκιμαστικής θήκης και του κωδικού δοκιμής.
- Η Python υποστηρίζει δυναμική πληκτρολόγηση πάπιας.
- Προσφέρει καλά διαμορφωμένο IDE και καλή υποστήριξη στο πλαίσιο BDD.
- Η πλούσια υποστήριξη γραμμής εντολών είναι χρήσιμη για την εκτέλεση ενός μη αυτόματου ελέγχου.
- Απλή και καλή δομή, αρθρωτότητα, πλούσιο σύνολο εργαλείων και πακέτα μπορεί να είναι χρήσιμα για την ανάπτυξη κλίμακας.
Q # 2) Πώς να δομήσετε μια δοκιμή Python;
Απάντηση: Μέχρι τη δημιουργία ενός τεστ στο Python, θα πρέπει να εξετάσετε δύο πράγματα όπως αναφέρεται παρακάτω.
- Ποια μονάδα / μέρος του συστήματος θέλετε να δοκιμάσετε;
- Ποιος τύπος δοκιμών επιλέγετε (είτε πρόκειται για δοκιμή μονάδας είτε για δοκιμή ενοποίησης);
Η συνολική δομή του Python Test είναι τόσο απλή όσο άλλες όπου αποφασίζουμε τα συστατικά των δοκιμών όπως - εισόδους, δοκιμαστικός κώδικας που θα εκτελεστεί, έξοδος και σύγκριση της εξόδου με τα αναμενόμενα αποτελέσματα.
Q # 3) Ποιο εργαλείο αυτοματισμού είναι γραμμένο στο Python;
Απάντηση: Κατασκευή είναι ένα εργαλείο αυτοματισμού που γράφεται και επεκτείνεται με το Python και χρησιμοποιείται για την αυτοματοποίηση της συναρμολόγησης λογισμικού. Το Buildout μπορεί να εφαρμοστεί σε όλες τις φάσεις του λογισμικού από την ανάπτυξη έως την ανάπτυξη.
Αυτό το εργαλείο βασίζεται σε 3 βασικές αρχές:
- Επαναληψιμότητα: Αναφέρει ότι η διαμόρφωση έργου που αναπτύχθηκε στο ίδιο περιβάλλον θα πρέπει να παράγει το ίδιο αποτέλεσμα ανεξάρτητα από το ιστορικό τους.
- Συγκέντρωση: Η υπηρεσία λογισμικού θα πρέπει να περιλαμβάνει εργαλεία αυτοπαρακολούθησης και θα πρέπει να διαμορφώνει το σύστημα παρακολούθησης κατά την ανάπτυξη του προϊόντος.
- Αυτοματοποίηση: Η ανάπτυξη λογισμικού θα πρέπει να είναι πολύ αυτοματοποιημένη και να εξοικονομεί χρόνο.
Q # 4) Μπορεί το Python να χρησιμοποιηθεί με σελήνιο;
Απάντηση: Ναί. Η γλώσσα Python χρησιμοποιείται με το Selenium για την εκτέλεση δοκιμών. Το Python API είναι χρήσιμο να συνδεθείτε με το πρόγραμμα περιήγησης μέσω του Selenium. Ο συνδυασμός Python Selenium μπορεί να χρησιμοποιηθεί για τη σύνταξη δοκιμών λειτουργικής / αποδοχής χρησιμοποιώντας το Selenium WebDriver.
Q # 5) Είναι καλό το Σελήνιο με την Python;
Απάντηση: Υπάρχουν διάφοροι λόγοι για τους οποίους το Selenium και η Python θεωρούνται ένας καλός συνδυασμός:
- Το Selenium διαθέτει το ισχυρότερο σύνολο εργαλείων που υποστηρίζει γρήγορο αυτοματισμό δοκιμών.
- Το Selenium προσφέρει Αφιερωμένες δοκιμαστικές λειτουργίες για την εκτέλεση δοκιμών εφαρμογών ιστού που βοηθούν στην εξέταση της πραγματικής συμπεριφοράς της εφαρμογής.
- Ενώ, το Python είναι μια υψηλού επιπέδου, βασισμένη σε αντικείμενα και φιλική προς το χρήστη γλώσσα σεναρίων με μια απλή δομή λέξεων-κλειδιών.
Τώρα, όταν πρόκειται για τη χρήση του σεληνίου με Python έχει πολλά οφέλη όπως αναφέρεται παρακάτω.
- Εύκολη κωδικοποίηση και ανάγνωση.
- Το Python API είναι εξαιρετικά χρήσιμο για να σας συνδέσει στο πρόγραμμα περιήγησης μέσω του Selenium.
- Το Selenium στέλνει την τυπική εντολή του Python σε διάφορα προγράμματα περιήγησης ανεξάρτητα από τις παραλλαγές του σχεδιασμού του.
- Το Python είναι συγκριτικά απλό και συμπαγές από τις άλλες γλώσσες προγραμματισμού.
- Η Python έρχεται με μια μεγάλη κοινότητα για να υποστηρίξει όσους είναι εντελώς νέοι για να χρησιμοποιήσουν το Selenium με την Python για να εκτελέσουν δοκιμές αυτοματισμού.
- Είναι δωρεάν και ανοιχτή γλώσσα προγραμματισμού όλη την ώρα.
- Το Selenium WebDriver είναι ένας άλλος ισχυρός λόγος για τη χρήση του Selenium με την Python. Το Selenium WebDriver έχει ισχυρή δεσμευτική υποστήριξη για την εύκολη διεπαφή χρήστη της Python.
Q # 6) Ποια είναι τα μέτρα για την επιλογή του καλύτερου πλαισίου δοκιμών Python;
Απάντηση: Για την επιλογή του καλύτερου πλαισίου δοκιμών Python, πρέπει να ληφθούν υπόψη τα παρακάτω σημεία:
- Εάν η ποιότητα και η δομή των σεναρίων, πληροί τους σκοπούς σας. Το σενάριο προγραμματισμού πρέπει να είναι εύκολο να κατανοηθεί / διατηρηθεί και χωρίς ελαττώματα.
- Η δομή προγραμματισμού της Python παίζει σημαντικό ρόλο στην επιλογή του πλαισίου δοκιμών που αποτελείται - Χαρακτηριστικά, δηλώσεις, λειτουργίες, χειριστές, λειτουργικές μονάδες και τυπικά αρχεία βιβλιοθήκης.
- Πόσο εύκολα μπορείτε να δημιουργήσετε δοκιμές και σε ποιο βαθμό μπορούν να επαναχρησιμοποιηθούν;
- Η μέθοδος που υιοθετήθηκε για την εκτέλεση της δοκιμαστικής μονάδας δοκιμής (Τεχνικές λειτουργίας ενότητας).
Ε # 7) Πώς να επιλέξετε το καλύτερο πλαίσιο δοκιμών Python;
Απάντηση: Η κατανόηση των πλεονεκτημάτων και των περιορισμών κάθε πλαισίου είναι ένας καλύτερος τρόπος για να επιλέξετε το καλύτερο πλαίσιο Python Testing. Ας εξερευνήσουμε -
Πλαίσιο ρομπότ:
Πλεονεκτήματα:
- Η προσέγγιση δοκιμής βάσει λέξεων-κλειδιών βοηθά στη δημιουργία ευανάγνωστων δοκιμαστικών περιπτώσεων με ευκολότερο τρόπο.
- Πολλά API
- Εύκολη σύνταξη δεδομένων δοκιμής
- Υποστηρίζει παράλληλες δοκιμές μέσω Selenium Grid.
Περιορισμοί:
- Η δημιουργία προσαρμοσμένων αναφορών HTML είναι αρκετά δύσκολη με το Robot.
- Λιγότερη υποστήριξη σε παράλληλες δοκιμές.
- Απαιτεί Python 2.7.14 και άνω.
Pytest:
Πλεονεκτήματα:
- Υποστηρίζει συμπαγή δοκιμαστική σουίτα.
- Δεν υπάρχει ανάγκη για το πρόγραμμα εντοπισμού σφαλμάτων ή οποιοδήποτε ρητό αρχείο καταγραφής δοκιμών.
- Πολλαπλά φωτιστικά
- Επεκτάσιμα πρόσθετα
- Εύκολη και απλή δημιουργία δοκιμών.
- Δυνατότητα δημιουργίας δοκιμαστικών περιπτώσεων με λιγότερα σφάλματα.
Περιορισμοί:
- Δεν είναι συμβατό με άλλα πλαίσια.
Unittest:
Πλεονεκτήματα:
- Δεν χρειάζεται καμία πρόσθετη ενότητα.
- Εύκολο στην εκμάθηση για δοκιμαστές σε επίπεδο αρχάριου.
- Απλή και εύκολη εκτέλεση δοκιμής.
- Ταχεία δημιουργία αναφορών δοκιμών.
Περιορισμοί
- Η ονομασία του snake_case του Python και η καμήλα Ονομασία του JUnit προκαλούν λίγη σύγχυση.
- Ασαφής πρόθεση του κωδικού δοκιμής.
- Απαιτείται τεράστιος αριθμός κωδικού λέβητα.
Γιατρός:
Πλεονεκτήματα:
- Μια καλή επιλογή για την εκτέλεση μικρών δοκιμών.
- Η τεκμηρίωση δοκιμής στη μέθοδο παρέχει επίσης πρόσθετες πληροφορίες σχετικά με τον τρόπο λειτουργίας της μεθόδου.
Περιορισμοί
- Συγκρίνει μόνο την εκτυπωμένη έξοδο. Οποιαδήποτε διακύμανση στην έξοδο θα προκαλέσει αποτυχία δοκιμής.
Μύτη 2:
Πλεονεκτήματα:
- Η μύτη 2 υποστηρίζει περισσότερη διαμόρφωση δοκιμών από ό, τι είναι πιο απλή.
- Περιλαμβάνει ένα σημαντικό σύνολο ενεργών προσθηκών.
- Διαφορετικό API από το unittest που παρέχει περισσότερες πληροφορίες σχετικά με το σφάλμα.
Περιορισμοί:
- Κατά την εγκατάσταση προσθηκών τρίτου μέρους πρέπει να εγκαταστήσετε το εργαλείο ρύθμισης / διανομή πακέτου, καθώς το Nose2 υποστηρίζει το Python 3 αλλά όχι τα πρόσθετα τρίτων.
Καταθέτω:
Πλεονεκτήματα:
- Εύκολο στην κατανόηση και στη χρήση.
- Οι δοκιμές μονάδας, ολοκλήρωσης και συστήματος μπορούν εύκολα να δημιουργηθούν.
- Διαχειρίσιμα και επαναχρησιμοποιήσιμα στοιχεία δοκιμής.
- Η προσθήκη νέων λειτουργιών στο Testify είναι εύκολη.
Περιορισμοί:
- Αρχικά το Testify αναπτύχθηκε για να αντικαταστήσει το unittest και το Nose, αλλά η διαδικασία μετάβασής του στο pytest είναι ενεργή, επομένως συνιστάται στους χρήστες να αποφεύγουν τη χρήση του Testify για λίγα επερχόμενα έργα.
Συμπεριφορά πλαισίου:
Πλεονεκτήματα:
- Εύκολη εκτέλεση όλων των τύπων δοκιμαστικών περιπτώσεων.
- Λεπτομερής συλλογισμός και σκέψη
- Σαφήνεια της εξόδου QA / Dev.
Περιορισμοί:
- Υποστηρίζει μόνο τη δοκιμή μαύρου κουτιού.
Πλαίσιο μαρουλιού:
Πλεονεκτήματα:
- Απλή γλώσσα για τη δημιουργία πολλαπλών σεναρίων δοκιμών.
- Χρήσιμο για δοκιμαστικές υποθέσεις για δοκιμές μαύρου κουτιού.
Περιορισμοί:
- Χρειάζεται έντονα συντονισμό μεταξύ προγραμματιστών, υπεύθυνων δοκιμών και ενδιαφερομένων.
Μπορείτε να επιλέξετε το καλύτερο κατάλληλο πλαίσιο δοκιμών Python λαμβάνοντας υπόψη τα παραπάνω πλεονεκτήματα και περιορισμούς που θα σας βοηθήσουν να αναπτύξετε τα κριτήρια κατάλληλα για τις επιχειρηματικές σας ανάγκες.
Q # 8) Ποιο πλαίσιο είναι καλύτερο για τον αυτοματισμό Python;
Απάντηση: Λαμβάνοντας υπόψη τα πλεονεκτήματα και τους περιορισμούς, μπορούμε να θεωρήσουμε τον τύπο δοκιμής ως ένα από τα μέτρα για την επιλογή του καλύτερου πλαισίου δοκιμών:
c ++ περιμένετε 1 δευτερόλεπτο
- Λειτουργική δοκιμή: Ρομπότ, PyTest, Unittest
- Δοκιμή βάσει συμπεριφοράς: Συμπεριφορά, μαρούλι
Ρομπότ είναι το καλύτερο πλαίσιο για όσους είναι νέοι στη δοκιμή Python και επιθυμούν να ξεκινήσουν καλά.
συμπέρασμα
Υπομονάδα, δοκιμή, πόροι δοκιμής, Sancho, Testtools είναι μερικά ακόμη ονόματα που προστίθενται στη λίστα του Python Testing Framework. Ωστόσο, υπάρχουν μόνο λίγα εργαλεία που έχουν διαδοθεί στο βαθμό που η δοκιμή Python είναι μια συγκριτικά νέα ιδέα που εισάγεται στον κόσμο των δοκιμών.
Οι εταιρείες εργάζονται για να κάνουν αυτά τα εργαλεία καλύτερα, ώστε να είναι εύκολα κατανοητά και να εκτελούν δοκιμές. Με τα πλούσια και ακριβή φωτιστικά, plugins και πακέτα, αυτά τα εργαλεία μπορούν να γίνουν καλά και προτιμότερα για την εκτέλεση Python Testing.
Εν τω μεταξύ, τα πλαίσια που αναφέρονται παραπάνω από το unittest έως το Testify παρέχουν πολύ απαραίτητη υποστήριξη και υπηρεσία για την επίτευξη της επιδιωκόμενης απόδοσης του συστήματος.
= >> Επικοινωνήστε μαζί μας να προτείνω μια καταχώριση εδώ.Συνιστώμενη ανάγνωση
- Διαδικασία εισαγωγής και εγκατάστασης Python
- Εκμάθηση Python για αρχάριους (ΔΩΡΕΑΝ Κατάρτιση Python)
- 30+ καλύτερα σεμινάρια σεληνίου: Μάθετε το σελήνιο με πραγματικά παραδείγματα
- Τι είναι ο έλεγχος αυτοματισμού (ο τελικός οδηγός για την έναρξη του αυτοματισμού δοκιμής)
- Οι διαφορές μεταξύ δοκιμών μονάδας, δοκιμών ολοκλήρωσης και δοκιμών λειτουργίας
- 10 πιο δημοφιλή εργαλεία ρομποτικής αυτοματοποίησης διεργασιών RPA το 2021
- 25 Καλύτερα πλαίσια δοκιμής Java και εργαλεία για αυτοματοποίηση δοκιμών (Μέρος 3)
- 8 Εργαλεία βέλτιστης συμπεριφοράς βάσει ανάπτυξης (BDD) και πλαίσια δοκιμών