top 6 best python testing frameworks
Tento výukový program vysvetľuje, ako je možné použiť Python na programovanie testov, a uvádza zoznam funkcií a porovnania najlepších testovacích rámcov Pythonu:
Vďaka rozšírenej aplikácii umelej inteligencie sa Python stal populárnym programovacím jazykom.
V tomto výučbe sa dozvieme, ako možno Python použiť na programovanie testov spolu s niektorými testovacími rámcami založenými na Pythone.
Začnime!!
=> Skontrolujte VŠETKY návody pre Python tu.
najlepšie hodnotený prevodník z youtube na mp3
Čo sa dozviete:
Čo je to Python?
Podľa tradičnej definície je Python interpretovaný všeobecný programovací jazyk na vysokej úrovni, ktorý pomáha programátorom písať zvládnuteľný a logický kód pre malé aj veľké projekty.
Niektoré z výhod Pythonov sú:
- Žiadna kompilácia nespôsobí rýchle vykonanie cyklu Edit-Test-Debug.
- Jednoduché ladenie
- Rozsiahla knižnica podpory
- Ľahko sa učiaca dátová štruktúra
- Vysoká produktivita
- Tímová spolupráca
Práca v Pythone
- Tlmočník načíta kód pythonu zo zdrojového súboru a skúma ho na chybu syntaxe.
- Ak je kód bezchybný, tlmočník prevedie kód na ekvivalentný „bajtový kód“.
- Tento bajtový kód sa potom prenesie do virtuálneho stroja Python (PVM), kde sa bajtový kód znova zostaví pre prípadné chyby.
Čo je to testovanie Pythonu?
- Automatizované testovanie je vo svete testovania všeobecne známym kontextom. Je to miesto, kde sa plány testovania vykonávajú pomocou skriptu namiesto človeka.
- Python je dodávaný s nástrojmi a knižnicami, ktoré podporujú automatizované testovanie vášho systému.
- Testovacie prípady v Pythone sa dajú pomerne ľahko napísať. So zvýšeným používaním Pythonu sa stávajú populárnymi aj rámce automatizácie testov na báze Pythonu.
Zoznam rámcov na testovanie Pythonu
Nižšie je uvedených niekoľko rámcov na testovanie Pythonu, ktoré by ste mali poznať.
- Robot
- PyTest
- Unittest
- DocTest
- Nos2
- Svedčiť
Porovnanie nástrojov na testovanie Pythonu
Poďme si rýchlo zhrnúť tieto rámce v krátkej porovnávacej tabuľke:
Licencia | Časť | Kategória | Kategória Špeciálna vlastnosť | |
---|---|---|---|---|
pytest.warns () | expect_warning: Expectation (, match) | Varovanie sa vkladá spolu s funkciami | ||
Robot ![]() | Slobodný softvér (Licencia ASF} | Generické testovacie knižnice Pythonu. | Kolaudačné skúšky | Prístup k testovaniu na základe kľúčových slov. |
PyTest ![]() | Slobodný softvér (licencia MIT) | Samostatne umožňuje kompaktné testovacie súpravy. | Testovanie jednotiek | Špeciálne a jednoduché zariadenie triedy, ktoré uľahčuje testovanie. |
unittest ![]() | Slobodný softvér (licencia MIT) | Súčasťou štandardnej knižnice Pythonu. | Testovanie jednotiek | Rýchly zber testov a flexibilné vykonávanie testov. |
DocTest ![]() | Slobodný softvér (licencia MIT) | Súčasťou štandardnej knižnice Pythonu. | Testovanie jednotiek | Interaktívne prostredie Python pre príkazový riadok a inkluzívnu aplikáciu. |
Nos2 ![]() | Slobodný softvér (Licencia BSD) | Obsahuje funkcie unittestu s ďalšími funkciami a doplnkami. | unittest rozšírenie | Veľké množstvo doplnkov. |
Svedčiť ![]() | Slobodný softvér (Licencia ASF) | Obsahuje funkcie unittest a nose s ďalšími funkciami a doplnkami. | unittest rozšírenie | Vylepšenie objavovania testov. |
(Skratky: MIT = Massachusettský technologický inštitút (1980), BSD = Berkeley Software Distribution (1988), ASF = Apache Software Foundation (2004) )
Začnime!!
# 1) Robot
- Najobľúbenejším robotickým rámcom je open-source automatizačný testovací rámec založený na Pythone.
- Tento rámec je úplne vyvinutý v Pythone a používa sa pre Prijímacie skúšky a T je riadený vývojom. Štýl kľúčových slov sa používa na písanie testovacích prípadov v rámci Robot.
- Robot je schopný bežať v prostredí Java a .Net a podporuje tiež automatizované testovanie na rôznych platformách, ako sú Windows, Mac OS a Linux, pre desktopové aplikácie, mobilné aplikácie, webové aplikácie atď.
- Spolu s testovaním prijatia sa robot používa aj na robotickú automatizáciu procesov (RPA).
- Pip (Inštalátor balíkov pre Python) sa veľmi odporúča na inštaláciu robota.
- Používanie tabuľkovej syntaxe údajov, testovanie na základe kľúčových slov, bohaté knižnice a sada nástrojov a paralelné testovanie sú niektoré zo silných stránok Robota, vďaka ktorým je medzi testermi obľúbený.
Príklad:
*** 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 ukážka Zlyhanie vykonania testu.
Tu je ukážka Úspešné vykonanie testu.
Balíky / metódy:
Názov balíka | Pracovne | Import balíkov |
---|---|---|
run () | Spustiť testy. | z behu importu robota |
run_cli () | Spustenie testov s argumentom príkazového riadku. | z robota import run_cli |
odskočiť () | Spracovať výstup testu. | z robota importovať robota |
Odkaz na API: Príručka používateľa Robot Framework
Odkaz na stiahnutie: Robot
# 2) PyTest
- PyTest je open-source testovací rámec založený na Pythone, ktorý je všeobecne univerzálny, ale špeciálne pre Funkčné a API testovanie.
- Pip Pre inštaláciu PyTestu je potrebný (Package Installer for Python).
- Podporuje jednoduchý alebo zložitý textový kód na testovanie rozhraní API, databáz a používateľských rozhraní.
- Pre ľahké vykonanie testu je užitočná jednoduchá syntax.
- Bohaté doplnky a je schopný paralelne spúšťať testy.
- Môže spustiť ľubovoľnú konkrétnu podmnožinu testov.
Príklad:
import pytest //Import unittest module// def test_file1_method(): //Function inside class// x=5 y=6 assert x+1 == y,'test failed'
Na vykonanie testu použite py.test príkaz.
Screenshot pre referenciu:
(obrázok zdroj )
Balíky / metódy:
Funkcia | Parametre | Pracovne |
---|---|---|
pytest.info () | očakávaný, rel = žiadne, abs = žiadne, nan_ok = False | Tvrdte, že dve čísla alebo dve množiny čísel sú približne rovná sa niektorým rozdielom. |
pytest.fail () | správa (str) pytrace (bool) | Ak vykonaný test výslovne zlyhá, zobrazí sa správa. |
pytest.skip () | allow_module_level (bool) | Vykonaný test preskočte so zobrazenou správou. |
pytest.exit () | správa (str) návratový kód (int) | Ukončite proces testovania. |
pytest.main () | args = Žiadne pluginy = žiadne | Po ukončení testu v priebehu procesu vráťte kód ukončenia. |
pytest.raises () | expect_exception: Expectation (, match) | Tvrdte, že volanie bloku kódu vyvolá expect_exception, alebo vyvolá výnimku pri zlyhaní |
Ak chcete získať prístup k testu napísanému v konkrétnom súbore, použijeme nasledujúci príkaz.
py.test
Prípravok Pytest: Aplikácia Pytest Fixture sa používa na spustenie kódu pred vykonaním testovacej metódy, aby sa zabránilo opakovaniu kódu. V zásade sa používa na inicializáciu pripojenia k databáze.
Prípravok PyTest môžete definovať, ako je uvedené nižšie.
@pytest.fixture
Tvrdenie: Tvrdenie je podmienka, ktorá vráti hodnotu true alebo false. Vykonanie testu sa zastaví, keď sa tvrdenie nepodarí.
Nižšie je uvedený príklad:
def test_string_equal(): assert double(55) == 62 assert 25 == 62 + where 25 = double(55)
Odkaz na API: Pytest API
Odkaz na stiahnutie: Pytest
# 3) Unittest
- Unittest je úplne prvý na báze Pythonu rámec automatizovaného testovania jednotiek ktorý bol navrhnutý pre prácu so štandardnou knižnicou Pythonu.
- Podporuje opätovné použitie testovacích oblekov a testovacej organizácie.
- Bol inšpirovaný JUnit a podporuje automatizáciu testov vrátane zbierok testov, nezávislosti testov, kódu nastavenia testov atď.
- Tiež sa nazýva ako PyUnit.
- Unittest2 je backport ďalších nových funkcií pridaných do Unittestu.
Štandardný pracovný postup Unittestu:
- Importujte modul Unittest do programového kódu.
- Môžete definovať svoju vlastnú triedu.
- Vytvorte funkcie vo vnútri triedy, ktorú ste definovali.
- Do spodnej časti kódu umiestnite unittest.main (), ktorý je hlavnou metódou na spustenie testovacieho prípadu.
Príklad:
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//
Screenshot pre referenciu:
(obrázok zdroj )
Balíky / metódy:
Metóda | Pracovne |
---|---|
addTest () | Pridajte testovaciu metódu do testovacej sady. |
nastaviť() | Volá sa pred vykonaním testovacej metódy na prípravu testovacej inštalácie. |
strhnúť() | Volá sa po vykonaní testovacej metódy, aj keď test vyvolá výnimku. |
setUpClass () | Volá sa po testoch v individuálnej triede. |
tearDownClass () | Volá sa po testoch v individuálnej triede. |
run () | Spustite test s výsledkami. |
ladiť () | Spustiť test bez výsledku. |
Objaviť () | Nájde všetky testovacie moduly v podadresároch z konkrétneho adresára. |
assertEqual (a, b) | Testovanie rovnosti dvoch objektov. |
asserTrue / assertFalse (podmienka) | Testovanie boolovského stavu. |
( Poznámka: unittest.mock () je knižnica na testovanie v jazyku Python, ktorá umožňuje nahradenie častí systému falošnými objektmi. Jadro falošná trieda pomáha ľahko vytvoriť testovaciu sadu.)
Odkaz na API: Unittest API
Odkaz na stiahnutie: Unittest
# 4) DocTest
- Doctest je modul, ktorý je súčasťou štandardnej distribúcie Pythonu a slúži na White-box Unit Testing.
- Vyhľadáva interaktívne relácie pythonu a kontroluje, či fungujú presne podľa potreby.
- Využíva selektívne funkcie Pythonu, ako sú docstrings, The Python interactive shell a Python introspection (určovanie vlastností objektov za behu).
- Základné funkcie:
- Aktualizuje sa dokumentačný reťazec
- Vykonávanie regresného testovania
- Na zabezpečenie základného rozhrania sa používajú funkcie testfile () a testmod ().
Príklad:
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
Screenshot pre referenciu:
(obrázok zdroj )
Balíky / funkcie :
Funkcia | Parametre | |
---|---|---|
nos.nástroje.intest | (func) | Metódu alebo funkciu možno označiť ako test. |
doctest.testfile () | názov súboru (mendatory) (, module_relative) (, meno) (, balík) (, globs) (, verbose) (, správa) (, optionflags) (, extraglobs) (, raise_on_error) (, parser) (, kódovanie) | |
doctest.testmod () | m) (, meno) (, globusy) (, verbose) (, správa) (, optionflags) (, extraglobs) (, raise_on_error) (, vylúčiť_prázdne) | |
doctest.DocFileSuite () | * cesty, (module_relative) (, balík) (, setUp) (, tearDown) (, globs) (, optionflags) (, parser) (, kódovanie) | |
doctest.DocTestSuite () | (module) (, globs) (, extraglobs) (, test_finder) (, setUp) (, tearDown) (, checker) |
Poznámka: Na kontrolu interaktívnych príkladov v textovom súbore môžeme použiť funkciu testfile ();
doctest.testfile (“example.txt”)
Test môžete priamo spustiť z príkazového riadku pomocou;
python factorial.py
Odkaz na API: DocTest API
Odkaz na stiahnutie: Doctest
# 5) Nos 2
- Nose2 je nástupcom Nose a je založený na Pythone Rámec testovania jednotiek ktoré môžu spúšťať Doctests a UnitTests.
- Nos2 je založený na unittest preto sa označuje ako rozšíriť unittest alebo unittest s doplnkom, ktorý bol navrhnutý tak, aby zjednodušil a uľahčil testovanie.
- Nose používa kolektívne testy z unittest.testcase a podporuje viac funkcií pre písanie testov a výnimiek.
- Nose podporuje doplnky balíka, triedy, moduly a komplexnú inicializáciu, ktoré je potrebné definovať naraz, namiesto toho, aby ste museli často písať.
Príklad:
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()
Screenshot pre referenciu:
Balíky / metódy:
Metóda | Parametre | Pracovne |
---|---|---|
nose.tools.ok_ | (expr, msg = žiadne) | Skratka na presadenie. |
nose.tools.ok_ | (a, b, msg = žiadne) | Skratka na ‘tvrdenie a == b, „% R! =% R“% (a, b) |
nose.tools.make_decorator | (func) | Na replikáciu metadát pre danú funkciu. |
nos.nástroje.zdvihne | (* výnimka) | Odhodiť jednu z očakávaných výnimiek. |
nos.nástroje.časované | (limit) | Ak chcete určiť časový limit, v rámci ktorého by mal byť test úspešný. |
nose.tools.with_setup | (nastavenie = žiadne, roztrhnutie = žiadne) | Pridanie metódy nastavenia k testovacej funkcii. |
nos.nástroje.neotestovať | (func) | Metódu alebo funkciu nemožno označiť ako test. |
Odkaz na API: Pluginy pre Nose2
Odkaz na stiahnutie: Nos2
# 6) Svedčiť
- Testify bol navrhnutý tak, aby nahradil unittest a nose. Testify má oproti unittestu pokročilejšie funkcie.
- Testify je populárny ako implementácia sémantického testovania v prostredí Java (ľahké sa naučiť a implementovať špecifikáciu testovania softvéru).
- Účinkujú Automatizovaná jednotka, integrácia a testovanie systému je ľahšie svedčiť.
Vlastnosti
- Jednoduchá metóda syntaxe prípravku.
- Objav improvizovaného testu.
- Metóda nastavenia na úrovni triedy a metóda roztrhnutia.
- Rozšíriteľný systém doplnkov.
- Ľahko ovládateľné testovacie nástroje.
Príklad:
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()
Screenshot pre referenciu:
(obrázok zdroj )
Balíky / metódy:
Názov balíka | Pracovne | Import balíkov |
---|---|---|
tvrdiť | Poskytuje komplexné testovacie nástroje na testovanie systému. | importovať 'github.com/stretchr/testify/assert' |
predstierať | Užitočné na otestovanie vašich objektov a hovorov. | importovať 'github.com/stretchr/testify/mock' |
vyžadovať | Funguje rovnako ako tvrdenie, ale zastaví vykonávanie testu, keď testy zlyhajú. | importovať 'github.com/stretchr/testify/require' |
po | Poskytuje logiku pre vytváranie štruktúry a metód testovacej sady. | importovať 'github.com/stretchr/testify/suite' |
Odkaz na API: Balíky súborov svedectva
Odkaz na stiahnutie: Svedčiť
Dodatočný rámec pre testovanie Pythonu
Doteraz sme skontrolovali najpopulárnejší testovací rámec Pythonu. Je ich málo ďalšie mená na tomto zozname, ktoré by sa v budúcnosti mohli stať populárnymi.
# 7) Správajte sa
- Behave sa označuje ako BDD (Behavior Driven Development) testovací rámec, ktorý sa tiež používa pre Testovanie čiernej skrinky . Behave používa na písanie testov prirodzený jazyk a pracuje s reťazcami Unicode.
- Chovať adresár obsahuje súbory funkcií ktoré majú formát obyčajného textu, vyzerajú ako prirodzený jazyk a Krokové implementácie v Pythone .
Odkaz na API: Používateľská príručka Behave
Odkaz na stiahnutie: Správaj sa
# 8) Šalát
- Šalát je užitočný na Testovanie vývoja na základe správania . Robí testovací proces ľahkým a škálovateľným.
- Šalát obsahuje nasledujúce kroky:
- Opisné správanie
- Definícia krokov v Pythone.
- Spustenie kódu
- Úprava kódu, ktorý má vyhovieť testu.
- Spustenie upraveného kódu.
- Tieto kroky sa dodržiavajú trikrát až štyrikrát, aby bol softvér bezchybný a tým sa zvýšila jeho kvalita.
Odkaz na API: Šalátová dokumentácia
Odkaz na stiahnutie: Šalát
Často kladené otázky a odpovede
Pozrime sa na niektoré z najbežnejších častých otázok k tejto téme -
Otázka č. 1) Prečo sa Python používa na automatizáciu?
Odpoveď: Pretože program „Python prichádza s nástrojmi a knižnicami, ktoré podporujú automatizované testovanie vášho systému“, existuje niekoľko ďalších dôvodov, prečo sa program Python používa na testovanie.
- Python je objektovo orientovaný a funkčný, čo umožňuje programátorom dospieť k záveru, či sú funkcia a triedy vhodné podľa požiadaviek.
- Python ponúka bohatú knižnicu užitočných balíkov na testovanie po inštalácii aplikácie „Pip“.
- Na vytvorenie čitateľných testov sú užitočné funkcie bez štátnej príslušnosti a jednoduchá syntax.
- Python hrá úlohu mostu medzi testovacím prípadom a testovacím kódom.
- Python podporuje dynamické písanie kačiek.
- Ponúka dobre nakonfigurované IDE a dobrú podporu pre rámec BDD.
- Pri manuálnej kontrole je užitočná bohatá podpora príkazového riadku.
- Pre rozvoj rozsahu môže byť užitočná jednoduchá a dobrá štruktúra, modularita, bohatá sada nástrojov a balíčky.
Otázka č. 2) Ako štruktúrovať test v Pythone?
Odpoveď: Než vytvoríte test v Pythone, mali by ste zvážiť dve veci, ktoré sú uvedené nižšie.
- Ktorý modul / časť systému chcete testovať?
- Pre aký typ testovania sa rozhodujete (či už ide o testovanie jednotiek alebo testovanie integrácie)?
Celková štruktúra testu v Pythone je rovnako jednoduchá ako v iných, kde rozhodujeme o komponentoch testov, ako sú - vstupy, testovací kód, ktorý sa má vykonať, výstup a porovnanie výstupu s očakávanými výsledkami.
ako otvárať súbory apk v systéme Windows -
Otázka č. 3) Ktorý automatizačný nástroj je napísaný v Pythone?
Odpoveď: Postaviť je automatizačný nástroj, ktorý je napísaný a rozšírený o Python a používa sa na automatizáciu zostavovania softvéru. Program Buildout je použiteľný pre všetky fázy softvéru od vývoja po nasadenie.
Tento nástroj je založený na 3 základných princípoch:
- Opakovateľnosť: Uvádza sa v ňom, že konfigurácia projektu vyvinutá v rovnakom prostredí by mala priniesť rovnaký výsledok bez ohľadu na ich históriu.
- Komponentizácia: Softvérová služba by mala obsahovať nástroje na vlastnú kontrolu a mala by nakonfigurovať monitorovací systém počas nasadenia produktu.
- Automatizácia: Nasadenie softvéru by malo byť vysoko automatizované a časovo nenáročné.
Otázka č. 4) Môže sa Python použiť so selénom?
Odpoveď: Áno. Na vykonávanie testov sa so selénom používa jazyk Python. Python API je užitočné pripojiť sa k prehliadaču prostredníctvom selénu. Kombináciu selénu Python je možné použiť na zápis funkčných / akceptačných testov pomocou nástroja Selenium WebDriver.
Otázka č. 5) Je selén s Pythonom dobrý?
Odpoveď: Existuje niekoľko dôvodov, prečo sa selén a python považujú za dobrú kombináciu:
- Selén má najsilnejšiu sadu nástrojov na podporu automatizácie rýchlych testov.
- Selenium ponúka vyhradené testovacie funkcie na vykonávanie testovania webových aplikácií, ktoré pomáhajú skúmať skutočné správanie aplikácií.
- Zatiaľ čo Python je objektový a užívateľsky prívetivý skriptovací jazyk na vysokej úrovni s jednoduchou štruktúrou kľúčových slov.
Pokiaľ ide o používanie selénu s Pythonom, má to niekoľko výhod, ktoré sú uvedené nižšie.
- Ľahko sa kóduje a číta.
- Rozhranie Python API je mimoriadne užitočné na pripojenie k prehliadaču prostredníctvom selénu.
- Selenium posiela štandardné velenie nad Python do rôznych prehľadávačov bez ohľadu na jeho dizajnové variácie.
- Python je porovnateľne jednoduchý a kompaktný ako ostatné programovacie jazyky.
- Python prichádza s veľkou komunitou na podporu tých, ktorí sú úplne noví, ktorí používajú Selenium s Pythonom na vykonávanie automatizovaných testov.
- Je to bezplatný a otvorený programovací jazyk po celú dobu.
- Selenium WebDriver je ďalším silným dôvodom používania selénu s Pythonom. Selenium WebDriver má silnú väzbovú podporu pre ľahké užívateľské rozhranie Pythonu.
Otázka č. 6) Aké sú opatrenia na výber najlepšieho rámca na testovanie Pythonu?
Odpoveď: Pri výbere najlepšieho testovacieho rámca pre Python je potrebné vziať do úvahy nasledujúce body:
- Ak je kvalita a štruktúra skriptov, plní vaše účely. Programovací skript by mal byť ľahko pochopiteľný / udržiavateľný a bez chýb.
- Programová štruktúra jazyka Python hrá dôležitú úlohu pri výbere testovacieho rámca, ktorý pozostáva z atribútov, príkazov, funkcií, operátorov, modulov a štandardných knižničných súborov.
- Ako ľahko môžete vygenerovať testy a v akom rozsahu sa dajú znova použiť?
- Metóda použitá na vykonanie testu / testu modulu (techniky spustenia modulu).
Otázka č. 7) Ako si vybrať najlepší testovací rámec Pythonu?
Odpoveď: Pochopenie výhod a obmedzení každého rámca je lepším spôsobom, ako zvoliť najlepší rámec pre testovanie v Pythone. Poďme preskúmať -
Robotický rámec:
Výhody:
- Testovací prístup založený na kľúčových slovách pomáha ľahším spôsobom vytvoriť čitateľné testovacie prípady.
- Viaceré API
- Ľahká syntax testovacích údajov
- Podporuje paralelné testovanie cez Selenium Grid.
Obmedzenia:
- Vytváranie prispôsobených správ HTML je s Robotom dosť zložité.
- Menej podpory pre paralelné testovanie.
- Vyžaduje Python 2.7.14 a vyšší.
Pytest:
Výhody:
- Podporuje kompaktnú testovaciu sadu.
- Nie je potrebný ladiaci program ani žiadny explicitný testovací protokol.
- Viacero prípravkov
- Rozšíriteľné doplnky
- Ľahké a jednoduché vytvorenie testu.
- Je možné vytvoriť testovacie prípady s menším počtom chýb.
Obmedzenia:
- Nie je kompatibilný s inými rámcami.
Unittest:
Výhody:
- Nie je potrebný žiadny ďalší modul.
- Ľahko sa naučiť pre testerov na úrovni začiatočníkov.
- Jednoduché a ľahké vykonanie testu.
- Rýchle generovanie protokolov o testoch.
Obmedzenia
- Pomenovanie snake_case pre Python a camelCase pre JUnit spôsobuje trochu zmätok.
- Nejasný zámer testovacieho kódu.
- Vyžaduje obrovské množstvo štandardného kódu.
Doctest:
Výhody:
- Dobrá voľba na vykonávanie malých testov.
- Dokumentácia o teste v rámci metódy poskytuje aj ďalšie informácie o fungovaní metódy.
Obmedzenia
- Porovnáva iba tlačený výstup. Akákoľvek zmena vo výstupe spôsobí zlyhanie testu.
Nos 2:
Výhody:
- Nos 2 podporuje viac konfigurácie testovania ako unittest.
- Zahŕňa podstatnú sadu aktívnych doplnkov.
- Odlišné API od unittest, ktoré poskytuje viac informácií o chybe.
Obmedzenia:
- Pri inštalácii doplnkov tretích strán musíte nainštalovať inštalačný nástroj / distribuovať balík, pretože Nose2 podporuje Python 3, ale nie doplnky tretích strán.
Svedčiť:
Výhody:
- Ľahko pochopiteľné a ľahko použiteľné.
- Testy jednotiek, integrácie a systému možno ľahko vytvoriť.
- Spravovateľné a opakovane použiteľné testovacie komponenty.
- Pridávanie nových funkcií do Testify je ľahké.
Obmedzenia:
- Program Testify bol pôvodne vyvinutý s cieľom nahradiť unittest a Nose, ale proces jeho prechodu na pytest je zapnutý, takže sa používateľom odporúča vyhnúť sa použitiu Testify pre niekoľko nadchádzajúcich projektov.
Správať sa rámec:
Výhody:
- Jednoduché vykonávanie všetkých typov testovacích prípadov.
- Podrobné uvažovanie a premýšľanie
- Jasnosť výstupu QA / Dev.
Obmedzenia:
- Podporuje iba testovanie čiernej skrinky.
Rámec šalátu:
Výhody:
- Jednoduchý jazyk na vytvorenie viacerých testovacích scenárov.
- Užitočné pre testovacie prípady založené na chovaní pre testovanie čiernej skrinky.
Obmedzenia:
- Potrebuje silnú koordináciu medzi vývojármi, testermi a zainteresovanými stranami.
Môžete si zvoliť najvhodnejší rámec pre testovanie Pythonu zvážením vyššie uvedených výhod a obmedzení, ktoré pomôžu vypracovať kritériá vhodné pre vaše obchodné potreby.
Otázka č. 8) Ktorý rámec je najlepší pre Python Automation?
Odpoveď: Pri zvažovaní výhod a obmedzení môžeme považovať typ testovania za jedno z opatrení pre výber najlepšieho testovacieho rámca:
- Funkčné testovanie: Robot, PyTest, Unittest
- Testovanie na základe správania: Správajte sa, hlávkový šalát
Robot je najlepší rámec pre tých, ktorí sú v testovaní Pythonu noví a chcú mať poriadny štart.
Záver
Subunit, Trial, Test resources, Sancho, Testtools are some more names added in the list of Python Testing Framework. Existuje však len niekoľko nástrojov, ktoré sa doposiaľ spopularizovali, pretože testovanie v jazyku Python je pomerne nový koncept, ktorý sa zavádza do testovacieho sveta.
najlepšie blokovanie automaticky otváraných okien pre chróm
Spoločnosti pracujú na zdokonalení týchto nástrojov, aby boli ľahko pochopiteľné a aby mohli vykonávať testovanie. Vďaka bohatej a presnej triede príslušenstva, doplnkov a balíkov sa tieto nástroje môžu dobre orientovať a sú vhodnejšie na vykonávanie testovania v jazyku Python.
Medzitým vyššie spomenuté rámce od unittestu po Testify poskytujú veľmi potrebnú podporu a služby na dosiahnutie zamýšľaného výkonu systému.
= >> Kontaktuj nás navrhnúť zoznam tu.Odporúčané čítanie
- Proces predstavenia a inštalácie Pythonu
- Výukový program pre Python pre začiatočníkov (praktické školenie v jazyku Python ZDARMA)
- 30+ najlepších návodov na selén: Naučte sa selén na skutočných príkladoch
- Čo je to Automation Testing (Ultimate Guide to Start Test Automation)
- Rozdiely medzi testovaním jednotiek, testovaním integrácie a funkčným testovaním
- 10 najpopulárnejších nástrojov RPA na automatizáciu robotických procesov v roku 2021
- 25 najlepších rámcov a nástrojov na testovanie Java pre automatizované testovanie (3. časť)
- 8 vývojových nástrojov a testovacích rámcov pre najlepší vývoj založený na správaní (BDD)