testproject python sdk tutorial
TestProject Python SDK Vadnica: Dopolnite obstoječe teste na osnovi selena in appijaTa vadnica vam bo pomagala začeti uporabljati TestProject Python SDK. Naučite se namestiti, konfigurirati in uporabljati najmočnejše funkcije SDK:
Selen in Appium sta že leta med najbolj priljubljenimi odprtokodnimi testnimi okviri za namizne brskalnike in mobilno testiranje.
The TestProject Python SDK gradi na teh orodjih in vam nudi moč platforme TestProject, ki vam ponuja čudovita poročila HTML in PDF na njihovih poročevalskih platformah, samodejno zaznavanje brskalnika, konfiguracijo gonilnikov in še veliko več.
In najboljše je, da je uporaba platforme TestProject in SDK popolnoma brezplačna, za vedno. Tudi SDK je odprtokodna, tako da, če želite prispevati k projektu, lahko!
Kaj se boste naučili:
Kaj je TestProject Python SDK?
V tej vadnici boste videli, kako začeti uporabljati TestProject Python SDK, kako izkoristiti platformo TestProject z obstoječimi testi na osnovi selena in appija, pa tudi kako uporabiti nekatere najmočnejše funkcije SDK.
Opomba : Ali so vaši testi napisani v jeziku, ki ni Python? Brez skrbi, TestProject ponuja tudi SDK za Javo in C #, v bližnji prihodnosti pa bo na voljo še več jezikov.
Namestitev in konfiguracija
=> Obiščite to stran za brezplačno prijavo na TestProjectPython SDK je na voljo na PyPI , indeks paketa Python. Tu predpostavljamo, da imate delujočo namestitev Pythona, vse kar morate storiti je, da namestite SDK, za to pa morate zaženite naslednji ukaz:
pip install testproject-python-sdk
S tem boste namestili SDK in njegove zahtevane odvisnosti, vključno s selenijem in odjemalcem Python Appium.
Preden lahko začnemo uporabljati SDK, moramo narediti še dve stvari.
# 1) Namestite in konfigurirajte agent TestProject na vaši napravi:
Agent TestProject je odgovoren za namestitev in konfiguracijo gonilnikov brskalnika ter za pošiljanje poročil, ki jih generira SDK, na platformo TestProject.
Ko ustvarite račun na TestProject platformo (spet je to brezplačno), lahko prenesete svojega agenta.
Po prenosu ga boste morali namestiti in zagnati. Agent privzeto deluje naprej http: // localhost: 8585. Če želite zagnati Agenta na drugih vratih ali celo na povsem drugem računalniku, to ni problem. V tem primeru morate v spremenljivki okolja določiti pravilen naslov agenta TP_AGENT_URL da SDK ve, kje se izvaja.
# 2) Pridobite in konfigurirajte žeton razvijalca:
Za komunikacijo z agentom boste potrebovali tudi žeton razvijalca. Po namestitvi agenta lahko svoj razvojni žeton dobite na spletnem mestu platforme TestProject, kot je prikazano na spodnji sliki.
Navedite svoj žeton razvijalca v spremenljivki okolja TP_DEV_TOKEN da se SDK tega zaveda. Druga možnost je, da jo lahko določite kot argument pri ustvarjanju nove seje gonilnika, saj bomo to videli kmalu.
Ko prenesete SDK, namestite, konfigurirate in zaženete agenta, pridobite in konfigurirate svoj žeton za razvijalce, ste pripravljeni za uporabo.
Ustvarjanje našega prvega testa Projektni test selena
Predpostavimo, da imamo preizkus na osnovi selena, ki vodi do predstavitvene spletne aplikacije TestProject. Zagotavlja poverilnice za prijavo in preverja, da smo pozvani, da sporočamo, da je bilo dejanje prijave uspešno zaključeno. Predpostavimo tudi, da za izvajanje tega testa in izvajanje trditev uporabljamo ogrodje za testiranje enote Pytest.
Takšen test bi lahko bil videti nekako takole:
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()
Zgornji primer uporablja Chrome kot brskalnik. SDK poleg Chroma podpira tudi naslednje namizne brskalnike:
- Firefox
- Rob
- internet Explorer
- Safari
V tem primeru nismo uporabili nobenega vzorca abstrakcije, ki je pogost pri testih na osnovi selena, na primer Page Objects, če pa jih uporabljate, to sploh ni problem. Pravzaprav ga priporočamo, saj to ustvarja jasno ločitev med vašim testnim tokom (dejanja, testni podatki) in podrobnostmi o izvedbi vaših spletnih strani (lokatorji elementov).
Po zaključku vseh zgoraj prikazanih korakov za namestitev in konfiguracijo morate vse, da spremenite ta test v test s testnim projektom, zamenjati izjavo o uvozu, kot je razloženo spodaj.
from selenium import webdriver
Razveselite se s tem:
from src.testproject.sdk.drivers import webdriver
To je to! Ko preizkus zaženete zdaj, bo SDK od agenta TestProject zahteval primerek gonilnika in ga uporabil za izvedbo testa. Na platformo TestProject bo poslal tudi navodila za poročanje, ki se nato uporabljajo za ustvarjanje poročil HTML. Oglejmo si jih!
Pregled poročil na platformi TestProject
Če odprete TestProject in v meniju izberete možnosti »Poročila«, lahko vidite, da je bilo za test, ki smo ga pravkar izvedli, ustvarjeno novo poročilo. Glejte spodnjo sliko.
spletna mesta za pretvorbo videoposnetkov YouTube v mp3
Kot lahko vidite, je SDK samodejno sklepal na ime projekta ( software_testing_help ), ime službe ( primeri ) in ime testa ( test_login_to_testproject_example_app ) in jih uporabil pri ustvarjanju poročila. To je podprto tako za Pytest kot za Unittest, pa tudi za teste, ki se ne izvajajo z namenskim okvirom za testiranje enote.
V naslednjem razdelku bomo videli, kako določiti prilagojena imena projektov, opravil in preskusov ter številne druge uporabne možnosti poročanja.
Vsi ukazi gonilnika, ki so bili izvedeni med preskusom, se samodejno dodajo v poročilo skupaj z njihovimi rezultati. TestProject prav tako takoj ustvari preglede in nadzorne plošče.
Možnosti prilagajanja poročanja s programom TestProject
Medtem ko TestProject naenkrat ustvari bogata in uporabna poročila, jih lahko na več načinov prilagodite svojim zahtevam po informacijah.
Kot smo videli v prejšnjem primeru, lahko TestProject samodejno sklepa na imena projektov, opravil in testov za najbolj priljubljena ogrodja za testiranje enote Python. Če želite v poročilih uporabiti imena po meri, lahko to storite tudi na dva različna načina.
# 1) Uporaba dekoraterja
TestProject SDK vsebuje tudi a @ poročilo dekorater, s katerim lahko okrasite preskusne metode in ki ga lahko uporabite za navedite imena projektov, opravil in preizkusov po meri, kot je prikazano spodaj:
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
Ko zaženemo to okrašeno preskusno metodo in pregledamo poročila, lahko vidimo, da so bila v ustvarjenem poročilu namesto samodejno sklepanih uporabljena navedena imena.
# 2) Določitev imen projektov in opravil v konstruktorju gonilnikov ter ročno poročanje o preskusu:
Imena projektov in opravil lahko preglasite tudi tako, da jih navedete v konstruktorju gonilniškega predmeta. To lahko storite na naslednji 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
Če želite preglasiti samodejno izpeljano ime testa, lahko na koncu preizkusa prijavite test ročno, takole:
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()
Če se odločite za uporabo možnosti ročnega poročanja, morate onemogočiti samodejno poročanje o testih (ki je privzeto omogočeno), da zagotovite, da se testi ne poročajo dvakrat, kar bi poškodovalo vaše poročilo in nadzorne plošče.
Samodejno poročanje lahko onemogočite z naslednjim ukazom:
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
Tako bo poročilo videti popolnoma enako kot zadnji zgornji posnetek zaslona.
# 3) Onemogočanje poročanja o ukazih gonilnika
Če ne želite, da vaše poročilo vsebuje vsak posamezen ukaz gonilnika, ki je bil izveden med preskusom, lahko onemogočite samodejno poročanje o njih tako:
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
Pozneje med preskusi lahko ponovno omogočite poročanje o ukazih gonilnikov, tako da znova pokličete isto metodo, vendar z argumentom disabled = False.
Če še vedno želite med testom poročati o nekaterih vmesnih korakih, lahko to storite tudi:
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
Kot vidite, lahko korakom poročila po meri dodate celo posnetke zaslona. Ti bodo samodejno vključeni v poročilo HTML na platformi TestProject.
TestProject SDK ponuja več možnosti za nadaljnjo prilagoditev poročanja. Za popoln pregled si oglejte uradno dokumentacijo na spletnem mestu TestProject, GitHub ali PyPI.
Izvajanje testov na osnovi Appium z uporabo TestProject
Poleg testov na osnovi selena lahko TestProject SDK izvaja tudi teste na mobilnih napravah z Appiumom. Razmislite o tem primeru, ko zaženete proti izvorni aplikaciji za Android v emulatorju:
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()
Če želite tukaj uporabiti moč platforme TestProject, samo spremeniti se moramo
from appium import webdriver
Za:
from src.testproject.sdk.drivers import webdriver
In dobro je iti. Agent TestProject deluje tudi kot strežnik Appium, zato ga ni treba več zagnati na računalniku, ki izvaja vaše teste.
Vse zgoraj opisane funkcije poročanja so na voljo tudi za teste na osnovi Appium.
SDK podpira izvajanje mobilnih testov:
- Tako za Android kot za iOS.
- Tako na emulatorjih kot na resničnih napravah.
- V domačih aplikacijah in brskalnikih za mobilne naprave
Primeri vseh teh so v skladišču kod SDK na GitHubu.
Zaključek
Kot ste videli v tej vadnici, vam lahko TestProject Python SDK pomaga dopolniti obstoječe teste na osnovi selena in appija, tako da odvzame naloge za konfiguriranje gonilnikov brskalnika in strežnika Appium, in za vas ustvari odlična poročila HTML in nadzorno ploščo platformo TestProject.
Najboljše od vsega je, da je TestProject Python SDK popolnoma brezplačen.
=> Pojdi na TestProject, da ga preizkusite sami !
O avtorju: Bas Dijkstra
Avtor uči podjetja po vsem svetu, kako izboljšati svoja prizadevanja za testiranje z avtomatizacijo preskusov. Je neodvisni trener, svetovalec in razvijalec, ki živi na Nizozemskem. V prostem času se rad odpelje s kolesom, gre na tek ali prebere dobro knjigo.
Priporočeno branje
- Vadnica za praktični pregled orodja za avtomatizacijo preizkusov TestProject
- Uvod in postopek namestitve Pythona
- Ustvarite teste Appium za aplikacijo za Android
- Vadnica za Python za začetnike (praktično BREZPLAČNO usposabljanje za Python)
- Izvajanje testov Appium v vzporedni uporabi Appium Studio za Eclipse
- Ustvarjanje testov epoh z uporabo epochs Studio za Eclipse
- Kako vzporedno izvajati obsežno izvajanje testov Appium
- Vključite se v svoj IDE za izvajanje testov Appium