testproject python sdk tutorial
TestProject Python SDK-tutorial: Overlad dine eksisterende selen- og appiumbaserede testsDenne vejledning hjælper dig med at komme i gang med TestProject Python SDK. Lær at installere, konfigurere og bruge SDKs mest kraftfulde funktioner:
Selen og Appium har været blandt de mest populære open source-testrammer til desktop-browsere og mobilbaseret test i årevis.
Det TestProject Python SDK bygger på disse værktøjer, og de giver dig styrken fra TestProject-platformen, hvilket giver dig smukke HTML- og PDF-rapporter på deres rapporteringsplatforme, automatisk browseropdagelse, driverkonfiguration og meget mere.
Og det bedste er, at det er gratis at bruge TestProject-platformen og SDK for evigt. SDK er også en open source, så hvis du vil bidrage til projektet, kan du!
Hvad du vil lære:
Hvad er TestProject Python SDK?
I denne vejledning vil du se, hvordan du kommer i gang med TestProject Python SDK, hvordan du udnytter TestProject-platformen med dine eksisterende Selen- og Appium-baserede tests samt hvordan du bruger nogle af SDK's mest kraftfulde funktioner.
Bemærk : Er dine prøver skrevet på et andet sprog end Python? Ingen grund til at bekymre sig, TestProject tilbyder også SDK'er til Java og C # med flere sprog, der kommer i den nærmeste fremtid.
Installation og konfiguration
=> Besøg denne side for gratis TestProject-tilmeldingPython SDK er tilgængelig på PyPI , Python-pakkeindekset. Her antager vi, at du har en fungerende Python-installation, alt hvad du skal gøre er at installere SDK og til det skal du kør følgende kommando:
pip install testproject-python-sdk
Dette installerer SDK og dens krævede afhængigheder, inklusive Selenium og Python Appium-klienten.
Før vi kan begynde at bruge SDK, skal vi gøre to ting til.
# 1) Installer og konfigurer TestProject Agent på din maskine:
TestProject Agent er ansvarlig for installation og konfiguration af browserdrivere samt for at sende rapporter genereret af SDK til TestProject-platformen.
Når du har oprettet en konto på TestProjekt platform (igen, dette er gratis), kan du downloade din agent.
Efter downloadet skal du installere og starte det. Som standard kører agenten videre http: // localhost: 8585. Hvis du vil køre agenten på en anden port eller endda på en helt anden maskine, er det ikke noget problem. I dette tilfælde er alt hvad du skal gøre, at angive den korrekte agentadresse i en miljøvariabel TP_AGENT_URL for at lade SDK vide, hvor den kører.
# 2) Få og konfigurer et udviklertoken:
For at kommunikere med agenten skal du også have et udviklertoken. Efter installation af agenten kan du få dit udviklingstoken fra TestProject-platformwebstedet som vist på billedet nedenfor.
Angiv dit udviklertoken i en miljøvariabel TP_DEV_TOKEN at gøre SDK opmærksom på det. Alternativt kan du angive det som et argument, når du opretter en ny driver-session, da vi ser det lidt.
Når du har downloadet SDK, installeret, konfigureret og startet agenten, fået og konfigureret dit udviklertoken, er du klar til at gå.
Oprettelse af vores første TestProjektdrevne Selen-test
Lad os antage, at vi har en Selen-baseret test, der navigerer til TestProject demo-webappen. Det giver loginoplysninger og kontrollerer, at vi hilses på for at indikere, at loginhandlingen er gennemført med succes. Lad os også antage, at vi bruger Pytest-enhedstestningsrammen til at køre denne test og udføre påstandene.
En sådan test kan se sådan ud:
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 bruger Chrome som en browser. Ud over Chrome understøtter SDK også følgende desktop-browsere:
- Firefox
- Edge
- Internet Explorer
- Safari
I dette eksempel har vi ikke brugt nogen af de abstraktionsmønstre, der er almindelige i Selen-baserede tests, f.eks. Sideobjekter, men hvis du bruger disse, er det slet ikke noget problem. Faktisk anbefaler vi det, da dette skaber en klar adskillelse mellem dit testflow (handlinger, testdata) og implementeringsoplysningerne på dine websider (element locators).
Efter afslutningen af alle ovenstående installations- og konfigurationstrin er alt hvad du skal gøre for at gøre denne test til en TestProject-drevet test er at erstatte importerklæringen som forklaret nedenfor.
from selenium import webdriver
Relace med denne:
from src.testproject.sdk.drivers import webdriver
Det er det! Når du har kørt testen nu, vil SDK anmode om en driverinstans fra TestProject Agent og bruge den til at udføre testen. Den sender også rapporteringsinstruktioner til TestProject-platformen, som derefter bruges til at oprette HTML-rapporter. Lad os se på dem!
Inspektion af rapporter på TestProject-platformen
Når du går til TestProject og vælger 'Rapporter' i menuen, kan du se, at der er oprettet en ny rapport til den test, vi lige har kørt. Se billedet nedenfor.
bedste gratis pop up blocker krom
Som du kan se, har SDK automatisk udledt et projektnavn ( software_testing_help ), et jobnavn ( eksempler ) og et testnavn ( test_login_to_testproject_example_app ) og brugte disse ved oprettelse af rapporten. Dette understøttes for både Pytest og Unittest samt for test, der ikke køres ved hjælp af en dedikeret enhedstestningsramme.
Vi ser, hvordan vi specificerer det tilpassede projekt-, job- og testnavne samt en række andre nyttige rapporteringsmuligheder i det næste afsnit.
Alle driverkommandoer, der er udført under testen, føjes automatisk til rapporten sammen med deres resultat. TestProject genererer også oversigter og dashboards ud af kassen.
Rapportering af tilpasningsindstillinger med TestProject
Mens TestProject genererer rige og brugbare rapporter uden for boksen, er der en række måder, hvorpå du kan tilpasse dem, så de passer bedre til dine informationskrav.
Som vi har set i det foregående eksempel, er TestProject i stand til automatisk at udlede projekt-, job- og testnavne til de mest populære Python-enhedstestrammer. Hvis du vil bruge brugerdefinerede navne i dine rapporter, kan det dog også gøres på to forskellige måder.
# 1) Brug af en dekoratør
TestProject SDK har også en @rapport dekoratør, som du kan bruge til at dekorere dine testmetoder, og som du kan bruge til angiv det tilpassede projekt-, job- og testnavne 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 kører denne dekorerede testmetode og inspicerer rapporterne, kan vi se, at de angivne navne er blevet brugt i den genererede rapport i stedet for de automatisk afledte.
# 2) Angivelse af projekt- og jobnavne i førerkonstruktøren og manuel rapportering af en test:
Projekt- og jobnavne kan også tilsidesættes ved at angive dem i konstruktøren af driverobjektet. Dette kan gø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 tilsidesætte det automatisk afledte testnavn, kan du rapportere en test manuelt i slutningen af testen på denne måde:
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 vælger at bruge den manuelle rapporteringsindstilling, skal du deaktivere automatisk rapportering af tests (som er aktiveret som standard) for at sikre, at test ikke rapporteres to gange, hvilket vil ødelægge din rapport og dashboards.
Du kan deaktivere automatisk rapportering ved hjælp af 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 at se nøjagtig den samme ud som det sidste skærmbillede ovenfor.
# 3) Deaktivering af rapportering af driverkommandoer
Hvis du ikke ønsker, at din rapport skal indeholde hver enkelt driverkommando, der blev udført under testen, kan du deaktivere den automatiske rapportering af dem på denne måde:
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å genaktivere driverkommandorapportering senere i dine tests ved at kalde den samme metode igen, men med argumentet deaktiveret = Falsk.
Hvis du stadig vil rapportere nogle mellemliggende trin under din test, kan du også gø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 endda tilføje skærmbilleder til dine tilpassede rapporttrin. Disse integreres automatisk i HTML-rapporten på TestProject-platformen.
TestProject SDK tilbyder flere muligheder for yderligere at tilpasse din rapportering. Se den officielle dokumentation på TestProject-webstedet, GitHub eller PyPI for et komplet overblik.
Kørsel af appiumbaserede tests ved hjælp af TestProject
Ved siden af Selen-baserede tests kan TestProject SDK også køre tests på mobile enheder ved hjælp af Appium. Overvej dette eksempel, der kører mod en indbygget 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 at bruge kraften fra TestProject-platformen her igen, vi behøver kun at ændre
from appium import webdriver
Til:
from src.testproject.sdk.drivers import webdriver
Og vi er klar til at gå. TestProject Agent fungerer også som Appium-serveren, så der er ikke mere behov for at køre det selv på den maskine, der kører dine test.
Alle rapporteringsfunktioner beskrevet ovenfor er også tilgængelige til Appium-baserede tests.
SDK understøtter kørsel af mobile tests:
- Til både Android og iOS.
- På emulatorer såvel som på ægte enheder.
- På native apps såvel som mobile browsere
Eksempler på alle disse findes i SDK-kodelageret på GitHub.
Konklusion
Som du har set i denne vejledning, kan TestProject Python SDK hjælpe dig med at overbelaste dine eksisterende Selen- og Appium-baserede tests ved at fjerne de opgaver, der er forbundet med at konfigurere dine browserdrivere og Appium-serveren, og det genererer gode HTML-rapporter og dashboard for dig TestProject-platformen.
Bedst af alt er TestProject Python SDK helt gratis.
=> Gå videre til TestProject for at prøve det selv !
Om forfatteren: Bas Dijkstra
Forfatteren lærer virksomheder over hele verden, hvordan de kan forbedre deres testindsats gennem testautomatisering. Han er en uafhængig træner, konsulent og udvikler, der bor i Holland. I sin fritid kan han godt lide at tage sin cykel på en tur, løbe eller læse en god bog.
Anbefalet læsning
- TestProject Test Automationsværktøj Praktisk gennemgangsvejledning
- Python introduktion og installationsproces
- Opret appiumtest til en Android-app
- Python-vejledning til begyndere (GRATIS GRATIS Python-træning)
- Kørsel af dine appiumtests parallelt ved hjælp af Appium Studio til Eclipse
- Oprettelse af epoketests ved hjælp af epoker Studio for Eclipse
- Sådan køres udførelse af appiumtest i stor skala parallelt
- Integrer i din IDE for at køre dine appiumtest