testproject python sdk tutorial
TestProject Python SDK-opplæring: Overlad dine eksisterende selen- og appiumbaserte testerDenne veiledningen vil hjelpe deg å komme i gang med TestProject Python SDK. Lær å installere, konfigurere og bruke SDKs kraftigste funksjoner:
Selenium og Appium har vært blant de mest populære testkilder for åpen kildekode for stasjonære nettlesere og mobilbasert testing i årevis.
De TestProject Python SDK bygger på disse verktøyene, og de gir deg kraften til TestProject-plattformen, og gir deg vakre HTML- og PDF-rapporter på rapporteringsplattformene, automatisk nettleseroppdagelse, driverkonfigurasjon og mye mer.
Og det beste er at bruk av TestProject-plattformen og SDK er helt gratis, for alltid. SDK er også en åpen kildekode, så hvis du vil bidra til prosjektet, kan du!
Hva du vil lære:
Hva er TestProject Python SDK?
I denne opplæringen vil du se hvordan du kommer i gang med TestProject Python SDK, hvordan du kan utnytte TestProject-plattformen med dine eksisterende Selen- og Appium-baserte tester, samt hvordan du bruker noen av SDKs kraftigste funksjoner.
Merk : Er testene dine skrevet på et annet språk enn Python? Ingen grunn til bekymring, TestProject tilbyr også SDK-er for Java og C #, med flere språk som kommer i nær fremtid.
Installasjon og konfigurasjon
=> Besøk denne siden for gratis TestProject-registreringPython SDK er tilgjengelig på PyPI , Python-pakkeindeksen. Her antar vi at du har en fungerende Python-installasjon, alt du trenger å gjøre er å installere SDK, og for det må du kjør følgende kommando:
pip install testproject-python-sdk
Dette vil installere SDK og dens nødvendige avhengigheter, inkludert Selenium og Python Appium-klienten.
Før vi kan begynne å bruke SDK, må vi gjøre to ting til.
# 1) Installer og konfigurer TestProject Agent på maskinen din:
TestProject Agent er ansvarlig for installasjon og konfigurering av nettleserdriver, samt for å sende rapporter generert av SDK til TestProject-plattformen.
Etter at du har opprettet en konto på TestProsjekt plattform (igjen, dette er gratis), kan du laste ned agent.
Etter nedlasting må du installere og starte den. Agent kjører som standard på http: // localhost: 8585. Hvis du vil kjøre agenten på en annen port, eller til og med på en helt annen maskin, er det ikke noe problem. I dette tilfellet er alt du trenger å gjøre å spesifisere riktig agentadresse i en miljøvariabel TP_AGENT_URL for å fortelle SDK hvor den kjører.
# 2) Få og konfigurer et utviklertoken:
For å kommunisere med agenten trenger du også et utviklertoken. Etter at du har installert agenten, kan du få utviklingstokenet ditt fra TestProject-plattformsiden som vist på bildet nedenfor.
Spesifiser utviklertokenet i en miljøvariabel TP_DEV_TOKEN å gjøre SDK oppmerksom på det. Alternativt kan du spesifisere det som et argument når du oppretter en ny driverøkt, da vi vil se dette litt.
Etter at du har lastet ned SDK, installert, konfigurert og startet agenten, skaffet og konfigurert utviklertokenet ditt, er du klar.
Opprette vår første TestProject-drevne Selen Test
La oss anta at vi har en Selen-basert test som navigerer til TestProject demo-nettappen. Det gir påloggingsinformasjon og kontrollerer at vi blir møtt for å indikere at påloggingshandlingen er fullført. La oss også anta at vi bruker Pytest-enhetens testrammeverk for å kjøre denne testen og utføre påstandene.
En slik test kan se ut slik:
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()
Eksemplet ovenfor bruker Chrome som nettleser. I tillegg til Chrome støtter SDK også følgende stasjonære nettlesere:
- Firefox
- Kant
- Internet Explorer
- Safari
For dette eksemplet har vi ikke brukt noen av abstraksjonsmønstrene som er vanlige i Selen-baserte tester, for eksempel sideobjekter, men hvis du bruker disse, er det ikke noe problem i det hele tatt. Vi anbefaler faktisk det, da dette skaper en klar skille mellom testflyten din (handlinger, testdata) og implementeringsdetaljene til websidene dine (elementlokatorer).
Etter at alle installasjons- og konfigurasjonstrinnene er vist ovenfor, er alt du trenger å gjøre for å gjøre denne testen til en TestProject-drevet test, å erstatte importerklæringen som forklart nedenfor.
from selenium import webdriver
Relatere med denne:
from src.testproject.sdk.drivers import webdriver
Det er det! Når du har kjørt testen nå, vil SDK be om en driverinstans fra TestProject Agent og bruke den til å utføre testen. Den vil også sende rapporteringsinstruksjoner til TestProject-plattformen, som deretter brukes til å lage HTML-rapporter. La oss ta en titt på disse!
Inspisere rapporter på TestProject-plattformen
Å gå til TestProject, og velge alternativene 'Rapporter' fra menyen, kan du se at en ny rapport er opprettet for testen vi nettopp har kjørt. Se bildet nedenfor.
hvordan du bruker github-utvidelse for visuelt studio
Som du kan se, har SDK automatisk utledet et prosjektnavn ( software_testing_help ), et stillingsnavn ( eksempler ), og et testnavn ( test_login_to_testproject_example_app ) og brukte disse når du opprettet rapporten. Dette støttes for både Pytest og Unittest, samt for tester som ikke kjøres ved hjelp av et dedikert rammeverk for testing av enheter.
Vi får se hvordan du spesifiserer de tilpassede prosjekt-, jobb- og testnavnene, samt en rekke andre nyttige rapporteringsalternativer i neste avsnitt.
Alle sjåførkommandoer som er utført under testen legges automatisk til rapporten sammen med resultatet. TestProject genererer også oversikter og dashbord ut av esken.
Rapporteringsalternativ for rapportering med TestProject
Mens TestProject genererer rike og brukbare rapporter utenom boksen, er det flere måter du kan tilpasse dem til å passe dine informasjonskrav enda bedre.
Som vi har sett i forrige eksempel, er TestProject i stand til automatisk å utlede prosjekt-, jobb- og testnavn for de mest populære testrammene for Python-enheten. Hvis du vil bruke tilpassede navn i rapportene dine, kan det også gjøres på to forskjellige måter.
# 1) Bruke en dekoratør
TestProject SDK har også en @rapportere dekoratør som du kan bruke til å dekorere testmetodene dine og som du kan bruke til spesifiser tilpassede prosjekt-, jobb- og testnavn som vist nedenfor:
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
Når vi kjører denne dekorerte testmetoden og inspiserer rapportene, kan vi se at de spesifiserte navnene har blitt brukt i den genererte rapporten, i stedet for de automatisk avledede.
# 2) Spesifisere prosjekt- og jobbnavn i førerkonstruktøren og rapportere en test manuelt:
Prosjekt- og stillingsnavn kan også overstyres ved å spesifisere dem i konstruktøren til driverobjektet. Dette kan gjøres som følger:
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
Hvis du vil overstyre det automatisk avledede testnavnet, kan du rapportere en test manuelt på slutten av testen, slik:
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()
Hvis du velger å bruke alternativet manuell rapportering, bør du deaktivere automatisk rapportering av tester (som er aktivert som standard), for å sikre at tester ikke rapporteres to ganger, noe som vil ødelegge rapporten og dashbordene dine.
Du kan deaktivere automatisk rapportering ved hjelp av følgende kommando:
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
Dette får rapporten til å se nøyaktig ut som den siste skjermbildet ovenfor.
# 3) Deaktivering av rapportering av driverkommandoer
Hvis du ikke vil at rapporten skal inneholde hver enkelt driverkommando som ble utført under testen, kan du deaktivere automatisk rapportering av dem slik:
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
Du kan også aktivere rapportering av driverkommandoer på nytt senere i testene dine ved å ringe den samme metoden igjen, men med argumentet deaktivert = Falsk.
Hvis du fortsatt vil rapportere noen mellomtrinn under testen, kan du også gjøre det:
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
Som du kan se, kan du til og med legge til skjermbilder i dine tilpassede rapporttrinn. Disse vil automatisk bli integrert i HTML-rapporten på TestProject-plattformen.
TestProject SDK tilbyr flere alternativer for å tilpasse rapporteringen ytterligere. Se den offisielle dokumentasjonen på TestProject-nettstedet, GitHub eller PyPI for en fullstendig oversikt.
Kjører appiumbaserte tester ved hjelp av TestProject
Ved siden av Selen-baserte tester kan TestProject SDK også kjøre tester på mobile enheter ved hjelp av Appium. Tenk på dette eksemplet, kjører mot en native Android-app på en emulator:
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()
For å bruke kraften til TestProject-plattformen her, igjen, vi trenger bare å endre
from appium import webdriver
Til:
from src.testproject.sdk.drivers import webdriver
Og vi er gode å gå. TestProject Agent fungerer også som Appium-serveren, så det er ikke lenger behov for å kjøre det selv på maskinen som kjører testene dine.
Alle rapporteringsfunksjoner beskrevet ovenfor er også tilgjengelige for Appium-baserte tester.
SDK støtter kjøring av mobile tester:
- For både Android og iOS.
- På emulatorer så vel som på ekte enheter.
- På innfødte apper så vel som mobile nettlesere
Eksempler på alle disse finner du i SDK-kodelageret på GitHub.
Konklusjon
Som du har sett i denne opplæringen, kan TestProject Python SDK hjelpe deg med å overbelaste eksisterende Selen- og Appium-baserte tester ved å ta bort oppgavene med å konfigurere nettleserdriverne og Appium-serveren, og den genererer gode HTML-rapporter og dashbord for deg TestProject-plattformen.
Best av alt, TestProject Python SDK er helt gratis.
=> Gå videre til TestProsjekt for å prøve det selv !
Om forfatteren: Bas Dijkstra
Forfatteren lærer selskaper over hele verden hvordan de kan forbedre testinnsatsen gjennom testautomatisering. Han er en uavhengig trener, konsulent og utvikler som bor i Nederland. På fritiden liker han å ta sykkelen en tur, løpe eller lese en god bok.
Anbefalt lesing
- TestProject Test Automation Tool Hands-on Review Tutorial
- Python Introduksjon og installasjonsprosess
- Lag appiumtester for en Android-app
- Python-opplæring for nybegynnere (praktisk GRATIS Python-trening)
- Kjøre appiumtestene parallelt med Appium Studio for Eclipse
- Opprette epoketester ved hjelp av epoker Studio for Eclipse
- Hvordan kjøre storskala gjennomføring av appiumtester parallelt
- Integrer deg i IDE for å kjøre appiumtestene dine