testproject python sdk tutorial
Vodič za TestProject Python SDK: Nadopunite svoje postojeće testove na bazi selena i appijaOvaj će vam vodič pomoći da započnete s testProject Python SDK. Naučite instalirati, konfigurirati i koristiti najsnažnije značajke SDK-a:
Selen i Appium već su godinama među najpopularnijim okvirima za testiranje s otvorenim kodom za stolne preglednike i testiranje na mobilnim uređajima.
The TestProject Python SDK nadovezuje se na ove alate i pružaju vam snagu platforme TestProject, pružajući vam prekrasne HTML i PDF izvještaje na njihovim platformama za izvještavanje, automatsko otkrivanje preglednika, konfiguraciju upravljačkog programa i još mnogo toga.
A najbolja stvar je što je korištenje platforme TestProject i SDK potpuno besplatno, zauvijek. SDK je također otvoreni izvor, pa ako želite pridonijeti projektu, možete!
Što ćete naučiti:
Što je TestProject Python SDK?
U ovom vodiču vidjet ćete kako započeti s TestProject Python SDK, kako iskoristiti platformu TestProject s postojećim testovima temeljenim na seleniju i appiumu, kao i kako koristiti neke od najsnažnijih značajki SDK-a.
Bilješka : Jesu li vaši testovi napisani na jeziku koji nije Python? Ne brinite, TestProject nudi i SDK-ove za Javu i C #, a u bliskoj budućnosti dolazi još jezika.
Instalacija i konfiguracija
=> Posjetite ovu stranicu za besplatnu prijavu za TestProjectPython SDK dostupan je na PyPI , indeks paketa Python. Ovdje pretpostavljamo da imate ispravnu instalaciju Pythona, sve što trebate je instalirati SDK, a za to trebate pokrenite sljedeću naredbu:
pip install testproject-python-sdk
Ovo će instalirati SDK i njegove potrebne ovisnosti, uključujući Selenium i Python Appium klijent.
Prije nego što počnemo koristiti SDK, moramo napraviti još dvije stvari.
# 1) Instalirajte i konfigurirajte TestProject Agent na vašem računalu:
Agent TestProject odgovoran je za instalaciju i konfiguraciju upravljačkog programa preglednika, kao i za slanje izvješća koja generira SDK na platformu TestProject.
Nakon što ste kreirali račun na TestProject platformu (opet, ovo je besplatno), možete preuzeti svog agenta.
Nakon preuzimanja morat ćete ga instalirati i pokrenuti. Prema zadanim postavkama, Agent radi dalje http: // localhost: 8585. Ako želite pokrenuti Agenta na drugom priključku ili čak na sasvim drugom stroju, to nije problem. U ovom slučaju, sve što trebate je odrediti ispravnu adresu agenta u varijabli okruženja TP_AGENT_URL kako bi SDK znao gdje se pokreće.
# 2) Nabavite i konfigurirajte token programera:
Da biste komunicirali s agentom, trebat će vam i token programera. Nakon instalacije Agenta, svoj razvojni token možete dobiti s web mjesta platforme TestProject, kao što je prikazano na donjoj slici.
Navedite svoj token programera u varijabli okruženja TP_DEV_TOKEN da to osvijesti SDK. Alternativno, možete ga odrediti kao argument kada kreirate novu sesiju upravljačkog programa, jer ćemo to vidjeti uskoro.
Nakon što preuzmete SDK, instalirate, konfigurirate i pokrenete Agent, nabavite i konfigurirate svoj razvojni token, spremni ste za rad.
Izrada našeg prvog testaProjektni test selena
Pretpostavimo da imamo test zasnovan na selenu koji vodi do demo web aplikacije TestProject. Pruža vjerodajnice za prijavu i provjere koje nas pozdravljaju kako bismo naznačili da je akcija prijave uspješno završena. Pretpostavimo također da za pokretanje ovog testa i izvršavanje tvrdnji koristimo Pytestov okvir za jedinstveno testiranje.
Takav test mogao bi izgledati otprilike ovako:
from selenium import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.get('https://example.testproject.io/web/') driver.find_element_by_id('name').send_keys('John Smith') driver.find_element_by_id('password').send_keys('12345') driver.find_element_by_id('login').click() assert driver.find_element_by_id('greetings').is_displayed() is True driver.quit()
Gornji primjer koristi Chrome kao preglednik. Uz Chrome, SDK podržava i sljedeće preglednike na radnoj površini:
- Firefox
- Rub
- Internet Explorer
- Safari
U ovom primjeru nismo upotrijebili nijedan obrazac apstrakcije koji je uobičajen u testovima temeljenim na selenu, poput Page Objects, ali ako ih koristite, to uopće nije problem. Zapravo ga preporučamo jer ovo stvara jasnu odvojenost između vašeg testnog tijeka (radnje, testni podaci) i detalja implementacije vaših web stranica (lokatori elemenata).
Nakon završetka svih gore prikazanih koraka instalacije i konfiguracije, sve što trebate učiniti da biste ovaj test pretvorili u test koji pokreće TestProject je zamjena izjave o uvozu kako je objašnjeno u nastavku.
from selenium import webdriver
Veselite se ovom:
from src.testproject.sdk.drivers import webdriver
To je to! Nakon što sada pokrenete test, SDK će od agenta TestProject zatražiti instancu upravljačkog programa i koristiti je za izvršenje testa. Također će poslati upute za izvještavanje na platformu TestProject, koje se zatim koriste za stvaranje HTML izvješća. Pogledajmo ih!
Pregled izvješća na platformi TestProject
Odlaskom na TestProject i odabirom opcija 'Izvješća' s izbornika možete vidjeti da je stvoreno novo izvješće za test koji smo upravo pokrenuli. Pogledajte sliku u nastavku.
dobar blokator iskačućih prozora za krom
Kao što vidite, SDK je automatski zaključio naziv projekta ( pomoć_testiranja_pomoći ), naziv posla ( primjeri ) i naziv testa ( test_login_to_testproject_example_app ) i koristio ih prilikom izrade izvješća. To je podržano i za Pytest i za Unittest, kao i za testove koji se ne izvode pomoću namjenskog okvira za jedinstveno testiranje.
U sljedećem ćemo odjeljku vidjeti kako odrediti prilagođeni naziv projekta, posla i testa, kao i niz drugih korisnih opcija izvješćivanja.
Sve naredbe vozača izvršene tijekom testa automatski se dodaju u izvješće, zajedno s njihovim rezultatima. TestProject također generira preglede i nadzorne ploče izvan okvira.
Izvještavanje o mogućnostima prilagodbe s TestProjectom
Iako TestProject izravno izrađuje bogata i upotrebljiva izvješća, postoji nekoliko načina na koje ih možete prilagoditi da još bolje odgovaraju vašim informacijskim zahtjevima.
Kao što smo vidjeli u prethodnom primjeru, TestProject može automatski odrediti imena projekata, poslova i testova za najpopularnije Python jedinice za testiranje jedinica. Ako pak želite koristiti prilagođena imena u svojim izvješćima, to se može učiniti i na dva različita načina.
# 1) Korištenje dekoratera
TestProject SDK također sadrži a @izvješće dekorator kojim možete ukrasiti metode ispitivanja i koji možete koristiti za navedite prilagođena imena projekta, posla i testa kao što je prikazano u nastavku:
from src.testproject.sdk.drivers import webdriver from src.testproject.decorator import report @report(project='Software Testing Help', job='SDK Examples', test='Login Test') def test_login_to_testproject_example_app(): driver = webdriver.Chrome() # the rest of the test method remains unchanged
Kada pokrenemo ovu ukrašenu metodu ispitivanja i pregledamo izvješća, možemo vidjeti da su navedena imena korištena u generiranom izvješću, umjesto automatski zaključenih.
# 2) Određivanje imena projekata i poslova u konstruktoru upravljačkog programa i ručno izvještavanje o testu:
Imena projekata i poslova također se mogu nadjačati specificiranjem u konstruktoru objekta upravljačkog programa. To se može učiniti na sljedeći način:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome(projectname='Software Testing Help', jobname='SDK Examples') # the rest of the test method remains unchanged
Ako želite poništiti automatski izvedeno ime testa, možete ga prijaviti ručno na kraju testa, ovako:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome(projectname='Software Testing Help', jobname='SDK Examples') driver.get('https://example.testproject.io/web/') driver.find_element_by_id('name').send_keys('John Smith') driver.find_element_by_id('password').send_keys('12345') driver.find_element_by_id('login').click() assert driver.find_element_by_id('greetings').is_displayed() is True driver.report().test(name='Login Test', passed=True) driver.quit()
Ako odlučite koristiti opciju ručnog izvješćivanja, trebali biste onemogućiti automatsko izvještavanje o testovima (što je omogućeno prema zadanim postavkama) kako biste osigurali da se testovi ne prijavljuju dva puta, što bi oštetilo vaše izvješće i nadzorne ploče.
Automatsko izvještavanje možete onemogućiti pomoću sljedeće naredbe:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.report().disable_auto_test_reports(disabled=True) # the rest of the test method remains as above
Izvješće će izgledati potpuno isto kao i posljednja snimka zaslona gore.
# 3) Onemogućavanje izvješćivanja o naredbama vozača
Ako ne želite da vaše izvješće sadrži svaku pojedinačnu naredbu upravljačkog programa koja je izvršena tijekom testa, možete onemogućiti automatsko izvještavanje o njima na sljedeći način:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.report().disable_command_reports(disabled=True) # the rest of the test method remains unchanged
Također možete kasnije omogućiti izvještavanje o naredbama upravljačkih programa kasnije u testovima ponovnim pozivanjem iste metode, ali s onemogućenim argumentom = False.
Ako i dalje želite prijaviti neke posredne korake tijekom testa, možete i to učiniti:
from src.testproject.sdk.drivers import webdriver def test_login_to_testproject_example_app(): driver = webdriver.Chrome() driver.report().disable_command_reports(disabled=True) driver.report().step(description='An intermediate step', message='A custom message', passed=True, screenshot=True) # here goes the rest of the test method
Kao što vidite, u svoje korake prilagođenog izvješća možete čak dodati i snimke zaslona. Oni će se automatski integrirati u HTML izvješće na platformi TestProject.
TestProject SDK nudi više mogućnosti za daljnju prilagodbu izvješća. Pogledajte službenu dokumentaciju na web mjestu TestProject, GitHub ili PyPI za cjelovit pregled.
Pokretanje testova temeljenih na Appiumu koristeći TestProject
Pored testova temeljenih na selenu, TestProject SDK također može izvoditi testove na mobilnim uređajima koji koriste Appium. Razmotrite ovaj primjer, pokretanje protiv izvorne Android aplikacije na emulatoru:
from appium import webdriver def test_native_android_app(): desired_capabilities = { 'appActivity': 'io.testproject.demo.MainActivity', 'appPackage': 'io.testproject.demo', 'udid': '', 'browserName': '', 'platformName': 'Android', } driver = webdriver.Remote(desired_capabilities=desired_capabilities) driver.find_element_by_id('name').send_keys('John Smith') driver.find_element_by_id('password').send_keys('12345') driver.find_element_by_id('login').click() assert driver.find_element_by_id('greetings').is_displayed() driver.quit()
Da ovdje upotrijebimo snagu platforme TestProject, trebamo se samo promijeniti
from appium import webdriver
Do:
from src.testproject.sdk.drivers import webdriver
I dobro je krenuti. TestProject Agent također djeluje kao Appium poslužitelj, tako da više nema potrebe da to sami pokrećete na stroju koji izvodi vaše testove.
Sve gore opisane značajke izvješćivanja također su dostupne za testove na bazi Appium.
SDK podržava pokretanje mobilnih testova:
- Za Android kao i iOS.
- Na emulatorima kao i na stvarnim uređajima.
- Na izvornim aplikacijama, kao i na mobilnim preglednicima
Primjeri svega toga mogu se naći u spremištu SDK koda na GitHubu.
Zaključak
Kao što ste vidjeli u ovom vodiču, TestProject Python SDK može vam pomoći da napunite postojeće testove temeljene na seleniju i Appiumu uklanjanjem poslova konfiguriranja upravljačkih programa preglednika i Appium poslužitelja, a generira sjajna HTML izvješća i nadzornu ploču za vas platforma TestProject.
Najbolje od svega je što je TestProject Python SDK apsolutno besplatan.
=> Krenite prema TestProject da biste ga sami isprobali !
O autoru: Bas Dijkstra
Autor podučava tvrtke širom svijeta kako poboljšati napore na testiranju automatizacijom ispitivanja. Nezavisni je trener, savjetnik i programer koji živi u Nizozemskoj. U slobodno vrijeme voli voziti bicikl, trčati ili čitati dobru knjigu.
Preporučena literatura
- Vodič za praktični pregled alata za automatizaciju testa TestProject
- Postupak uvođenja i instalacije Pythona
- Stvorite Appium testove za Android aplikaciju
- Vodič za početnike za Python (Praktični BESPLATNI trening za Python)
- Izvođenje paralelnih testova Appiuma pomoću Appium Studija za Eclipse
- Stvaranje testova epoha pomoću epochs Studio za Eclipse
- Kako paralelno pokrenuti veliko izvršavanje testova Appium
- Integrirajte se u svoj IDE za pokretanje testova Appium