testproject python sdk tutorial
TestProject Python SDK-handledning: ladda dina befintliga selen- och appiumbaserade testerDenna handledning hjälper dig att komma igång med TestProject Python SDK. Lär dig att installera, konfigurera och använda SDK: s mest kraftfulla funktioner:
Selen och Appium har varit en av de mest populära testramarna för öppen källkod för stationära webbläsare och mobilbaserad testning i flera år.
De TestProject Python SDK bygger på dessa verktyg och de ger dig kraften i TestProject-plattformen, vilket ger dig vackra HTML- och PDF-rapporter på deras rapporteringsplattformar, automatisk webbläsardetektering, drivrutinkonfiguration och mycket mer.
Och det bästa är att använda TestProject-plattformen och SDK är helt gratis, för alltid. SDK är också en öppen källkod, så om du vill bidra till projektet kan du!
Vad du kommer att lära dig:
Vad är TestProject Python SDK?
I den här guiden kommer du att se hur du kommer igång med TestProject Python SDK, hur du använder TestProject-plattformen med dina befintliga Selen- och Appium-baserade tester, samt hur du använder några av SDK: s mest kraftfulla funktioner.
Notera : Är dina tester skrivna på ett annat språk än Python? Ingen anledning att oroa sig, TestProject erbjuder även SDK för Java och C #, med fler språk som kommer inom en snar framtid.
Installation och konfiguration
=> Besök den här sidan för gratis TestProject-registreringPython SDK finns på PyPI , Python-paketindex. Här antar vi att du har en fungerande Python-installation, allt du behöver göra är att installera SDK och för det måste du kör följande kommando:
pip install testproject-python-sdk
Detta kommer att installera SDK och dess beroenden, inklusive Selenium och Python Appium-klienten.
Innan vi kan börja använda SDK måste vi göra två saker till.
# 1) Installera och konfigurera TestProject Agent på din maskin:
TestProject Agent ansvarar för installation och konfiguration av webbläsardrivrutiner, samt för att skicka rapporter som genereras av SDK till TestProject-plattformen.
När du har skapat ett konto på TestProject plattform (igen, detta är gratis) kan du ladda ner din agent.
Efter nedladdningen måste du installera och starta den. Som standard körs agenten på http: // localhost: 8585. Om du vill köra agenten på en annan port eller till och med på en helt annan dator är det inget problem. I det här fallet är allt du behöver göra att ange rätt agentadress i en miljövariabel TP_AGENT_URL för att låta SDK veta var den körs.
# 2) Hämta och konfigurera en utvecklartoken:
För att kommunicera med agenten behöver du också en utvecklartoken. Efter att ha installerat agenten kan du få din utvecklingstoken från webbplatsen TestProject-plattform som visas i bilden nedan.
Ange din utvecklartoken i en miljövariabel TP_DEV_TOKEN för att göra SDK medveten om det. Alternativt kan du ange det som ett argument när du skapar en ny drivrutinssession, eftersom vi ser det här lite.
När du har laddat ner SDK: n, installerat, konfigurerat och startat agenten, fått och konfigurerat din utvecklartoken är du redo att gå.
Skapa vårt första TestProjektdrivna Selen-test
Låt oss anta att vi har ett Selen-baserat test som navigerar till TestProject-demo-webbappen. Det ger inloggningsuppgifter och kontrollerar att vi välkomnas för att indikera att inloggningsåtgärden har slutförts. Låt oss anta att vi använder Pytest-enhetens testramverk för att köra detta test och utföra påståendena.
Ett sådant test kan se ut så här:
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()
I exemplet ovan används Chrome som webbläsare. Förutom Chrome stöder SDK också följande stationära webbläsare:
- Firefox
- Kant
- Internet Explorer
- Safari
I det här exemplet har vi inte använt några av de abstraktionsmönster som är vanliga i Selen-baserade tester, till exempel sidobjekt, men om du använder dessa är det inget problem alls. I själva verket rekommenderar vi det, eftersom detta skapar en tydlig åtskillnad mellan ditt testflöde (åtgärder, testdata) och implementeringsinformationen för dina webbsidor (elementlokaliserare).
Efter att alla installations- och konfigurationsstegen som visas ovan har slutförts är allt du behöver göra för att göra detta test till ett testprojektdrivet test att ersätta importförklaringen enligt nedan.
from selenium import webdriver
Relace med den här:
from src.testproject.sdk.drivers import webdriver
Det är allt! När du har kört testet nu kommer SDK att begära en drivrutinsinstans från TestProject Agent och använda den för att utföra testet. Det kommer också att skicka rapporteringsinstruktioner till TestProject-plattformen, som sedan används för att skapa HTML-rapporter. Låt oss ta en titt på dessa!
Inspektera rapporter på TestProject-plattformen
Gå till TestProject och välj alternativet 'Rapporter' från menyn, du kan se att en ny rapport har skapats för det test vi just har kört. Se bilden nedan.
kön med pekare c ++
Som du kan se har SDK automatiskt härledt ett projektnamn ( software_testing_help ), ett jobbnamn ( exempel ) och ett testnamn ( test_login_to_testproject_example_app ) och använde dessa när du skapade rapporten. Detta stöds för både Pytest och Unittest, liksom för tester som inte körs med hjälp av ett särskilt ramverk för testning av enheter.
Vi kommer att se hur du anger det anpassade projekt-, jobb- och testnamnet, samt ett antal andra användbara rapporteringsalternativ i nästa avsnitt.
Alla förarkommandon som har utförts under testet läggs automatiskt till i rapporten, tillsammans med deras resultat. TestProject genererar också översikter och instrumentpaneler ur lådan.
Rapporteringsanpassningsalternativ med TestProject
Medan TestProject genererar rika och användbara rapporter direkt, finns det ett antal sätt på vilka du kan anpassa dem så att de passar dina informationskrav ännu bättre.
Som vi har sett i föregående exempel kan TestProject automatiskt härleda namn på projekt, jobb och test för de mest populära testramarna för Python-enheter. Om du vill använda anpassade namn i dina rapporter kan det också göras på två olika sätt.
# 1) Använda en dekoratör
TestProject SDK har också en @Rapportera dekoratör som du kan använda för att dekorera dina testmetoder och som du kan använda för ange anpassade projekt-, jobb- och testnamn enligt nedan:
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ör den dekorerade testmetoden och inspekterar rapporterna kan vi se att de angivna namnen har använts i den genererade rapporten istället för de automatiskt härledda.
# 2) Ange projekt- och jobbnamn i förarkonstruktören och rapportera ett test manuellt:
Projekt- och jobbnamn kan också åsidosättas genom att ange dem i konstruktören för förarobjektet. Detta kan göras enligt följande:
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
Om du vill åsidosätta det automatiskt härledda testnamnet kan du rapportera ett test manuellt i slutet av testet, så här:
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()
Om du väljer att använda alternativet manuell rapportering bör du inaktivera automatisk rapportering av tester (som är aktiverat som standard) för att säkerställa att tester inte rapporteras två gånger, vilket skulle skada din rapport och instrumentpaneler.
Du kan inaktivera automatisk rapportering med följande 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
Detta får rapporten att se exakt ut som den sista skärmdumpen ovan.
# 3) Inaktivera rapportering av drivarkommandon
Om du inte vill att din rapport ska innehålla varje enskilt drivarkommando som utfördes under testet kan du inaktivera den automatiska rapporteringen av dem så här:
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 också återaktivera rapportering av förarkommandon senare i dina tester genom att anropa samma metod igen men med argumentet inaktiverat = Falskt.
Om du fortfarande vill rapportera några mellansteg under testet kan du också göra 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 till och med lägga till skärmdumpar i dina anpassade rapportsteg. Dessa integreras automatiskt i HTML-rapporten på TestProject-plattformen.
TestProject SDK erbjuder fler alternativ för att ytterligare anpassa din rapportering. Se den officiella dokumentationen på TestProject-webbplatsen, GitHub eller PyPI för en fullständig översikt.
Köra appiumbaserade tester med TestProject
Bredvid Selen-baserade tester kan TestProject SDK också köra tester på mobila enheter med Appium. Tänk på det här exemplet, kör mot en inbyggd 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()
För att använda kraften från TestProject-plattformen här, igen, vi behöver bara förändras
from appium import webdriver
Till:
from src.testproject.sdk.drivers import webdriver
Och vi är klara. TestProject Agent fungerar också som Appium-servern, så det finns inget mer behov av att köra själv på maskinen som kör dina tester.
Alla rapporteringsfunktioner som beskrivs ovan är också tillgängliga för Appium-baserade tester.
SDK stöder körning av mobiltester:
- För både Android och iOS.
- På emulatorer såväl som på riktiga enheter.
- På inbyggda appar och mobilwebbläsare
Exempel på alla dessa finns i SDK-kodförvaret på GitHub.
Slutsats
Som du har sett i den här handledningen kan TestProject Python SDK hjälpa dig att överbelasta dina befintliga Selen- och Appium-baserade tester genom att ta bort sysslorna med att konfigurera dina webbläsardrivrutiner och Appium-servern, och det genererar bra HTML-rapporter och instrumentpanel för dig TestProject-plattformen.
Bäst av allt är att TestProject Python SDK är helt gratis.
=> Gå vidare till TestProject för att prova själv !
Om författaren: Bas Dijkstra
Författaren lär företag över hela världen hur man kan förbättra sina testansträngningar genom testautomatisering. Han är en oberoende tränare, konsult och utvecklare som bor i Nederländerna. På fritiden gillar han att cykla, åka eller läsa en bra bok.
Rekommenderad läsning
- TestProject Test Automation Tool Hands-on Review Tutorial
- Python introduktions- och installationsprocess
- Skapa appiumtest för en Android-app
- Python-handledning för nybörjare (praktisk Python-träning)
- Köra dina appiumtester parallellt med Appium Studio för Eclipse
- Skapa epoktester med epoker Studio för Eclipse
- Hur man kör storskalig utförande av appiumtester parallellt
- Integrera i din IDE för att köra dina appiumtester