Ten poradnik wyjaśnia, w jaki sposób Python może być używany do programowania testowego i wymienia funkcje i porównanie najlepszych frameworków testowych Pythona:
wraz z powszechnym zastosowaniem sztucznej inteligencji Python stał się popularnym językiem programowania.
Ten poradnik omówi, w jaki sposób Python może być używany do programowania testowego wraz z niektórymi frameworkami testowymi bazującymi na Pythonie.
zaczynajmy!!
=> sprawdź wszystkie tutoriale Pythona tutaj.
Co To jest Python?
zgodnie z tradycyjną definicją Python jest interpretowanym, wysokopoziomowym, ogólnym językiem programowania, który pomaga programistom pisać zarządzalny i logiczny kod dla małych i dużych projektów.
niektóre z zalet Pythonów to:
- brak kompilacji powoduje szybkie wykonanie cyklu Edit-Test-Debug.
- łatwe debugowanie
- rozbudowana biblioteka wsparcia
- łatwa do nauczenia struktura danych
- wysoka wydajność
- współpraca zespołowa
Praca w Pythonie
- interpreter odczytuje kod Pythona z pliku źródłowego i bada go pod kątem błąd składni.
- Jeśli kod jest wolny od błędów, interpreter konwertuje kod na równoważny 'kod bajtowy’.
- ten kod bajtu jest następnie przesyłany do maszyny Wirtualnej Pythona (PVM), gdzie kod bajtu jest ponownie kompilowany pod kątem błędu, jeśli występuje.
Co To jest testowanie w Pythonie?
- automatyczne testowanie jest dobrze znanym kontekstem w świecie testowania. Jest to miejsce, w którym plany testowe są wykonywane za pomocą skryptu zamiast człowieka.
- Python jest dostarczany z narzędziami i bibliotekami, które obsługują automatyczne testowanie Twojego systemu.
- przypadki testowe w Pythonie są stosunkowo łatwe do napisania. Wraz ze zwiększonym wykorzystaniem Pythona, frameworki automatyzacji testów oparte na Pythonie również stają się popularne.
lista frameworków testowych Pythona
Poniżej znajduje się kilka frameworków testowych Pythona, które powinieneś znać.
- Robot
- PyTest
- Unittest
- Doctest
- Nose2
- Testuj
porównanie narzędzi testujących Pythona
podsumujmy szybko te frameworki w krótkiej tabeli porównawczej:
Licencja | część | Kategoria | Kategoria Funkcja specjalna |
|
---|---|---|---|---|
robot |
darmowe oprogramowanie (Licencja ASF} |
podstawowe biblioteki testowe Pythona. | testy akceptacyjne | podejście testowe oparte na słowach kluczowych. |
PyTest |
Free software (MIT License) | Stand alone, allows compact test suites. | Unit Testing | Special and simple class fixture for making testing easier. |
unittest |
Free software (MIT License) | Part of Python standard library. | Unit Testing | Fast test collection and flexible test execution. |
DocTest |
Free software (MIT License) | Part of Python standard library. | Unit Testing | Python Interactive Shell for the command prompt and inclusive application. |
Nose2 |
Free software (BSD License) |
Carries unittest features with additional feature and plugins. | unittest extension | A large number of plugins. |
Testify |
darmowe oprogramowanie (Licencja ASF) |
posiada funkcje unittest i nose z dodatkowymi funkcjami i wtyczkami. | unittest extension | test Discovery enhancement. |
(skróty: MIT = Massachusetts Institute of Technology (1980), BSD = Berkeley Software Distribution (1988), ASF = Apache Software Foundation(2004))
zacznijmy!!
#1) Robot
- najpopularniejszym frameworkiem robotów jest otwarty framework do testowania automatyzacji oparty na Pythonie.
- ten framework jest w całości rozwijany w Pythonie i jest używany do testów akceptacyjnych i programowania opartego na testach. Styl słów kluczowych jest używany do pisania przypadków testowych w ramach robotów.
- Robot jest zdolny do uruchamiania Java i. Net, a także obsługuje testy automatyzacji na wielu platformach, takich jak Windows, Mac OS i Linux dla aplikacji desktopowych, aplikacji mobilnych, aplikacji internetowych itp.
- oprócz testów akceptacyjnych Robot jest również używany do automatyzacji procesów robotycznych (RPA).
- Pip (Package Installer for Python) jest wysoce zalecany do instalacji robotów.
- wykorzystanie składni danych tabelarycznych, testowanie oparte na słowach kluczowych, bogate biblioteki& zestaw narzędzi i testowanie równoległe to niektóre z mocnych cech robota, które sprawiają, że jest popularny wśród testerów.
przykład:
*** 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 PageGo To Login Page Go To ${LOGIN URL} Login Page Should Be OpenInput Username ${username} Input Text username_field ${username}Input Password ${password} Input Text password_field ${password}Submit Credentials Click Button login_buttonWelcome Page Should Be Open Location Should Be ${WELCOME URL} Title Should Be Welcome Page
oto próbka nieudanego wykonania testu.
Here is a sample of Successful Test Execution.
Packages/Methods:
Package Name | Working | Package Import |
---|---|---|
run() | To run tests. | from robot import run |
run_cli() | To run tests with command line argument. | z importu robota run_cli |
rebot () | do przetworzenia wyniku testu. | from robot import rebot |
Link do API: Robot Framework Podręcznik Użytkownika
link do pobrania: Robot
#2) PyTest
- PyTest to open-source oparty na Pythonie framework testujący, który jest ogólnie uniwersalny, ale szczególnie do testów funkcjonalnych i API.
- Pip (Package Installer for Python) jest wymagany do instalacji PyTest.
- obsługuje prosty lub złożony kod tekstowy do testowania API, baz danych i interfejsu użytkownika.
- prosta składnia jest pomocna dla łatwego wykonania testu.
- Rich plugins i jest w stanie uruchamiać testy równolegle.
- może uruchomić dowolny określony podzbiór testów.
przykład:
import pytest //Import unittest module//def test_file1_method(): //Function inside class// x=5 y=6 assert x+1 == y,"test failed"
aby uruchomić test, użyj py.polecenie testowe.
zrzut ekranu dla odniesienia:
Pakiety / metody:
funkcja | parametry | praca |
---|---|---|
pytest.approx() | expected, rel=None, abs=None, nan_ok=False |
twierdzi, że dwie liczby lub dwa zestawy liczb są w przybliżeniu równe pewnym różnicom. |
fail() | msg (str) pytrace(bool) |
jeśli wykonanie testu nie powiedzie się jawnie, wyświetlany jest komunikat. |
skip() | allow_module_level(bool) | Skip the executing test with the message shown. |
pytest.exit() | msg (str) returncode (int) |
Exit testing process. |
pytest.main() | args=None plugins=None |
Return exit code once in-process test execution is done. |
pytest.raises() | expected_exception: Expectation | Assert that a code block call raises expected_exception or to raise a failure exception |
pytest.warns() | expected_warning: Oczekiwanie | generowanie ostrzeżenia za pomocą funkcji |
Jeśli chcesz uzyskać dostęp do testu napisanego w określonym pliku, używamy poniższej komendy.
py.test <filename>
Pytest Fixture: Pytest Fixture służy do uruchamiania kodu przed wykonaniem metody testowej, aby uniknąć powtarzania kodu. Jest to zasadniczo używane do inicjalizacji połączenia z bazą danych.
Możesz zdefiniować pytest fixture jak pokazano poniżej.
@pytest.fixture
twierdzenie: twierdzenie jest warunkiem, który zwraca true lub false. Wykonanie testu zatrzymuje się, gdy twierdzenie nie powiedzie się.
Poniżej znajduje się przykład:
def test_string_equal():assert double(55) == 62assert 25 == 62+ where 25 = double(55)
Link do API: Pytest API
link do pobrania: Pytest
#3) Unittest
- Unittest to pierwszy oparty na Pythonie framework do automatycznego testowania jednostek, który został zaprojektowany do pracy z biblioteką standardową Pythona.
- obsługuje ponowne użycie kombinezonów testowych i organizację testów.
- został zainspirowany przez JUnit i obsługuje automatyzację testów, w tym Kolekcje testów, niezależność Testów, Kod konfiguracji testów itp.
- jest również nazywany PyUnit.
- Unittest2 to backport dodatkowych nowych funkcji dodanych do Unittest.
Standardowy workflow Unittest:
- Import modułu Unittest w kodzie programu.
- możesz zdefiniować własną klasę.
- tworzenie funkcji wewnątrz zdefiniowanej klasy.
- miejsce unittest.main (), która jest główną metodą na dole kodu do uruchomienia przypadku testowego.
przykład:
import unittest //Import unittest module//def add(x,y): return x + yclass Test(unittest.TestCase): //Define your class with testcase// def addition(self): self.assertEquals(add(4,5),9)<strong>//Function inside class//if __name__ == '__main__': unittest.main()<strong>//Insert main() method//
zrzut ekranu dla odniesienia:
Pakiety / metody:
metoda | praca |
---|---|
setup () | wywołane przed wykonaniem metody testowej w celu przygotowania instalacji testowej. |
tearDown () | wywoływane po wykonaniu metody testowej, nawet jeśli test wyrzuci wyjątek. |
setUpClass () | wywoływane po testach w poszczególnych klasach. |
teardownclass () | wywoływane po testach w poszczególnych klasach. |
run () | Uruchom test z wynikami. |
Debug () | Uruchom test bez wyniku. |
addTest () | Dodaj metodę testową w zestawie testowym. |
Discover () | znajduje wszystkie moduły testowe w podkatalogach z określonego katalogu. |
assertEqual(a,b) | do testowania równości dwóch obiektów. |
asserTrue/assertFalse(condition) | do testowania warunku logicznego. |
(Uwaga: unittest.mock () jest biblioteką do testowania w Pythonie, która umożliwia zastępowanie części systemu obiektami mock. Podstawowa klasa mock pomaga w łatwym tworzeniu pakietu testowego.)
Link do API: Unittest API
link do pobrania: Unittest
#4) DocTest
- doctest jest modułem, który jest zawarty w standardowej dystrybucji Pythona i jest używany do testowania jednostek typu White-box.
- wyszukuje interaktywne sesje Pythona, aby sprawdzić, czy działają dokładnie tak, jak jest to wymagane.
- wykorzystuje selektywne możliwości Pythona, takie jak docstrings, interaktywna powłoka Pythona i introspekcja Pythona (Określanie właściwości obiektów w czasie wykonywania).
- podstawowe funkcje:
- aktualizacja docstring
- wykonywanie testów regresji
- funkcje testfile() i testmod() są używane do zapewnienia podstawowego interfejsu.
przykład:
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 rif __name__ == "__main__": import doctest //Import doctest doctest.testmod() //Calling the testmod method
zrzut ekranu dla odniesienia:
Pakiety / funkcje:
Function | Parameters |
---|---|
doctest.testfile() | filename (mendatory) |
doctest.testmod() | m]
|
doctest.DocFileSuite() | *paths, |
doctest.DocTestSuite() |
Note: Do sprawdzania interaktywnych przykładów w pliku tekstowym możemy użyć funkcji testfile ();
doctest.testfile ("example.txt”)
możesz bezpośrednio uruchomić test z wiersza poleceń za pomocą;
python factorial.py
Link do API: DOCTEST API
link do pobrania: Doctest
#5) Nose2
- nose2 jest następcą nose i jest opartym na Pythonie frameworkiem do testowania jednostek, który może uruchamiać doctesty i unittesty.
- Nose2 jest oparty na unittest, dlatego jest określany jako extend unittest lub unittest z wtyczką, która została zaprojektowana, aby testowanie było proste i łatwiejsze.
- Nose wykorzystuje testy zbiorcze unittest.testcase i obsługuje wiele funkcji do pisania testów i WYJĄTKÓW.
- Nose obsługuje oprawy pakietów, klasy, moduły i złożone inicjalizacje, które mają być zdefiniowane w jednym czasie, zamiast często pisać.
przykład:
from mynum import *import nosedef test_add_integers(): assert add(5, 3) == 8def test_add_floats(): assert add(1.5, 2.5) == 4def test_add_strings(): nose.tools.assert_raises(AssertionError, add, 'paul', 'carol') // To throw one of the expected exception to passif __name__ == '__main__': nose.run()
zrzut ekranu dla odniesienia:
Pakiety / metody:
Method | Parameters | Working |
---|---|---|
nose.tools.ok_ | (expr, msg = None) | Shortcut to assert. |
nose.tools.ok_ | (a,b, msg = None) | Shortcut to ‘assert a==b, „%r != %r” % (a, b) |
nose.tools.make_decorator | (func) | To replicate metadata for the given function. |
nose.tools.podnosi | (*exception) | , aby rzucić jeden z oczekiwanych WYJĄTKÓW do przejścia. |
nos.narzędzia.timed | (limit) | , aby określić limit czasu, w którym test powinien przejść. |
nos.narzędzia.with_setup | (setup=None, teardown=None) | aby dodać metodę konfiguracji do funkcji testowej. |
nos.narzędzia.intest | (func) | Metoda lub Funkcja Mogą być określane jako test. |
nos.narzędzia.nottest | (func) | Metoda lub funkcja nie mogą być określane jako test. |
Link do API: wtyczki do Nose2
link do pobrania: Nose2
#6) Testify
- Testify został zaprojektowany, aby zastąpić unittest i nose. Testif ma bardziej zaawansowane funkcje niż unittest.
- Test jest popularną implementacją Java semantic testing (łatwą do nauczenia się i implementującą specyfikację testowania oprogramowania).
- Wykonywanie zautomatyzowanych testów jednostek, integracji i systemów jest łatwiejsze do poświadczenia.
funkcje
- prosta składnia do metody fixture.
- improwizowane odkrycie testu.
- konfiguracja na poziomie klasy i metoda teardown fixture.
- rozszerzalny system wtyczek.
- łatwe w obsłudze narzędzia testowe.
przykład:
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 = Noneif __name__ == "__main__":run()
zrzut ekranu dla odniesienia:
Pakiety / metody:
Nazwa pakietu | praca | import pakietu |
---|---|---|
assert | zapewnia kompleksowe narzędzia do testowania systemu. | import „github.com/stretchr/testify/assert” |
mock | przydatne do testowania obiektów i wywołań. | import „github.com/stretchr/testify/mock” |
require | działa tak samo jak assert, ale zatrzymuje wykonywanie testów, gdy testy się nie powiedzą. | import ” github.com/stretchr/testify/require” |
suite | zapewnia logikę tworzenia struktury i metod pakietu testowego. | import „github.com/stretchr/testify/suite” |
Link do API: pliki pakietów programu Testify
link do pobrania: Testify
dodatkowy Framework testowania języka Python
do tej pory sprawdziliśmy najpopularniejszy Framework testowania języka Python. Jest jeszcze kilka nazwisk na tej liście, które mogą stać się popularne w przyszłości.
#7) zachowuj się
- zachowuj się jest określany jako framework testowy BDD (Behavior Driven Development), który jest również używany do testowania czarnych skrzynek. Behave używa języka naturalnego do pisania testów i działa z ciągami znaków Unicode.
- katalog zawiera pliki funkcji, które mają zwykły format tekstowy przypominający implementacje języka naturalnego i Pythona.
Link do API: zachowuj się Podręcznik Użytkownika
link do pobrania: zachowuj się
#8) sałata
- sałata jest przydatna do testów Behavior Driven Development. To sprawia, że proces testowania jest łatwy i skalowalny.
- zawiera kroki takie jak:
- opisujące zachowanie
- definicja kroków w Pythonie.
- uruchamianie kodu
- modyfikowanie kodu, aby przejść test.
- uruchamianie zmodyfikowanego kodu.
- te kroki są przestrzegane przez 3-4 razy, aby oprogramowanie było wolne od błędów, a tym samym poprawić jego jakość.
Link do API: Lettuce Documentation
link do pobrania: Lettuce
Najczęściej zadawane pytania i odpowiedzi
przyjrzyjmy się najczęstszym najczęściej zadawanym pytaniom na ten temat-
Q #1) Dlaczego Python jest używany do automatyzacji?
odpowiedź :ponieważ 'Python jest dostarczany z narzędziami i bibliotekami, które obsługują automatyczne testowanie Twojego systemu’, istnieje kilka innych powodów, dla których Python jest używany do testowania.
- Python jest obiektowo zorientowany i funkcjonalny, który pozwala programistom stwierdzić, czy funkcja i klasy są odpowiednie zgodnie z wymaganiami.
- Python oferuje bogatą bibliotekę przydatnych pakietów do testowania po zainstalowaniu 'Pip’.
- funkcje bezstanowe i prosta składnia są pomocne w tworzeniu czytelnych testów.
- Python odgrywa rolę pomostu pomiędzy testowym przypadkiem a kodem testowym.
- Python obsługuje dynamiczne pisanie kaczką.
- oferuje dobrze skonfigurowane IDE i dobre wsparcie dla frameworka BDD.
- Obsługa wiersza poleceń Rich jest pomocna przy ręcznym sprawdzaniu.
- prosta i dobra struktura, modułowość, bogaty zestaw narzędzi i pakiety mogą być przydatne do rozwoju skali.
Q # 2) jak skonstruować Test Pythona?
odpowiedź: zanim utworzysz test w Pythonie, powinieneś rozważyć dwie rzeczy, jak podano poniżej.
- który moduł/część systemu chcesz przetestować?
- jaki rodzaj testów wybierasz (czy test jednostkowy, czy integracyjny)?
ogólna struktura testu Pythona jest tak prosta jak inne, gdzie decydujemy o składowych testów, takich jak – inputs, kod testowy do wykonania, wyjście i porównanie wyjścia z oczekiwanymi wynikami.
Q # 3) które narzędzie automatyzacji jest napisane w Pythonie?
odpowiedź: Buildout jest narzędziem automatyzacji, które jest napisane w Pythonie i rozszerzone i służy do automatyzacji montażu oprogramowania. Buildout może być stosowany na wszystkich etapach oprogramowania, od opracowania do wdrożenia.
To narzędzie opiera się na 3 podstawowych zasadach:
- Powtarzalność: stwierdza, że konfiguracja projektu opracowana w tym samym środowisku powinna dać ten sam wynik niezależnie od ich historii.
- Componentization: usługa oprogramowania powinna zawierać narzędzia do samodzielnego monitorowania i powinna konfigurować system monitorowania podczas wdrażania produktu.
- Automatyzacja: wdrażanie oprogramowania powinno być wysoce zautomatyzowane i oszczędzać czas.
Q # 4) Czy Python może być używany z Selenium?
odpowiedź: Tak. Język Python jest używany z Selenium do przeprowadzania testów. Python API jest pomocny w łączeniu się z przeglądarką przez Selenium. Kombinacja Pythona Selenium może być używana do pisania testów funkcjonalnych / akceptacyjnych przy użyciu Selenium WebDriver.
Q # 5) czy selen z Pythonem jest dobry?
odpowiedź: istnieje kilka powodów, dla których Selenium i Python są uważane za dobre połączenie:
- Selenium ma najsilniejszy zestaw narzędzi do obsługi szybkiej automatyzacji testów.
- Selenium oferuje dedykowane funkcje testowe do wykonywania testów aplikacji internetowych, które pomagają zbadać prawdziwe zachowanie aplikacji.
- natomiast Python jest wysokopoziomowym, obiektowym i przyjaznym dla użytkownika językiem skryptowym z prostą strukturą słów kluczowych.
teraz, jeśli chodzi o używanie Selenium z Pythonem, ma to kilka zalet, jak podano poniżej.
- łatwy do kodowania i czytania.
- Python API jest niezwykle przydatne, aby połączyć cię z przeglądarką przez Selenium.
- Selenium wysyła standardowe polecenia Pythona do różnych przeglądarek, niezależnie od jego odmiany projektowej.
- Python jest stosunkowo prosty i kompaktowy niż inne języki programowania.
- Python ma dużą społeczność, aby wspierać tych, którzy są zupełnie nowi w używaniu Selenium z Pythonem do przeprowadzania testów automatyzacji.
- jest to wolny i otwarty język programowania przez cały czas.
- Selenium WebDriver jest kolejnym silnym powodem używania Selenium z Pythonem. Selenium WebDriver ma silne wsparcie dla łatwego interfejsu użytkownika Pythona.
Q #6) Jakie są środki, aby wybrać najlepszy Framework do testowania Pythona?
Odpowiedz: Przy wyborze najlepszego frameworka testowego Pythona należy wziąć pod uwagę poniższe punkty:
- Jeśli jakość i struktura skryptów spełnia Twoje cele. Skrypt programistyczny powinien być łatwy do zrozumienia/utrzymania i wolny od wad.
- struktura programowania Pythona odgrywa ważną rolę w wyborze frameworka testowego, na który składają się – atrybuty, instrukcje, funkcje, operatory, moduły i standardowe pliki bibliotek.
- jak łatwo można generować testy i w jakim zakresie można je ponownie wykorzystać?
- metoda przyjęta do wykonywania testów / testów modułu (techniki uruchamiania modułów).
Q # 7) Jak wybrać najlepszy framework do testowania w Pythonie?
odpowiedź: zrozumienie zalet i ograniczeń każdego frameworka jest lepszym sposobem na wybranie najlepszego frameworka testowego Pythona. Przyjrzyjmy się –
Robot Framework:
zalety:
- podejście testowe oparte na słowach kluczowych pomaga w łatwiejszym tworzeniu czytelnych przypadków testowych.
- wiele interfejsów API
- łatwa składnia danych testowych
- obsługuje równoległe testowanie za pomocą siatki Selenium.
:
- Tworzenie niestandardowych raportów HTML jest dość trudne z robotem.
- mniejsze wsparcie dla równoległych testów.
- wymaga Pythona 2.7.14 i nowszego.
Pytest:
zalety:
- obsługuje compact test suite.
- nie ma potrzeby używania debugera ani jawnego dziennika testów.
- wiele urządzeń
- rozszerzalne wtyczki
- łatwe i proste tworzenie testów.
- możliwość tworzenia przypadków testowych z mniejszą liczbą błędów.
Ograniczenia:
- nie jest kompatybilny z innymi frameworkami.
Unittest:
zalety:
- nie ma potrzeby stosowania dodatkowego modułu.
- łatwy do nauki dla testerów na poziomie początkującym.
- proste i łatwe wykonanie testu.
- szybkie generowanie raportu z testu.
Ograniczenia
- snake_case nazewnictwo Pythona i camelCase nazewnictwo Junita powodują trochę zamieszania.
- niejasna intencja kodu testowego.
- wymaga ogromnej ilości kodu boilerplate.
Doctest:
zalety:
- dobra opcja do wykonywania małych testów.
- dokumentacja testowa w ramach metody zawiera również dodatkowe informacje na temat działania metody.
Ograniczenia
- porównuje tylko wydrukowane wyjście. Każda zmiana wyjścia spowoduje niepowodzenie testu.
nos 2:
zalety:
- nos 2 obsługuje więcej konfiguracji testowej niż unittest.
- zawiera pokaźny zestaw aktywnych wtyczek.
- różni się API od unittest, które dostarcza więcej informacji o błędzie.
:
- instalując wtyczki innych firm musisz zainstalować pakiet setup tool/distribute, ponieważ Nose2 obsługuje Pythona 3, ale nie wtyczki innych firm.
Testuj:
zalety:
- łatwy do zrozumienia i użycia.
- testy jednostkowe, integracyjne i systemowe mogą być łatwo tworzone.
- Komponenty testowe do zarządzania i wielokrotnego użytku.
- dodawanie nowych funkcji do testify jest łatwe.
:
- początkowo Testify został opracowany w celu zastąpienia unittest i Nose, ale proces przechodzenia go do pytest jest włączony, dlatego zaleca się użytkownikom unikanie używania Testify w kilku nadchodzących projektach.
zalety:
- łatwe wykonywanie wszystkich typów przypadków testowych.
- szczegółowe rozumowanie& myślenie
- jasność Wyjścia QA / Dev.
Ograniczenia:
- obsługuje tylko testowanie czarnej skrzynki.
zalety:
- prosty język do tworzenia wielu scenariuszy testowych.
- pomocny w przypadku testów opartych na zachowaniu do testowania czarnych skrzynek.
Ograniczenia:
- wymaga silnej koordynacji pomiędzy programistami, testerami& interesariuszami.
Możesz wybrać najbardziej odpowiedni Framework testowania Pythona, biorąc pod uwagę powyższe zalety i ograniczenia, które pomogą opracować kryteria odpowiednie dla Twoich potrzeb biznesowych.
Q # 8) który framework jest najlepszy dla automatyzacji Pythona?
Odpowiedz: Biorąc pod uwagę zalety i ograniczenia, możemy rozważyć Typ testowania jako jedną z miar wyboru najlepszego frameworka testowania:
- Functional Testing: Robot, PyTest, Unittest
- Behavior-Driven Testing: Behave, Lettuce
Robot jest najlepszym frameworkiem dla tych, którzy dopiero zaczynają testowanie w Pythonie i chcą zacząć od zera.
podsumowanie
podjednostka, Trial, zasoby testowe, Sancho, Testtools to kolejne nazwy dodane do listy Python Testing Framework. Istnieje jednak tylko kilka narzędzi, które zostały spopularyzowane, ponieważ testowanie w Pythonie jest stosunkowo nową koncepcją wprowadzoną do świata testowania.
firmy pracują nad ulepszeniem tych narzędzi, aby były łatwe do zrozumienia i przeprowadzania testów. Dzięki bogatym i precyzyjnym oprawom klas, wtyczkom i pakietom narzędzia te mogą stać się dobrze zorientowane i preferowane do testowania w Pythonie.
tymczasem wspomniane powyżej frameworki unittest to test zapewniają bardzo niezbędne wsparcie i serwis, aby osiągnąć zamierzoną wydajność systemu.