testproject python sdk tutorial
TestProject Python SDK Tutorial: potenzia i tuoi test esistenti basati su selenio e appiumQuesto tutorial ti aiuterà a iniziare con TestProject Python SDK. Impara a installare, configurare e utilizzare le funzionalità più potenti di SDK:
Selenium e Appium sono da anni tra i framework di test open source più popolari per browser desktop e test basati su dispositivi mobili.
Il TestProject Python SDK si basa su questi strumenti e ti forniscono la potenza della piattaforma TestProject, offrendoti splendidi report HTML e PDF sulle loro piattaforme di report, rilevamento automatico del browser, configurazione del driver e molto altro.
E la cosa migliore è che l'utilizzo della piattaforma TestProject e dell'SDK è totalmente gratuito, per sempre. Anche l'SDK è open-source, quindi se vuoi contribuire al progetto, puoi!
Cosa imparerai:
Cos'è TestProject Python SDK?
In questo tutorial, vedrai come iniziare con TestProject Python SDK, come sfruttare la piattaforma TestProject con i tuoi test esistenti basati su Selenium e Appium, nonché come utilizzare alcune delle funzionalità più potenti dell'SDK.
Nota : I tuoi test sono scritti in un linguaggio diverso da Python? Non c'è bisogno di preoccuparsi, TestProject offre SDK anche per Java e C #, con altri linguaggi in arrivo nel prossimo futuro.
Installazione e configurazione
=> Visita questa pagina per l'iscrizione gratuita a TestProjectPython SDK è disponibile su PyPI , l'indice del pacchetto Python. Qui, supponiamo che tu abbia un'installazione Python funzionante, tutto ciò che devi fare è installare l'SDK e per questo, devi eseguire il seguente comando:
pip install testproject-python-sdk
Questo installerà l'SDK e le sue dipendenze richieste, inclusi Selenium e il client Python Appium.
Prima di poter iniziare a utilizzare l'SDK, dobbiamo fare altre due cose.
# 1) Installa e configura l'agente TestProject sulla tua macchina:
L'agente TestProject è responsabile dell'installazione e della configurazione del driver del browser, nonché dell'invio dei rapporti generati dall'SDK alla piattaforma TestProject.
Dopo aver creato un account su TestProject piattaforma (di nuovo, questo è gratuito), puoi scaricare il tuo agente.
Dopo il download, sarà necessario installarlo e avviarlo. Per impostazione predefinita, l'agente viene eseguito http: // localhost: 8585. Se desideri eseguire l'agente su una porta diversa o anche su una macchina completamente diversa, non c'è problema. In questo caso, tutto ciò che devi fare è specificare l'indirizzo dell'agente corretto in una variabile di ambiente TP_AGENT_URL per far sapere all'SDK dove è in esecuzione.
# 2) Ottieni e configura un token per sviluppatori:
Per comunicare con l'agente, avrai bisogno anche di un token sviluppatore. Dopo aver installato l'agente, è possibile ottenere il token di sviluppo dal sito della piattaforma TestProject come mostrato nell'immagine seguente.
Specifica il tuo token sviluppatore in una variabile d'ambiente TP_DEV_TOKEN per renderlo consapevole dell'SDK. In alternativa, puoi specificarlo come argomento quando crei una nuova sessione del driver, come vedremo tra poco.
Dopo aver scaricato l'SDK, installato, configurato e avviato l'agente, ottenuto e configurato il token per sviluppatori, sei pronto per iniziare.
Creazione del nostro primo test al selenio basato su progetto
Supponiamo di avere un test basato sul selenio che naviga all'app web dimostrativa TestProject. Fornisce le credenziali di accesso e controlla che siamo stati accolti per indicare che l'azione di accesso è stata completata con successo. Supponiamo inoltre di utilizzare il framework di unit test Pytest per eseguire questo test ed eseguire le asserzioni.
Un tale test potrebbe essere simile a questo:
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'esempio sopra utilizza Chrome come browser. Oltre a Chrome, l'SDK supporta anche i seguenti browser desktop:
- Firefox
- Bordo
- Internet Explorer
- Safari
Per questo esempio, non abbiamo utilizzato nessuno dei modelli di astrazione comuni nei test basati sul selenio, come gli oggetti pagina, ma se li usi, non è affatto un problema. In effetti, lo consigliamo, poiché crea una netta separazione tra il flusso di test (azioni, dati di test) e i dettagli di implementazione delle pagine Web (localizzatori di elementi).
Dopo il completamento di tutti i passaggi di installazione e configurazione mostrati sopra, tutto ciò che devi fare per trasformare questo test in un test basato su TestProject è sostituire l'istruzione import come spiegato di seguito.
from selenium import webdriver
Relace con questo:
from src.testproject.sdk.drivers import webdriver
Questo è tutto! Una volta eseguito il test ora, l'SDK richiederà un'istanza del driver dall'agente TestProject e la utilizzerà per eseguire il test. Inoltre invierà le istruzioni per i rapporti alla piattaforma TestProject, che verranno poi utilizzate per creare rapporti HTML. Diamo un'occhiata a quelli!
Ispezione dei rapporti sulla piattaforma TestProject
Andando al TestProject e selezionando le opzioni 'Rapporti' dal menu, puoi vedere che è stato creato un nuovo rapporto per il test che abbiamo appena eseguito. Fare riferimento all'immagine sottostante.
come testare manualmente i servizi web
Come puoi vedere, l'SDK ha dedotto automaticamente un nome di progetto ( software_testing_help ), un nome di lavoro ( esempi ) e un nome di prova ( test_login_to_testproject_example_app ) e li ha utilizzati durante la creazione del report. Questo è supportato sia per Pytest che per Unittest, nonché per i test che non vengono eseguiti utilizzando un framework di unit test dedicato.
Vedremo come specificare i nomi personalizzati del progetto, del lavoro e del test, nonché una serie di altre utili opzioni di reporting nella sezione successiva.
Tutti i comandi del conducente che sono stati eseguiti durante il test vengono aggiunti automaticamente al report, insieme al loro risultato. TestProject genera anche panoramiche e dashboard fuori dagli schemi.
Opzioni di personalizzazione dei rapporti con TestProject
Sebbene TestProject generi report completi e utilizzabili fuori dagli schemi, ci sono molti modi in cui puoi personalizzarli per adattarli ancora meglio alle tue esigenze di informazione.
Come abbiamo visto nell'esempio precedente, TestProject è in grado di dedurre automaticamente i nomi di progetti, lavori e test per i framework di unit test Python più popolari. Tuttavia, se desideri utilizzare nomi personalizzati nei tuoi rapporti, puoi farlo anche in due modi diversi.
# 1) Usare un decoratore
TestProject SDK include anche un file @rapporto decoratore che puoi usare per decorare i tuoi metodi di prova e che puoi usare per specificare i nomi di progetto, lavoro e test personalizzati come mostrato di seguito:
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
Quando eseguiamo questo metodo di test decorato e ispezioniamo i rapporti, possiamo vedere che i nomi specificati sono stati utilizzati nel rapporto generato, invece di quelli dedotti automaticamente.
# 2) Specificare i nomi del progetto e del lavoro nel costruttore del driver e riportare manualmente un test:
I nomi del progetto e del lavoro possono anche essere sovrascritti specificandoli nel costruttore dell'oggetto driver. Questo può essere fatto come segue:
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
Se desideri sovrascrivere il nome del test dedotto automaticamente, puoi segnalare un test manualmente alla fine del test, in questo modo:
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()
Se scegli di utilizzare l'opzione di segnalazione manuale, dovresti disabilitare la segnalazione automatica dei test (abilitata per impostazione predefinita), per assicurarti che i test non vengano segnalati due volte, il che danneggerebbe il tuo rapporto e le dashboard.
È possibile disabilitare il reporting automatico utilizzando il seguente comando:
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
In questo modo il rapporto avrà esattamente lo stesso aspetto dell'ultimo screenshot qui sopra.
# 3) Disattivazione della segnalazione dei comandi del driver
Se non desideri che il tuo rapporto contenga ogni singolo comando del conducente che è stato eseguito durante il test, puoi disabilitarne il rapporto automatico in questo modo:
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
Puoi anche riattivare la segnalazione dei comandi del driver più avanti nei tuoi test chiamando di nuovo lo stesso metodo ma con l'argomento disabled = False.
Se vuoi comunque segnalare alcuni passaggi intermedi durante il test, puoi farlo anche tu:
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
Come puoi vedere, puoi persino aggiungere screenshot ai passaggi del rapporto personalizzato. Questi verranno integrati automaticamente nel report HTML sulla piattaforma TestProject.
TestProject SDK offre più opzioni per personalizzare ulteriormente i rapporti. Consulta la documentazione ufficiale sul sito Web di TestProject, GitHub o PyPI per una panoramica completa.
Esecuzione di test basati su Appium utilizzando TestProject
Oltre ai test basati sul selenio, TestProject SDK può anche eseguire test su dispositivi mobili utilizzando Appium. Considera questo esempio, in esecuzione su un'app Android nativa su un emulatore:
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 utilizzare la potenza della piattaforma TestProject qui, ancora una volta, dobbiamo solo cambiare
from appium import webdriver
Per:
from src.testproject.sdk.drivers import webdriver
E siamo a posto. L'agente TestProject funge anche da server Appium, quindi non è più necessario eseguirlo da soli sulla macchina che esegue i test.
Tutte le funzionalità di reporting sopra descritte sono disponibili anche per i test basati su Appium.
SDK supporta l'esecuzione di test mobili:
- Per Android e iOS.
- Sugli emulatori e sui dispositivi reali.
- Su app native e browser mobili
Esempi di tutti questi possono essere trovati nel repository di codice SDK su GitHub.
Conclusione
Come hai visto in questo tutorial, TestProject Python SDK può aiutarti a potenziare i tuoi test esistenti basati su Selenium e Appium eliminando le faccende di configurazione dei driver del browser e del server Appium, e genera ottimi report HTML e dashboard per te su la piattaforma TestProject.
La cosa migliore è che TestProject Python SDK è assolutamente gratuito.
=> Vai a TestProject per provarlo di persona !
Chi l'Autore: Bas Dijkstra
L'autore insegna alle aziende di tutto il mondo come migliorare i propri sforzi di test attraverso l'automazione dei test. È un formatore, consulente e sviluppatore indipendente che vive nei Paesi Bassi. Nel tempo libero gli piace fare un giro in bicicletta, andare a correre o leggere un buon libro.
Lettura consigliata
- Tutorial pratico di revisione dello strumento di automazione del test TestProject
- Introduzione a Python e processo di installazione
- Crea test Appium per un'app Android
- Tutorial Python per principianti (formazione pratica GRATUITA su Python)
- Esecuzione dei test di Appium in parallelo utilizzando Appium Studio per Eclipse
- Creazione di test di epoche utilizzando epochs Studio for Eclipse
- Come eseguire l'esecuzione su larga scala di test Appium in parallelo
- Integralo nel tuo IDE per eseguire i tuoi test Appium