Zaradi preprostosti je Python eden najboljših programskih jezikov za pisanje avtomatiziranih testov. Jezik ponuja nekaj ogrodij za testiranje programske opreme, ki vam pomagajo pri učinkovitejšem testiranju.
Ne glede na to, ali vas čaka celovit preizkus, testiranje obremenitve in stresa ali več, so to najboljši okviri za testiranje programske opreme, ki temeljijo na Pythonu.
1. Pytest
Pytest je preprosto ogrodje za testiranje, napisano v Pythonu in za Python. Zakaj bi ga morali uporabiti za testiranje? Ima enostavno učno krivuljo in je ogrodje za uporabo enot in integracijsko testiranje. Podpira tudi dedovanje razreda iz testa enote.
Ena od prednosti ogrodja je, da zagotavlja čistejši in krajši način pisanja testov v Pythonu. Na primer, preverjanje izhodne kode je tako preprosto kot klicanje trditi ključna beseda. Če želite izvajati več testov hkrati, Pytest prihrani čas s svojo funkcijo brezglavega vzporednega testiranja.
Pytest podpira tudi izvajanje testnih zbirk v ukazni vrstici. To je tako preprosto kot zagon
ukaz pytest iz terminala testne mape. Ni vam treba skrbeti za testne datoteke, saj jih okvir samodejno zazna.Vendar pa ukaz deluje tudi z deklaracijo datoteke. Pytest lahko pokličete tudi z imenom datoteke:
pytestpatter_tests.py
Zagon testne datoteke s Pytestom ustvari človeku prijazen rezultat, ki sledi testnim korakom in vam pove, kje je napaka:
2. Dramatik
Ogrodje dramatika je Microsoftova ponudba skupnosti za testiranje programske opreme. Medtem ko številna ogrodja izvajajo brezglavo testiranje, Playright podpira tako brezglavi način kot način brezglavja. Je eno najboljših ogrodij za testiranje uporabniškega vmesnika s podporo za brskalnike Firefox in Chromium, kot sta Edge in Chrome.
Po funkcijah je Playwright blizu Seleniumu. Ujema se s slednjim za vzporedno testiranje in orodja za orkestracijo v oblaku. Vendar premaga Selenium s svojo funkcijo testiranja API-jev. Playwrightovo vzporedno testiranje pa je lahko zapleteno, saj njegova zanka dogodkov privzeto izvaja samo zmožnost posameznega preizkusa. Vendar se lahko s tem znajdete primerna uporaba zank Python.
Če želite iti brez kode, lahko uporabite Playwright's codegen za dinamično pisanje testne kode. Med vašo interakcijo z DOM ustvari testno datoteko, specifično za jezik. Njegov generator izbirnikov vam prav tako omogoča preprosto izbiro spletnih elementov tako, da le premaknete miškin kazalec nadnje brez muke pri pregledovanju DOM.
Igralec ima privzeto samodejno čakanje. Tako se začasno ustavi, da se DOM naloži, preden zažene testne primere. V času pisanja ogrodje dramaturgov podpira JavaScript, TypeScript, Java in .NET poleg Pythona.
3. Selen
Selenium je eno najpogosteje uporabljenih ogrodij za avtomatizirano testiranje z dobro podporo skupnosti. Za razliko od Playwrighta ne ponuja možnosti testiranja API-ja. Torej ni okvir za preizkušanje zaledne logike. Zagotavlja pa gonilnike brskalnika Chromium in ne-Chromium za oceno in potrditev uporabniškega vmesnika.
Ogrodje ima več podpore za programski jezik in je bolj vsestransko pri splošni spletni avtomatizaciji. Sprejema tudi zmogljivost omrežja v oblaku za vzporedno orkestriranje testnih primerov. Zato je odlična izbira za testiranje med brskalniki in platformami.
Selenium ima vrsto namenskih izbirnikov, ki vam omogočajo interakcijo z uporabniškim vmesnikom kot redni uporabnik. In če potrebujete odmerek trditve o dejanju uporabniškega vmesnika, lahko to podedujete iz razreda unittest. Selenium ima tudi razširitev IDE za Chrome in Firefox. To omogoča testiranje snemanja in predvajanja. Toda za razliko od Playwrightovega codegena ne ustvari testne kode.
4. Robot
Robot je odprtokodno ogrodje za testiranje Python, ki temelji na ključnih besedah. Na splošno omogoča čim lažjo avtomatizacijo testiranja. Medtem ko morate pisati kodo za testne primere v drugih okvirih, je v robotu navadna angleščina. Zato pride prav pri pisanju človeku bolj prijaznih testnih primerov.
Njegova prednost je testiranje sprejemljivosti – da se preveri, ali programska oprema izpolnjuje določena merila. Poleg testiranja vsebuje tudi splošna robotska orodja za avtomatizacijo opravil uporabniškega vmesnika.
Začetek z ogrodjem Robot je enostaven; ustvarite lahko niz nalog, napisanih v preprostem človeškem jeziku. Nato pripravite testne primere za vsakega v ločenih datotekah. Robot ponuja malo funkcij testiranja, vendar jih lahko razširite z drugimi knjižnicami za testiranje. Na primer, lahko ga združite s Selenom, da dodate zmogljivosti brskalnika za testiranje uporabniškega vmesnika.
5. Doctest
Doctest je vgrajena knjižnica za testiranje Python, ki vam omogoča dokumentiranje kode med testiranjem. Je ena najboljših izbir za izvajanje testov enot. Podpira pa tudi testiranje komponent uporabniškega vmesnika. Knjižnica je intuitivna, bere nize dokumentov iz vaše kode in preverja vaš pričakovan rezultat.
Doctest deluje tako, da preveri funkcijo glede na nastavljen izhod. Pojavi napako in vrne pravilno izračunan rezultat samo, če je vaš pričakovani rezultat napačen. Testni rezultat v Doctestu je čist. Če na primer preizkušate več vhodnih podatkov, poda podrobno poročilo o napaki, vključno s tem, kje koda ne uspe.
Delček dokumentiranega testa Doctesta izgleda na primer takole:
deffindFirst(besedilo):
"""
Glede na niz, vrnitev prva abeceda
:param: vrvica
>>> findFirst("Idowu")
U
"""
vrnitevbesedilo[0].zgornji()
če __ime__=="__glavni__":
uvoz doctest
doctest.testmod()
Zgornji dokumentirani preizkus je neuspešen, ker pričakujemo a U, vendar je izračunani rezultat jaz namesto tega:
6. Unittest
Unittest ponuja enega najbolj strukturiranih načinov za pisanje testov enot. Podpira objektno orientirano programiranje privzeto. Testne primere zavije v namenske razrede in jih izvede v zanki dogodkov. S tem v mislih je unittest odlična izbira, če želite svoje teste strukturirati v objektnem modelu strani.
Unittest privzeto ne ponuja testiranja uporabniškega vmesnika. Lahko pa ga združite z drugim preskusnim ogrodjem, kot je Selenium, da dobite več zmogljivosti brskalnika. Prav tako lahko zaženete vzporedne teste z enotnim testom, ko je združen z ogrodji, ki podpirajo omrežje v oblaku. Tako lahko izkoristite njegovo moč pri integraciji in testiranju od konca do konca.
V kombinaciji s Seleniumom lahko na primer preverite pričakovani rezultat glede na rezultat komponente z uporabo podedovane ključne besede assert. Vendar boste za razliko od Pytesta verjetno napisali več kode v unittestu, saj je njegov priklic trditve bolj trdo kodiran.
7. Nos2
Nose2 je po funkcionalnosti tesno povezan s Pytestom. Vendar pa svoje osnovne lastnosti podeduje iz ogrodja unittest. Tako kot Pytest ga lahko uporabite kot preizkusni izvajalec za testne primere, napisane v drugih okvirih, kot sta Selenium ali unittest.
Podpira tako enotno kot integracijsko testiranje. Ne glede na to, ali želite preizkusiti uporabniški vmesnik ali preveriti funkcije svoje kode, Nose2 ponuja vse potrebne pripomočke.
Sprejema tudi parametrizirano testiranje. To vključuje vstavljanje preskusnih parametrov, kot so preskusni brskalniki in platforme, znotraj dekoraterja. Nato lahko dostopate do vsakega parametra v telesu kode. Zaradi tega je Nose2 eden najboljših okvirov za vzporedno izvajanje testov med brskalniki prek omrežij v oblaku.
Preizkusite svoj program in izdajte kakovostno programsko opremo
Testiranje je dobra praksa pri programiranju, ki vam pomaga odkriti in odstraniti napake pred javno objavo. Medtem ko nekateri testni okviri temeljijo predvsem na Pythonu, drugi podpirajo več programskih jezikov.
Čeprav je najbolje, da so testi enot v vašem razvojnem jeziku, so lahko bolj neodvisni od jezika. V skladu s tem lahko uporabite katerega koli od teh testnih okvirov Python.