testproject python sdk tutorial
Výukový program pro sadu TestProject Python SDK: Nabijte své stávající testy na selenu a na AppiuTento kurz vám pomůže začít s TestProject Python SDK. Naučte se instalovat, konfigurovat a používat nejmocnější funkce sady SDK:
Selen a Appium patří už roky k nejpopulárnějším testovacím frameworkům open-source pro desktopové prohlížeče a testování na mobilních zařízeních.
The TestProject Python SDK staví na těchto nástrojích a poskytuje vám sílu platformy TestProject, která vám poskytuje krásné zprávy HTML a PDF na jejich platformách pro podávání zpráv, automatickou detekci prohlížeče, konfiguraci ovladačů a mnoho dalšího.
A nejlepší na tom je, že používání platformy TestProject a SDK je zcela zdarma, navždy. SDK je také open-source, takže pokud chcete do projektu přispět, můžete!
Co se naučíte:
Co je TestProject Python SDK?
V tomto kurzu uvidíte, jak začít s TestProject Python SDK, jak využít platformu TestProject s vašimi stávajícími testy založenými na selenu a Appiu a jak používat některé z nejsilnějších funkcí SDK.
Poznámka : Jsou vaše testy napsány v jiném jazyce než Python? Není třeba se obávat, TestProject nabízí také SDK pro Javu a C #, v blízké budoucnosti se chystají další jazyky.
Instalace a konfigurace
=> Navštivte tuto stránku a bezplatně se zaregistrujte do TestProjectPython SDK je k dispozici na PyPI index balíčků Pythonu. Zde předpokládáme, že máte funkční instalaci Pythonu, vše, co musíte udělat, je nainstalovat SDK a za to musíte spusťte následující příkaz:
pip install testproject-python-sdk
Tím se nainstaluje SDK a jeho požadované závislosti, včetně Selenium a klienta Python Appium.
Než můžeme začít používat SDK, musíme udělat ještě dvě věci.
# 1) Nainstalujte a nakonfigurujte agenta TestProject na svém počítači:
Agent TestProject je zodpovědný za instalaci a konfiguraci ovladače prohlížeče a také za odesílání sestav generovaných sadou SDK na platformu TestProject.
Po vytvoření účtu na webu Testovací projekt platforma (opět je to zdarma), můžete si stáhnout svého agenta.
Po stažení budete muset nainstalovat a spustit. Ve výchozím nastavení je Agent spuštěn http: // localhost: 8585. Pokud chcete spustit agenta na jiném portu nebo dokonce na úplně jiném počítači, není to žádný problém. V tomto případě vše, co musíte udělat, je zadat správnou adresu agenta v proměnné prostředí TP_AGENT_URL dát SDK vědět, kde běží.
# 2) Získejte a nakonfigurujte vývojářský token:
Ke komunikaci s agentem budete potřebovat také vývojářský token. Po instalaci agenta můžete získat svůj vývojový token z webu platformy TestProject, jak je znázorněno na obrázku níže.
Zadejte svůj vývojářský token v proměnné prostředí TP_DEV_TOKEN aby si to SDK uvědomila. Alternativně jej můžete zadat jako argument při vytváření nové relace ovladače, jak to trochu uvidíme.
Poté, co jste si stáhli sadu SDK, nainstalovali, nakonfigurovali a spustili agenta, získali a nakonfigurovali token vývojáře, jste připraveni jít.
Vytváříme náš první test selenu poháněný projektem
Předpokládejme, že máme test založený na selenu, který přechází na ukázkovou webovou aplikaci TestProject. Poskytuje přihlašovací údaje a kontroluje, zda jsme uvítáni, což naznačuje, že akce přihlášení byla úspěšně dokončena. Předpokládejme také, že k provedení tohoto testu a provedení tvrzení používáme rámec testování jednotek Pytest.
Takový test může vypadat asi takto:
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()
Výše uvedený příklad používá Chrome jako prohlížeč. Kromě prohlížeče Chrome podporuje SDK také následující prohlížeče pro stolní počítače:
- Firefox
- Okraj
- internet Explorer
- Safari
V tomto příkladu jsme nepoužili žádný z abstrakčních vzorů, které jsou běžné v testech založených na selenu, jako jsou například Page Objects, ale pokud je použijete, není to vůbec žádný problém. Ve skutečnosti to doporučujeme, protože to vytváří jasné oddělení mezi vaším testovacím tokem (akce, testovací data) a implementačními detaily vašich webových stránek (vyhledávače prvků).
Po dokončení všech kroků instalace a konfigurace uvedených výše, vše, co musíte udělat, aby se tento test stal testem založeným na TestProject, je nahradit prohlášení o importu, jak je vysvětleno níže.
from selenium import webdriver
Nahraďte tímto:
from src.testproject.sdk.drivers import webdriver
A je to! Jakmile nyní spustíte test, SDK si vyžádá instanci ovladače od Agenta TestProject a použije jej k provedení testu. Bude také posílat pokyny k podávání zpráv na platformu TestProject, které se pak použijí k vytvoření zpráv HTML. Pojďme se na ně podívat!
Kontrola zpráv na platformě TestProject
Přejít na TestProject a výběrem možnosti „Zprávy“ z nabídky uvidíte, že pro test, který jsme právě spustili, byla vytvořena nová zpráva. Viz obrázek níže.
b-strom vs b + strom
Jak vidíte, SDK automaticky odvodila název projektu ( software_testing_help ), název úlohy ( příklady ) a název testu ( test_login_to_testproject_example_app ) a použili je při vytváření sestavy. To je podporováno jak pro Pytest, tak pro Unittest, stejně jako pro testy, které se nespouštějí pomocí vyhrazeného rámce testování jednotek.
V další části uvidíme, jak specifikovat přizpůsobené názvy projektů, úloh a testů, a také řadu dalších užitečných možností vytváření přehledů.
Všechny příkazy ovladače, které byly provedeny během testu, jsou automaticky přidány do zprávy spolu s jejich výsledkem. TestProject také generuje přehledy a řídicí panely ihned po vybalení z krabice.
Možnosti přizpůsobení hlášení pomocí TestProject
Zatímco TestProject generuje bohaté a použitelné zprávy ihned po vybalení, existuje řada způsobů, jak je můžete přizpůsobit, aby ještě lépe vyhovovaly vašim požadavkům na informace.
Jak jsme viděli v předchozím příkladu, TestProject je schopen automaticky odvodit názvy projektů, úloh a testů pro nejpopulárnější rámce pro testování jednotek Pythonu. Chcete-li však ve svých přehledech použít vlastní názvy, lze to provést také dvěma různými způsoby.
# 1) Použití dekoratéra
Sada TestProject SDK také obsahuje a @zpráva dekorátor, kterým můžete ozdobit své testovací metody a na který můžete použít zadejte vlastní název projektu, úlohy a testu, jak je uvedeno níže:
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
Když spustíme tuto dekorovanou testovací metodu a zkontrolujeme sestavy, můžeme vidět, že v generované sestavě byly použity zadané názvy, místo automaticky odvozených.
# 2) Určení názvu projektu a úlohy v konstruktoru ovladače a ruční hlášení testu:
Názvy projektů a úloh lze také přepsat zadáním v konstruktoru objektu ovladače. To lze provést následovně:
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
Pokud chcete přepsat automaticky odvozený název testu, můžete test na konci testu nahlásit ručně, například takto:
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()
Pokud se rozhodnete použít možnost ručního hlášení, měli byste deaktivovat automatické hlášení testů (které je ve výchozím nastavení povoleno), abyste zajistili, že testy nebudou hlášeny dvakrát, což by poškodilo vaši zprávu a řídicí panely.
Automatické hlášení můžete deaktivovat pomocí následujícího příkazu:
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
Díky tomu bude sestava vypadat přesně stejně jako poslední snímek obrazovky výše.
# 3) Zakázání hlášení příkazů ovladače
Pokud nechcete, aby vaše sestava obsahovala všechny jednotlivé příkazy ovladače, které byly provedeny během testu, můžete jejich automatické hlášení deaktivovat takto:
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
Můžete také znovu povolit hlášení příkazů ovladače později v testech voláním stejné metody znovu, ale s argumentem disabled = False.
Pokud přesto chcete během testu nahlásit některé mezikroky, můžete to udělat také:
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
Jak vidíte, můžete dokonce přidat snímky obrazovky do vlastních kroků přehledu. Ty budou automaticky integrovány do sestavy HTML na platformě TestProject.
Sada TestProject SDK nabízí více možností k dalšímu přizpůsobení vašich sestav. Úplný přehled najdete v oficiální dokumentaci na webu TestProject, GitHub nebo PyPI.
Spuštění testů založených na Appium pomocí TestProject
Vedle testů založených na selenu může TestProject SDK také spouštět testy na mobilních zařízeních pomocí Appium. Zvažte tento příklad, běh proti nativní aplikaci pro Android na emulátoru:
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()
Chcete-li zde využít sílu platformy TestProject, musíme se jen změnit
from appium import webdriver
Na:
from src.testproject.sdk.drivers import webdriver
A je dobré jít. Agent TestProject funguje také jako server Appium, takže již není třeba jej spouštět sami na počítači, na kterém běží vaše testy.
Všechny výše popsané funkce vytváření sestav jsou také k dispozici pro testy založené na Appium.
SDK podporuje spouštění mobilních testů:
- Pro Android i iOS.
- Na emulátorech i na skutečných zařízeních.
- V nativních aplikacích i v mobilních prohlížečích
Příklady všech těchto najdete v úložišti kódu SDK na GitHubu.
Závěr
Jak jste viděli v tomto výukovém programu, sada TestProject Python SDK vám pomůže přeplnit vaše stávající testy založené na selenu a Appiu tím, že vás zbaví práce s konfigurací ovladačů vašeho prohlížeče a serveru Appium a generuje pro vás skvělé zprávy a řídicí panel HTML platformu TestProject.
Nejlepší ze všeho je, že TestProject Python SDK je zcela zdarma.
=> Přesuňte se na TestProject a vyzkoušejte si to sami !
O autorovi: Bas Dijkstra
Autor učí společnosti z celého světa, jak zlepšit své testovací úsilí pomocí automatizace testů. Je nezávislým trenérem, konzultantem a vývojářem žijícím v Nizozemsku. Ve volném čase se rád vezme na kole, zajezdí si nebo si přečte dobrou knihu.
Doporučené čtení
- Výukový program pro praktickou kontrolu nástroje Test Automation Test
- Proces zavedení a instalace Pythonu
- Vytvořte testy Appium pro aplikaci pro Android
- Výukový program pro Python pro začátečníky (praktické školení v Pythonu ZDARMA)
- Spouštění testů Appium paralelně pomocí Appium Studio pro Eclipse
- Vytváření testů epoch pomocí epoch Studio pro Eclipse
- Jak paralelně provádět rozsáhlé provádění testů Appium
- Integrujte se do svého IDE a spusťte testy Appium