top 6 best python testing frameworks
Ta vadnica pojasnjuje, kako je mogoče Python uporabiti za preizkušanje programov, in našteva funkcije in primerjavo najboljših okvirov za testiranje Pythona:
Z razširjeno uporabo umetne inteligence je Python postal priljubljen programski jezik.
Ta vadnica bo zajela, kako se Python lahko uporablja za preizkušanje programov, skupaj z nekaterimi okviri za testiranje, ki temeljijo na Pythonu.
Začnimo!!
=> Tukaj preverite VSE vaje za Python.
Kaj se boste naučili:
Kaj je Python?
V skladu s tradicionalno definicijo je Python interpretiran splošen programski jezik na visoki ravni, ki programerjem pomaga pri pisanju obvladljive in logične kode za majhne in obsežne projekte.
Nekatere prednosti Pythona so:
- Nobena kompilacija ne povzroči hitrega izvajanja cikla Edit-Test-Debug.
- Enostavno odpravljanje napak
- Obsežna knjižnica podpore
- Preprosta za učenje podatkovne strukture
- Visoka produktivnost
- Skupinsko sodelovanje
Delo v Pythonu
- Tolmač prebere kodo python iz izvorne datoteke in jo preveri, ali obstaja sintaksna napaka.
- Če je koda brez napak, jo pretvornik pretvori v enakovredno 'bajtno kodo'.
- Ta bajtna koda se nato prenese na navidezni stroj Python (PVM), kjer se bajtna koda znova prevede zaradi morebitne napake.
Kaj je testiranje Pythona?
- Avtomatizirano testiranje je v svetu testiranja dobro poznano ozadje. Tu se načrti preizkusa izvajajo s skriptom namesto s človekom.
- Python je opremljen z orodji in knjižnicami, ki podpirajo avtomatizirano testiranje vašega sistema.
- Testne primere Python je razmeroma enostavno napisati. Z večjo uporabo Pythona postajajo priljubljeni tudi okviri za avtomatizacijo preskusov, ki temeljijo na Pythonu.
Seznam ogrodja za testiranje Pythona
Spodaj je navedenih nekaj okvirov za testiranje Python, ki bi jih morali poznati.
- Robot
- PyTest
- Unittest
- DocTest
- Nos2
- Pričajte
Primerjava orodij za testiranje Pythona
Hitro strnimo te okvire v kratko primerjalno tabelo:
Licenca | Del | Kategorija | Kategorija Posebnost | |
---|---|---|---|---|
pytest.warns () | pričakovano_ opozorilo: pričakovanje [, ujemanje] | Uveljavitev opozorila s funkcijami | ||
Robot | Brezplačna programska oprema (Licenca ASF} | Python generične testne knjižnice. | Preskus sprejemljivosti | Pristop testiranja na podlagi ključnih besed. |
PyTest | Brezplačna programska oprema (licenca MIT) | Samostojen, omogoča kompaktne testne apartmaje. | Enotno preskušanje | Posebna in enostavna pritrdilna naprava za lažje testiranje. |
unittest | Brezplačna programska oprema (licenca MIT) | Del standardne knjižnice Python. | Enotno preskušanje | Hitro zbiranje testov in prilagodljivo izvajanje preizkusov. |
DocTest | Brezplačna programska oprema (licenca MIT) | Del standardne knjižnice Python. | Enotno preskušanje | Python Interaktivna lupina za ukazni poziv in vključujočo aplikacijo. |
Nos2 | Brezplačna programska oprema (Licenca BSD) | Vsebuje funkcije unittest z dodatno funkcijo in vtičniki. | razširitev unittest | Veliko število vtičnikov. |
Pričajte | Brezplačna programska oprema (Licenca ASF) | Ponuja funkcije unittest in nos z dodatno funkcijo in vtičniki. | razširitev unittest | Izboljšava testnega odkritja. |
(Okrajšave: MIT = Massachusetts Institute of Technology (1980), BSD = Berkeley Software Distribution (1988), ASF = Apache Software Foundation (2004) )
Začnimo!!
# 1) Robot
- Najbolj priljubljen Robot Framework je odprtokodni okvir za avtomatizacijo, ki temelji na Pythonu.
- Ta okvir je v celoti razvit v Pythonu in se uporablja za Preskus sprejemljivosti in T usmerjen razvoj. Slog ključnih besed se uporablja za pisanje testnih primerov v okolju Robot.
- Robot je sposoben zagnati Javo in .Net, podpira pa tudi testiranje avtomatizacije na različnih platformah, kot so Windows, Mac OS in Linux za namizne aplikacije, mobilne aplikacije, spletne aplikacije itd.
- Poleg preizkusa sprejemljivosti se Robot uporablja tudi za avtomatizacijo robotskih procesov (RPA).
- Pip (Package Installer za Python) je zelo priporočljiv za namestitev Robota.
- Uporaba tabelarne sintakse podatkov, testiranje na podlagi ključnih besed, bogate knjižnice in nabor orodij ter vzporedno testiranje so nekatere od močnih lastnosti Robota, zaradi katerega je priljubljen med preizkuševalci.
Primer:
*** 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
Tu je vzorec Neuspešno izvajanje preizkusa.
Tu je vzorec Uspešna izvedba testa.
Paketi / metode:
Ime paketa | Delo | Uvoz paketov |
---|---|---|
teči () | Za izvajanje testov. | iz teka uvoza robota |
run_cli () | Za zagon testov z argumentom ukazne vrstice. | iz uvoza robota run_cli |
bounce () | Za obdelavo testnega izhoda. | iz robota za uvoz robotov |
Povezava do API: Uporabniški priročnik za Robot Framework
Povezava za prenos: Robot
# 2) PyTest
- PyTest je odprtokodni testni okvir, ki temelji na Pythonu in je na splošno večnamenski, še posebej za Testiranje funkcij in API-jev.
- Pip Za namestitev PyTesta je potreben (Package Installer za Python).
- Podpira preprosto ali zapleteno besedilno kodo za preizkušanje API-jev, baz podatkov in uporabniških vmesnikov.
- Preprosta sintaksa je koristna za enostavno izvajanje preizkusa.
- Bogati vtičniki in lahko vzporedno izvaja teste.
- Lahko zažene katero koli določeno podskupino testov.
Primer:
import pytest //Import unittest module// def test_file1_method(): //Function inside class// x=5 y=6 assert x+1 == y,'test failed'
Za zagon testa uporabite py.test ukaz.
Posnetek zaslona za referenco:
[slika vir ]
Paketi / metode:
Funkcija | Parametri | Delo |
---|---|---|
pytest.approx () | pričakovano, rel = Brez, abs = nič, nan_ok = Napačno | Trdimo, da sta dve številki ali dve nabori števil so približno enako nekaterim razlikam. |
pytest.fail () | sporočilo (str) pytrace (bool) | Če izvedbeni test izrecno ne uspe, se prikaže sporočilo. |
pytest.skip () | allow_module_level (bool) | Preskočite izvedbeni test s prikazanim sporočilom. |
pytest.exit () | sporočilo (str) povratna koda (int) | Izhodni postopek testiranja. |
pytest.main () | args = Brez vtičniki = Noben | Vrnite izhodno kodo, ko je končano izvajanje preizkusa med postopkom. |
pytest.raises () | pričakovana_izjema: pričakovanje [, ujemanje] | Trdite, da klic blokade kode sproži pričakovano_izjemo ali da povzroči izjemo napake |
Če želite dostopati do testa, napisanega v določeni datoteki, uporabimo spodnji ukaz.
py.test
Pytest Fixture: Pytest Fixture se uporablja za zagon kode pred izvajanjem preskusne metode, da se prepreči ponavljanje kode. To se v bistvu uporablja za inicializacijo povezave z bazo podatkov.
Opremo PyTest lahko določite, kot je prikazano spodaj.
@pytest.fixture
Trditev: Trditev je pogoj, ki vrne true ali false. Izvajanje preizkusa se ustavi, ko trditev ne uspe.
Spodaj je primer:
def test_string_equal(): assert double(55) == 62 assert 25 == 62 + where 25 = double(55)
Povezava do API: API Pytest
Povezava za prenos: Pytest
# 3) Unittest
- Unittest je prvi, ki temelji na Pythonu avtomatiziran okvir za preskušanje enot ki je bil zasnovan za delo s standardno knjižnico Python.
- Podpira ponovno uporabo testnih oblek in organizacijo preskusov.
- Navdihnil ga je JUnit in podpira avtomatizacijo testov, vključno z zbirkami testov, neodvisnostjo testa, kodo za nastavitve testov itd.
- Imenuje se tudi kot PyUnit.
- Unittest2 je ozadje dodatnih novih funkcij, dodanih Unittestu.
Standardni potek dela Unittest:
- Uvozi modul Unittest v programsko kodo.
- Lahko določite svoj razred.
- Ustvarite funkcije znotraj razreda, ki ste ga definirali.
- Na dno kode postavite unittest.main (), ki je glavna metoda za zagon preizkusnega primera.
Primer:
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//
Posnetek zaslona za referenco:
[slika vir ]
Paketi / metode:
Metoda | Delo |
---|---|
addTest () | V testni paket dodajte preskusno metodo. |
nastaviti() | Poklican pred izvajanjem testne metode za pripravo testne namestitve. |
tearDown () | Pokliče se po izvedbi preskusne metode, tudi če test vrne izjemo. |
setUpClass () | Poklican po preizkusih v posameznem razredu. |
tearDownClass () | Poklican po preizkusih v posameznem razredu. |
teči () | Zaženite test z rezultati. |
odpravljanje napak () | Zaženite test brez rezultata. |
Odkrijte () | Poišče vse testne module v podimenikih iz določenega imenika. |
assertEqual (a, b) | Za preizkus enakosti dveh predmetov. |
asserTrue / assertFalse (stanje) | Za preizkus logičnega stanja. |
( Opomba: unittest.mock () je knjižnica za testiranje Pythona, ki omogoča zamenjavo sistemskih delov z lažnimi predmeti. Jedro lažni razred pomaga enostavno ustvariti testni paket.)
Povezava do API: Unittest API
Povezava za prenos: Unittest
# 4) DocTest
- Doctest je modul, ki je vključen v standardno distribucijo Pythona in se zanj uporablja Preizkušanje enote bele škatle.
- Išče interaktivne seje python, da preveri, ali delujejo natanko tako, kot je zahtevano.
- Uporablja selektivne zmožnosti Pythona, kot so docstrings, interaktivna lupina Python in introspekcija Pythona (določanje lastnosti predmetov med izvajanjem).
- Osnovne funkcije:
- Posodabljanje dokumentacije
- Izvajanje regresijskega testiranja
- Funkciji testfile () in testmod () se uporabljata za zagotavljanje osnovnega vmesnika.
Primer:
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
Posnetek zaslona za referenco:
[slika vir ]
Paketi / funkcije :
Funkcija | Parametri | |
---|---|---|
nos.orodja.intest | (func) | Metoda ali funkcija se lahko imenuje test. |
doctest.testfile () | ime datoteke (obvezno) [, relativni_modul] [, ime] [, paket] [, globusi] [, podrobno] [, poročilo] [, opcijske oznake] [, extraglobs] [, povzetek_na_napake] [, razčlenjevalnik] [, kodiranje] | |
doctest.testmod () | m] [, ime] [, globusi] [, podrobno] [, poročilo] [, opcijske oznake] [, ekstraglobi] [, dvigni_na_greško] [, exclude_empty] | |
doctest.DocFileSuite () | * poti, [module_relative] [, paket] [, setUp] [, tearDown] [, globs] [, optionflags] [, parser] [, kodiranje] | |
doctest.DocTestSuite () | [modul] [, globusi] [, ekstragloblji] [, test_finder] [, setUp] [, tearDown] [, checker] |
Opomba: Za preverjanje interaktivnih primerov v besedilni datoteki lahko uporabimo funkcijo testfile ();
doctest.testfile (“example.txt”)
Preizkus lahko neposredno zaženete iz ukazne vrstice z;
python factorial.py
Povezava do API: API DocTest
Povezava za prenos: Doctest
# 5) Nos2
- Nose2 je naslednik Nosa in temelji na Pythonu Enota za preskušanje enot ki lahko zažene Doctests in UnitTests.
- Nose2 temelji na unittest zato se imenuje podaljša unittest ali unittest z vtičnikom, ki je bil zasnovan za poenostavitev in enostavnost testiranja.
- Nose uporablja skupinske teste iz unittest.testcase in podpira več funkcij za pisanje testov in izjem.
- Nose podpira namestitev paketov, razrede, module in zapleteno inicializacijo, ki jih je treba določiti hkrati, namesto da bi pogosto pisali.
Primer:
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()
Posnetek zaslona za referenco:
Paketi / metode:
Metoda | Parametri | Delo |
---|---|---|
nose.tools.ok_ | (izraz, sporočilo = nič) | Bližnjica do uveljavljanja. |
nose.tools.ok_ | (a, b, msg = Brez) | Bližnjica do 'uveljavi a == b, '% R! =% R'% (a, b) |
nose.tools.make_decorator | (func) | Za kopiranje metapodatkov za dano funkcijo. |
nos.orodja.dvigne | (* izjema) | Da bi vrgli eno od pričakovanih izjem. |
nos.orodja.čas | (meja) | Če želite določiti časovni rok, v katerem mora preizkus preiti. |
nose.tools.with_setup | (namestitev = Brez, odstranitev = Brez) | Če želite testni funkciji dodati način nastavitve. |
nos.orodja.ne preizkus | (func) | Metode ali funkcije ni mogoče označiti kot test. |
Povezava do API: Vtičniki za Nose2
Povezava za prenos: Nos2
# 6) Pričajte
- Testify je bil zasnovan tako, da nadomešča unittest in nos. Testify ima naprednejše funkcije kot unittest.
- Testify je priljubljen kot izvedba semantičnega testiranja na Javi (enostavna za učenje in izvajanje specifikacij za testiranje programske opreme).
- Nastopajo Avtomatizirana enota, integracija in testiranje sistema je lažje pričevati.
Lastnosti
- Preprosta sintaksa vpenjalne metode.
- Improvizirano testno odkritje.
- Nastavitev na nivoju razreda in metoda razbitja.
- Razširljiv sistem vtičnikov.
- Enostaven za uporabo pripomočkov za testiranje.
Primer:
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()
Posnetek zaslona za referenco:
[slika vir ]
Paketi / metode:
Ime paketa | Delo | Uvoz paketov |
---|---|---|
trditi | Ponuja celovita orodja za testiranje sistema. | uvoz 'github.com/stretchr/testify/assert' |
posmeh | Uporabno za preizkušanje predmetov in klicev. | uvoz 'github.com/stretchr/testify/mock' |
zahtevajo | Deluje enako kot uveljavljanje, vendar ustavi izvajanje preizkusa, kadar testi ne uspejo. | uvoz 'github.com/stretchr/testify/require' |
po | Zagotavlja logiko za ustvarjanje strukture in metod preskusne zbirke. | uvoz 'github.com/stretchr/testify/suite' |
Povezava do API: Datoteke paketov Testify
Povezava za prenos: Pričajte
Dodatni okvir za testiranje Pythona
Do zdaj smo pregledali najbolj priljubljeno ogrodje za testiranje Pythona. Malo jih je več imen na tem seznamu, ki bi lahko postala priljubljena v prihodnosti.
# 7) Vedite
- Obnašanje se imenuje BDD (vedenjsko usmerjen razvoj) testni okvir, ki se uporablja tudi za Testiranje črne škatle . Behave uporablja naravni jezik za pisanje testov in deluje z Unicode Strings.
- Behave imenik vsebuje funkcijske datoteke ki imajo navadno besedilno obliko, je videti kot naravni jezik in Izvedbe korakov Python .
Povezava do API: Obnašajte se uporabniški priročnik
Povezava za prenos: Obnašaj se
# 8) Solata
- Solata je koristna za Testiranje razvoja, ki temelji na vedenju . Omogoča postopek testiranja enostaven in razširljiv.
- Solata vključuje korake, kot so:
- Opis vedenja
- Opredelitev korakov v Pythonu.
- Zagon kode
- Spreminjanje kode za uspešno preizkušanje.
- Izvajanje spremenjene kode.
- Tem korakom sledimo 3 - 4 krat, da programska oprema brez napak in s tem izboljša njeno kakovost.
Povezava do API: Dokumentacija solate
Povezava za prenos: Solata
Pogosta vprašanja in odgovori
Oglejmo si nekaj najpogostejših pogostih vprašanj o tej temi -
V # 1) Zakaj se Python uporablja za avtomatizacijo?
Odgovor: Ker »Python prihaja z orodji in knjižnicami, ki podpirajo samodejno testiranje vašega sistema«, obstaja še več razlogov, zakaj se Python uporablja za testiranje.
- Python je objektno usmerjen in funkcionalen, kar programerjem omogoča, da ugotovijo, ali sta funkcija in razredi primerni glede na zahteve.
- Python ponuja bogato knjižnico uporabnih paketov za testiranje po namestitvi programa ‘Pip’.
- Funkcije brez državljanstva in preprosta sintaksa so koristne za ustvarjanje berljivih testov.
- Python igra vlogo mostu med testnim primerom in testno kodo.
- Python podpira dinamično tipkanje rac.
- Ponuja dobro konfiguriran IDE in dobro podporo okolju BDD.
- Bogata podpora ukazni vrstici je koristna za ročno preverjanje.
- Preprosta in dobra struktura, modularnost, bogat nabor orodij in paketi so lahko koristni za razvoj obsega.
V # 2) Kako strukturirati test Python?
Odgovor: Ko ustvarite test v Pythonu, morate upoštevati dve stvari, kot je navedeno spodaj.
- Kateri modul / del sistema želite preizkusiti?
- Za katero vrsto preskušanja se odločite (bodisi za enotno ali integracijsko preskušanje)?
Celotna struktura testa Python je tako preprosta kot pri drugih, kjer se odločimo za komponente testov, kot so - vhodi, testna koda, ki jo je treba izvesti, izhod in primerjava rezultatov s pričakovanimi rezultati.
V # 3) Katero orodje za avtomatizacijo je napisano v Pythonu?
Odgovor: Gradnja je orodje za avtomatizacijo, ki je zapisano in razširjeno s Pythonom in se uporablja za avtomatizacijo sestavljanja programske opreme. Gradnja je lahko uporabna za vse faze programske opreme, vse od razvoja do uvajanja.
To orodje temelji na treh temeljnih načelih:
- Ponovljivost: Navaja, da bi morale konfiguracije projektov, razvite v istem okolju, dati enak rezultat, ne glede na njihovo zgodovino.
- Komponentizacija: Storitev programske opreme mora vključevati orodja za samonadzor in konfigurirati nadzorni sistem med uvajanjem izdelka.
- Avtomatizacija: Uvajanje programske opreme mora biti zelo avtomatizirano in prihraniti čas.
V # 4) Ali se Python lahko uporablja s selenom?
Odgovor: Da. Python jezik se uporablja s selenijem za izvajanje testiranja. API Python je koristen za povezavo z brskalnikom prek selena. Kombinacijo Python Selenium lahko uporabimo za pisanje funkcionalnih / sprejemnih testov s pomočjo Selenium WebDriver.
V # 5) Ali je selen s Pythonom dober?
Odgovor: Razlogov, zakaj se selena in pythona štejeta za dobro kombinacijo, je več:
- Selen ima najmočnejši nabor orodij za podporo hitre avtomatizacije preskusov.
- Selenium ponuja namenske preizkusne funkcije za testiranje spletnih aplikacij, ki pomagajo preučiti resnično vedenje aplikacij.
- Medtem ko je Python na visoki ravni objektno zasnovan in uporabniku prijazen skriptni jezik s preprosto strukturo ključnih besed.
Zdaj, ko gre za uporabo selena s Pythonom, ima več prednosti, kot je navedeno spodaj.
- Enostavno kodiranje in branje.
- API Python je zelo koristen za povezavo z brskalnikom prek selena.
- Selenium pošlje standardni ukaz Pythona različnim brskalnikom, ne glede na njegove različice zasnove.
- Python je sorazmerno preprost in kompakten kot drugi programski jeziki.
- Python prihaja z veliko skupnostjo, ki podpira tiste, ki so popolnoma novi pri uporabi selena s Pythonom za izvajanje preizkusov avtomatizacije.
- Ves čas je brezplačen in odprt programski jezik.
- Selenium WebDriver je še en močan razlog za uporabo selena s Pythonom. Selenium WebDriver ima močno podporo za vezavo preprostega uporabniškega vmesnika Pythona.
V # 6) Kateri so ukrepi za izbiro najboljšega okvira za testiranje Pythona?
Odgovor: Pri izbiri najboljšega okvira za testiranje Pythona je treba upoštevati naslednje točke:
- Če kakovost in struktura skript izpolnjuje vaše namene. Programski skript mora biti enostaven za razumevanje / vzdrževanje in brez napak.
- Programska struktura Pythona igra pomembno vlogo pri izbiri okvira za testiranje, ki je sestavljen iz atributov, stavkov, funkcij, operatorjev, modulov in standardnih knjižničnih datotek.
- Kako enostavno lahko generirate teste in v kolikšni meri jih je mogoče ponovno uporabiti?
- Metoda, sprejeta za izvajanje testa / testnega modula (tehnike izvajanja modula).
V # 7) Kako izbrati najboljši okvir za testiranje Pythona?
Odgovor: Razumevanje prednosti in omejitev vsakega ogrodja je boljši način za izbiro najboljšega ogrodja za testiranje Pythona. Naj raziščemo -
Robotski okvir:
Prednosti:
- Preskusni pristop na podlagi ključnih besed pomaga lažje ustvariti berljive testne primere.
- Več API-jev
- Enostavna sintaksa podatkov o preskusu
- Podpira vzporedno testiranje prek mreže Selenium.
Omejitve:
- Ustvarjanje prilagojenih poročil HTML je z Robotom precej zapleteno.
- Manj podpore vzporednemu testiranju.
- Zahteva Python 2.7.14 in novejše.
Pytest:
Prednosti:
- Podpira kompaktni testni paket.
- Ni potreben razhroščevalnik ali kakršen koli izrecni testni dnevnik.
- Več napeljav
- Razširljivi vtičniki
- Enostavno in preprosto ustvarjanje testa.
- Možno je ustvariti testne primere z manj napakami.
Omejitve:
- Ni združljivo z drugimi ogrodji.
Unittest:
Prednosti:
- Ni potrebe po dodatnem modulu.
- Preprosto se ga lahko naučijo preizkuševalci na začetni ravni.
- Enostavno in enostavno izvajanje testa.
- Hitra generacija poročila o preskusu.
Omejitve
- snake_case poimenovanje Python in camel Primer poimenovanja JUnit povzroča nekaj zmede.
- Nejasna namera testne kode.
- Zahteva ogromno kode vzorca.
Doctest:
Prednosti:
- Dobra možnost za izvajanje majhnih testov.
- Testna dokumentacija znotraj metode vsebuje tudi dodatne informacije o tem, kako metoda deluje.
Omejitve
- Primerja le natisnjeni izhod. Vsaka sprememba izhoda bo povzročila neuspeh preskusa.
Nos 2:
Prednosti:
najboljši prost mov v mp4 pretvornik -
- Nose 2 podpira več testnih konfiguracij kot unittest.
- Vključuje obsežen nabor aktivnih vtičnikov.
- Drugačen API od unittest, ki vsebuje več informacij o napaki.
Omejitve:
- Med nameščanjem vtičnikov drugih proizvajalcev morate namestiti orodje za namestitev / distribucijo paketa, saj Nose2 podpira Python 3, ne pa tudi vtičnikov drugih proizvajalcev.
Pričajte:
Prednosti:
- Enostaven za razumevanje in uporabo.
- Enostavne, integracijske in sistemske teste je mogoče enostavno ustvariti.
- Upravljive in ponovne testne komponente.
- Dodajanje novih funkcij v Testify je enostavno.
Omejitve:
- Sprva je bil Testify razvit za zamenjavo unittest in Nose, vendar je postopek prehoda na pytest vklopljen, zato je priporočljivo, da se uporabniki izogibajo uporabi Testify za nekaj prihajajočih projektov.
Behave Framework:
Prednosti:
- Enostavna izvedba vseh vrst testnih primerov.
- Podrobno razmišljanje in razmišljanje
- Jasnost izhoda QA / Dev.
Omejitve:
- Podpira samo testiranje črne škatle.
Okvir solate:
Prednosti:
- Preprost jezik za ustvarjanje več testnih scenarijev.
- Koristno za vedenjske testne primere za testiranje črne skrinjice.
Omejitve:
- Močno potrebuje močno usklajevanje med razvijalci, preizkuševalci in zainteresiranimi stranmi.
Upoštevate zgornje prednosti in omejitve, ki bodo pomagale razviti merila, ki ustrezajo vašim poslovnim potrebam, in izberete najustreznejši okvir za testiranje Pythona.
V # 8) Kateri okvir je najboljši za Python Automation?
Odgovor: Ob upoštevanju prednosti in omejitev lahko vrsto preskušanja obravnavamo kot enega od ukrepov za izbiro najboljšega okvira za testiranje:
- Funkcionalno preskušanje: Robot, PyTest, Unittest
- Testiranje na podlagi vedenja: Obnašaj se, zelena solata
Robot je najboljši okvir za tiste, ki testiranje Pythona šele poznajo in bi radi začeli trdno.
Zaključek
Subunit, Trial, Test resources, Sancho, Testtools je še nekaj imen, dodanih na seznam Python Testing Framework. Vendar pa je le nekaj orodij, ki so bila popularizirana do zdaj, saj je testiranje Python sorazmerno nov koncept, ki je predstavljen v svetu testiranja.
Podjetja si prizadevajo za izboljšanje teh orodij, tako da jih je lažje razumeti in opraviti testiranje. Z bogatimi in natančnimi učilnicami vtičnikov, vtičnikov in paketov lahko ta orodja postanejo dobro podkovana in zaželena za izvajanje preizkušanja Python.
Medtem zgoraj omenjeni okviri od unittest do Testify zagotavljajo prepotrebno podporo in storitve za dosego predvidene zmogljivosti sistema.
= >> Kontaktiraj nas da predlagam seznam tukaj.Priporočeno branje
- Uvod in postopek namestitve Pythona
- Vadnica za Python za začetnike (praktično BREZPLAČNO usposabljanje za Python)
- 30+ najboljših vaj za selen: Naučite se selen z resničnimi primeri
- Kaj je testiranje avtomatizacije (Ultimate Guide to Start Test Automation)
- Razlike med preskušanjem enot, preskušanjem integracije in funkcionalnim preskušanjem
- 10 najbolj priljubljenih orodij za avtomatizacijo robotskih procesov v letu 2021
- 25 najboljših okvirov in orodij za testiranje Java (3. del)
- 8 orodij za razvoj najboljših vedenj (BDD) in okviri za testiranje