testproject python sdk tutorial
Tutorial de TestProject Python SDK: recarregueu les proves existents basades en seleni i AppiumAquest tutorial us ajudarà a començar amb TestProject Python SDK. Apreneu a instal·lar, configurar i utilitzar les funcions més potents de l'SDK:
Selenium i Appium han estat durant anys els marcs de proves de codi obert més populars per a navegadors d’escriptori i proves basades en mòbils.
El TestProject Python SDK es basa en aquestes eines i us proporcionen la potència de la plataforma TestProject, que us proporciona bells informes HTML i PDF a les seves plataformes d’informació, detecció automàtica del navegador, configuració del controlador i molt més.
I el millor és que l’ús de la plataforma TestProject i l’SDK és totalment gratuït, per sempre. L'SDK també és de codi obert, així que si voleu contribuir al projecte, podeu fer-ho!
Què aprendreu:
Què és TestProject Python SDK?
En aquest tutorial, veureu com començar amb l’SDK TestProject Python, com aprofitar la plataforma TestProject amb les proves existents basades en Selenium i Appium, així com com utilitzar algunes de les funcions més potents de l’SDK.
Nota : Les proves estan escrites en un idioma diferent de Python? No us preocupeu, TestProject també ofereix SDK per a Java i C #, amb més idiomes en un futur proper.
Instal·lació i configuració
=> Visiteu aquesta pàgina per registrar-vos gratuïtament a TestProjectPython SDK està disponible a PyPI , l'índex de paquets Python. Aquí, suposem que teniu una instal·lació de Python en funcionament, tot el que heu de fer és instal·lar l'SDK i, per a això, heu de executeu l'ordre següent:
pip install testproject-python-sdk
Això instal·larà l'SDK i les seves dependències necessàries, inclosos Selenium i el client Python Appium.
Abans de començar a utilitzar l’SDK, hem de fer dues coses més.
# 1) Instal·leu i configureu l'agent TestProject al vostre equip:
L'agent TestProject és responsable de la instal·lació i configuració del controlador del navegador, així com de l'enviament d'informes generats per l'SDK a la plataforma TestProject.
Després de crear un compte a Projecte de prova plataforma (de nou, això és gratuït), podeu descarregar el vostre agent.
Després de descarregar-lo, haureu d’instal·lar-lo i iniciar-lo. Per defecte, l'agent s'executa http: // localhost: 8585. Si voleu executar l'agent en un port diferent o fins i tot en una màquina completament diferent, no és cap problema. En aquest cas, tot el que heu de fer és especificar l'adreça de l'agent correcta en una variable d'entorn TP_AGENT_URL per fer saber a l’SDK on s’executa.
# 2) Obteniu i configureu un testimoni de desenvolupador:
Per comunicar-vos amb l'agent, també necessitareu un testimoni de desenvolupador. Després d’instal·lar l’agent, podeu obtenir el vostre testimoni de desenvolupament des del lloc de la plataforma TestProject, tal com es mostra a la imatge següent.
Especifiqueu el vostre testimoni de desenvolupador en una variable d'entorn TP_DEV_TOKEN perquè l’SDK en tingui coneixement. Com a alternativa, podeu especificar-ho com a argument quan creeu una nova sessió de controladors, ja que ho veurem en una mica.
Després de descarregar l’SDK, instal·lar, configurar i iniciar l’agent, obtenir i configurar el vostre testimoni de desenvolupador, ja podreu començar.
Creació de la nostra primera prova Prova de seleni impulsada per projectes
Suposem que tenim una prova basada en seleni que navega fins a l'aplicació web de demostració TestProject. Proporciona credencials d'inici de sessió i comprova que se'ns rebi per indicar que l'acció d'inici de sessió s'ha completat correctament. Suposem també que fem servir el marc de proves d’unitats de Pytest per executar aquesta prova i executar les afirmacions.
Aquesta prova pot semblar així:
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()
L'exemple anterior utilitza Chrome com a navegador. A més de Chrome, l'SDK també admet els navegadors d'escriptori següents:
- Firefox
- Edge
- Internet Explorer
- Safari
Per a aquest exemple, no hem utilitzat cap dels patrons d’abstracció que són habituals a les proves basades en seleni, com ara Objectes de pàgina, però si els feu servir, això no suposa cap problema. De fet, ho recomanem, ja que es crea una clara separació entre el flux de prova (accions, dades de prova) i els detalls d’implementació de les seves pàgines web (localitzadors d’elements).
Després de completar tots els passos d’instal·lació i configuració que es mostren anteriorment, tot el que heu de fer per convertir aquesta prova en una prova basada en TestProject és substituir la declaració d’importació tal com s’explica a continuació.
from selenium import webdriver
Relaceu amb aquest:
from src.testproject.sdk.drivers import webdriver
Això és! Un cop hàgiu executat la prova ara, l'SDK sol·licitarà una instància del controlador a l'agent TestProject i la farà servir per executar la prova. També enviarà instruccions d'informes a la plataforma TestProject, que després s'utilitzaran per crear informes HTML. Vegem-ne!
Inspecció d'informes a la plataforma TestProject
Anant al TestProject i seleccionant les opcions «Informes» del menú, podeu veure que s’ha creat un informe nou per a la prova que acabem d’executar. Consulteu la imatge següent.
què és una variable doble a Java
Com podeu veure, l’SDK ha inferit automàticament un nom de projecte ( software_testing_help ), un nom de treball ( exemples ), i un nom de prova ( inici de sessió_per_provar_projecte_exemple_aplicació ) i els va utilitzar en crear l'informe. Això s'admet tant a Pytest com a Unittest, així com a les proves que no s'executen mitjançant un marc de proves d'unitats dedicat.
Veurem com especificar els noms personalitzats del projecte, del treball i de la prova, així com una sèrie d’altres opcions d’informes útils a la secció següent.
Totes les ordres del controlador que s'han executat durant la prova s'afegeixen automàticament a l'informe, juntament amb el seu resultat. TestProject també genera visions generals i taulers fora de la caixa.
Informes d'opcions de personalització amb TestProject
Tot i que TestProject genera informes rics i fàcils d’utilitzar, hi ha diverses maneres de personalitzar-los perquè s’adaptin millor als vostres requisits d’informació.
Com hem vist a l'exemple anterior, TestProject és capaç d'inferir automàticament noms de projectes, treballs i proves per als marcs de proves d'unitat Python més populars. Tanmateix, si voleu utilitzar noms personalitzats als vostres informes, també es pot fer de dues maneres diferents.
# 1) Utilitzar un decorador
L'SDK TestProject també inclou un fitxer @informe decorador que podeu utilitzar per decorar els vostres mètodes de prova i que podeu utilitzar especifiqueu el nom personalitzat del projecte, el treball i la prova com es mostra a continuació:
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
Quan executem aquest mètode de prova decorat i inspeccionem els informes, podem veure que els noms especificats s’han utilitzat a l’informe generat, en lloc dels inferits automàticament.
# 2) Especificar els noms del projecte i de la feina al constructor del controlador i informar manualment d'una prova:
Els noms de projectes i treballs també es poden anul·lar especificant-los al constructor de l'objecte controlador. Això es pot fer de la següent manera:
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
Si voleu anul·lar el nom de la prova inferida automàticament, podeu informar-la manualment al final de la prova, de la manera següent:
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()
Si decidiu utilitzar l'opció d'informes manuals, heu de desactivar l'informe automàtic de proves (que està activat de manera predeterminada), per assegurar-vos que les proves no s'informin dues vegades, cosa que corrompria l'informe i els taulers.
Podeu desactivar els informes automàtics mitjançant l'ordre següent:
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
Això farà que l'informe sembli exactament el mateix que l'última captura de pantalla anterior.
# 3) Desactivació de l'informe de comandes del controlador
Si no voleu que l'informe contingui totes les ordres de controlador individuals que s'han executat durant la prova, podeu desactivar-ne l'informe automàtic:
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
També podeu tornar a habilitar els informes d’ordres del controlador més endavant a les proves tornant a trucar al mateix mètode però amb l’argument desactivat = False.
Si encara voleu informar d'alguns passos intermedis durant la prova, també podeu fer-ho:
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
Com podeu veure, fins i tot podeu afegir captures de pantalla als passos de l'informe personalitzat. Aquests s'integraran automàticament a l'informe HTML de la plataforma TestProject.
L'SDK TestProject ofereix més opcions per personalitzar encara més els vostres informes. Consulteu la documentació oficial al lloc web TestProject, GitHub o PyPI per obtenir una visió general completa.
Execució de proves basades en Appium mitjançant TestProject
Al costat de les proves basades en seleni, el SDP TestProject també pot executar proves en dispositius mòbils mitjançant Appium. Penseu en aquest exemple: executeu una aplicació nativa d'Android en un emulador:
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()
Per utilitzar la potència de la plataforma TestProject aquí, de nou, només hem de canviar
from appium import webdriver
Per a:
from src.testproject.sdk.drivers import webdriver
I estem bé per anar-hi. L’agent TestProject també actua com a servidor Appium, de manera que ja no cal executar-ho a la màquina que executa les proves.
Totes les funcions d'informes descrites anteriorment també estan disponibles per a proves basades en Appium.
L'SDK admet l'execució de proves per a mòbils:
- Per a Android i iOS.
- En emuladors, així com en dispositius reals.
- En aplicacions natives, així com en navegadors mòbils
Es poden trobar exemples de tot això al dipòsit de codis SDK de GitHub.
Conclusió
Com heu vist en aquest tutorial, l'SDK TestProject Python us pot ajudar a sobrecarregar les proves existents basades en Selenium i Appium, eliminant les tasques de configuració dels controladors del navegador i del servidor Appium i us genera informes i taulers HTML excel·lents la plataforma TestProject.
El millor de tot és que l’SDK TestProject Python és absolutament gratuït.
=> Aneu cap a TestProject per provar-ho vosaltres mateixos !
Sobre l'autor: Bas Dijkstra
L’autor ensenya a empreses de tot el món a millorar els esforços de prova mitjançant l’automatització de proves. És formador, consultor i desenvolupador independent que viu als Països Baixos. En el seu temps lliure, li agrada agafar la bicicleta, anar a córrer o llegir un bon llibre.
Lectura recomanada
- Tutorial de revisió pràctica de l'eina d'automatització de proves TestProject
- Introducció i procés d’instal·lació de Python
- Creeu proves Appium per a una aplicació d'Android
- Tutorial Python per a principiants (entrenament pràctic GRATU PyT en Python)
- Execució de les proves d'Appium en paral·lel mitjançant Appium Studio per a Eclipse
- Creació de proves d’època mitjançant epochs Studio for Eclipse
- Com executar l'execució a gran escala de proves Appium en paral·lel
- Integreu-vos al vostre IDE per executar les proves d’Appium