most popular test automation frameworks with pros
Negli ultimi tutorial sul selenio, abbiamo discusso di vari comunemente e comunemente usati comandi in WebDriver , gestione di elementi web come tabelle web, frame e gestione delle eccezioni negli script di selenio.
Abbiamo discusso ciascuno di questi comandi con frammenti di codice di esempio ed esempi in modo da renderti in grado di utilizzare questi comandi in modo efficace ogni volta che ti trovi in situazioni simili. Tra i comandi che abbiamo discusso nel tutorial precedente, pochi di loro devono la massima importanza.
Man mano che procediamo con la serie Selenium, concentreremo la nostra attenzione su Creazione di framework di automazione nei prossimi tutorial in arrivo. Vorremmo anche fare luce su vari aspetti di un framework di automazione, tipi di framework di automazione, vantaggi dell'utilizzo di un framework e componenti di base che costituiscono un framework di automazione.
Cosa imparerai:
- Cos'è Framework?
- Test Automation Framework
- Tipi di framework di automazione del test
- # 1) Framework di test basato su moduli
- # 2) Framework di test per l'architettura della libreria
- # 3) Framework di test basato sui dati
- # 4) Framework di test basato su parole chiave
- # 5) Framework di test ibrido
- # 6) Framework di sviluppo guidato dal comportamento
- Conclusione
- Lettura consigliata
Cos'è Framework?
Un framework è considerato come una combinazione di protocolli stabiliti, regole, standard e linee guida che possono essere incorporati o seguiti nel loro insieme in modo da sfruttare i vantaggi dello scaffolding fornito dal Framework.
Consideriamo uno scenario di vita reale.
Molto spesso usiamo ascensori o ascensori. Ci sono alcune linee guida che sono menzionate all'interno dell'ascensore da seguire e curare in modo da sfruttare il massimo beneficio e un servizio prolungato dal sistema.
Pertanto, gli utenti potrebbero aver notato le seguenti linee guida:
- Controllare la capacità massima dell'ascensore e non salire su un ascensore se la capacità massima è stata raggiunta.
- Premere il pulsante di allarme in caso di emergenza o problema.
- Consentire al passeggero di scendere dall'ascensore, se presente, prima di entrare nell'ascensore e stare lontano dalle porte.
- In caso di incendio nell'edificio o in caso di situazioni accidentali, evitare l'uso dell'ascensore.
- Non giocare o saltare all'interno dell'ascensore.
- Non fumare all'interno dell'ascensore.
- Chiama aiuto / assistenza se la porta non si apre o se l'ascensore non funziona affatto. Non cercare di aprire le porte con forza.
Possono esserci molte più regole o serie di linee guida. Pertanto, queste linee guida, se seguite, rendono il sistema più vantaggioso, accessibile, scalabile e meno problematico per gli utenti.
Ora, poiché parliamo di 'Framework di automazione del test', spostiamo la nostra attenzione su di essi.
Test Automation Framework
Un 'Test Automation Framework' è uno scaffolding creato per fornire un ambiente di esecuzione per gli script di test di automazione. Il framework fornisce all'utente vari vantaggi che li aiutano a sviluppare, eseguire e segnalare gli script di test di automazione in modo efficiente. È più simile a un sistema creato appositamente per automatizzare i nostri test.
In un linguaggio molto semplice, possiamo dire che un framework è una miscela costruttiva di varie linee guida, standard di codifica, concetti, processi, pratiche, gerarchie di progetto, modularità, meccanismo di reporting, test iniezioni di dati ecc. Per pilotare l'automazione dei test. Pertanto, l'utente può seguire queste linee guida mentre automatizza l'applicazione per trarre vantaggio da vari risultati produttivi.
I vantaggi possono essere in diverse forme come la facilità di scripting, scalabilità, modularità, comprensibilità, definizione del processo, riutilizzabilità, costo, manutenzione ecc. Pertanto, per essere in grado di cogliere questi vantaggi, si consiglia agli sviluppatori di utilizzare uno o più dei il Test Automation Framework.
Inoltre, la necessità di un unico e standard Test Automation Framework nasce quando si hanno un gruppo di sviluppatori che lavorano sui diversi moduli della stessa applicazione e quando si vogliono evitare situazioni in cui ciascuno degli sviluppatori implementa il proprio approccio all'automazione.
Nota : Prendi nota che un framework di test è sempre indipendente dall'applicazione, ovvero può essere utilizzato con qualsiasi applicazione indipendentemente dalle complicazioni (come stack tecnologico, architettura, ecc.) Dell'applicazione sottoposta a test. Il framework dovrebbe essere scalabile e gestibile.
Vantaggio del framework di Test Automation
- Riusabilità del codice
- Massima copertura
- Scenario di recupero
- Manutenzione a basso costo
- Minimo intervento manuale
- Segnalazione facile
Tipi di framework di automazione del test
Ora che abbiamo un'idea di base di cosa sia un framework di automazione, in questa sezione vorremmo presentarti i vari tipi di framework di automazione di test disponibili sul mercato. Vorremmo anche provare a far luce sui loro pro e contro e sui consigli sull'usabilità.
Al giorno d'oggi è disponibile una gamma divergente di framework di automazione. Questi framework possono differire l'uno dall'altro in base al loro supporto a diversi fattori chiave per l'automazione come la riusabilità, la facilità di manutenzione ecc.
quanto costa il punto vendita quickbooks
Parliamo dei pochi framework di automazione del test più comunemente utilizzati:
- Framework di test basato su moduli
- Framework di test per l'architettura della libreria
- Framework di test basato sui dati
- Framework di test basato su parole chiave
- Framework di test ibrido
- Framework di sviluppo guidato dal comportamento
(clicca sull'immagine per visualizzarla ingrandita)
Cerchiamo di discutere ciascuno di essi in dettaglio.
Ma prima di ciò, vorrei anche menzionare che nonostante abbia questo framework, l'utente è sempre sfruttato per costruire e progettare il proprio framework che è più adatto alle sue esigenze di progetto.
# 1) Framework di test basato su moduli
Il framework di test basato su moduli si basa su uno dei concetti di OOP più conosciuti: l'astrazione. Il framework divide l'intera 'Application Under Test' in una serie di moduli logici e isolati. Per ogni modulo, creiamo uno script di test separato e indipendente. Pertanto, quando questi script di test sono stati presi insieme, crea uno script di test più grande che rappresenta più di un modulo.
Questi moduli sono separati da un livello di astrazione in modo tale che le modifiche apportate nelle sezioni dell'applicazione non producano effetti su questo modulo.
Professionisti:
- Il framework introduce l'elevato livello di modularizzazione che porta a una manutenzione più semplice ed economica.
- Il framework è praticamente scalabile
- Se le modifiche vengono implementate in una parte dell'applicazione, è necessario correggere solo lo script di test che rappresenta quella parte dell'applicazione per lasciare intatte tutte le altre parti.
Contro:
- Durante l'implementazione di script di test per ogni modulo separatamente, incorporiamo i dati di test (dati con i quali dovremmo eseguire il test) negli script di test. Pertanto, ogni volta che si suppone di eseguire il test con un diverso set di dati di test, è necessario che le manipolazioni vengano eseguite negli script di test.
# 2) Framework di test per l'architettura della libreria
Il Library Architecture Testing Framework è fondamentalmente e fondamentalmente costruito su Module Based Testing Framework con alcuni vantaggi aggiuntivi. Invece di dividere l'applicazione sotto test in script di test, separiamo l'applicazione in funzioni o funzioni piuttosto comuni che possono essere utilizzate anche dalle altre parti dell'applicazione. Creiamo così una libreria comune costituita da funzioni comuni per l'applicazione in prova. Pertanto, queste librerie possono essere chiamate dagli script di test ogni volta che è necessario.
La base fondamentale dietro il framework è determinare i passaggi comuni e raggrupparli in funzioni sotto una libreria e chiamare quelle funzioni negli script di test ogni volta che è necessario.
Esempio : I passaggi di accesso possono essere combinati in una funzione e conservati in una libreria. Quindi tutti gli script di test che richiedono per accedere all'applicazione possono chiamare quella funzione invece di scrivere di nuovo il codice.
Professionisti:
- Come il Module Based Framework, anche questo framework introduce l'elevato livello di modularizzazione che porta a una manutenzione e scalabilità più semplici ed economiche.
- Poiché creiamo funzioni comuni che possono essere utilizzate in modo efficiente dai vari script di test nel Framework. Pertanto, il framework introduce un grande grado di riutilizzabilità.
Contro:
- Come il Module Based Framework, i dati del test vengono inseriti negli script del test, quindi qualsiasi modifica nei dati del test richiederebbe modifiche anche nello script del test.
- Con l'introduzione delle librerie, il framework diventa un po 'complicato.
# 3) Framework di test basato sui dati
Durante l'automazione o il test di qualsiasi applicazione, a volte può essere necessario testare la stessa funzionalità più volte con il diverso set di dati di input. Pertanto, in questi casi, non possiamo lasciare che i dati del test siano incorporati nello script del test. Quindi si consiglia di conservare i dati di test in qualche database esterno al di fuori degli script di test.
Data Driven Testing Framework aiuta l'utente a separare la logica dello script di test e i dati di test l'uno dall'altro. Consente all'utente di memorizzare i dati del test in un database esterno. I database esterni possono essere file di proprietà, file xml, file excel, file di testo, file CSV, archivi ODBC, ecc. I dati sono convenzionalmente archiviati in coppie 'chiave-valore'. Pertanto, la chiave può essere utilizzata per accedere e popolare i dati all'interno degli script di test.
Nota : I dati del test memorizzati in un file esterno possono appartenere alla matrice del valore atteso così come alla matrice dei valori di input.
java come creare un elenco
Esempio:
Cerchiamo di capire il meccanismo di cui sopra con l'aiuto di un esempio.
Consideriamo la funzionalità 'Gmail - Accesso'.
Passo 1: Il primo e il passo più importante è creare un file esterno che memorizzi i dati del test (dati di input e dati previsti). Consideriamo ad esempio un foglio Excel.
Passo 2: Il passaggio successivo consiste nel popolare i dati del test in Automation test Script. A tale scopo, è possibile utilizzare diverse API per leggere i dati di test.
public void readTD(String TestData, String testcase) throws Exception { TestData=readConfigData(configFileName,'TestData',driver); testcase=readConfigData(configFileName,'testcase',driver); FileInputStream td_filepath = new FileInputStream(TestData); Workbook td_work =Workbook.getWorkbook(td_filepath); Sheet td_sheet = td_work.getSheet(0); if(counter==0) { for (int i = 1,j = 1; i <= td_sheet.getRows()-1; i++){ if(td_sheet.getCell(0,i).getContents().equalsIgnoreCase(testcase)){ startrow = i; arrayList.add(td_sheet.getCell(j,i).getContents()); testdata_value.add(td_sheet.getCell(j+1,i).getContents());}} for (int j = 0, k = startrow +1; k <= td_sheet.getRows()-1; k++){ if (td_sheet.getCell(j,k).getContents()==''){ arrayList.add(td_sheet.getCell(j+1,k).getContents()); testdata_value.add(td_sheet.getCell(j+2,k).getContents());}} } counter++; }
Il metodo precedente aiuta a leggere i dati del test e il passaggio del test seguente aiuta l'utente a digitare i dati del test sulla GUI.
element.sendKeys (obj_value.get (obj_index));
Professionisti:
- La caratteristica più importante di questo framework è che riduce notevolmente il numero totale di script necessari per coprire tutte le possibili combinazioni di scenari di test. Pertanto è necessaria una quantità inferiore di codice per testare un set completo di scenari.
- Qualsiasi modifica nella matrice dei dati di test non ostacolerebbe il codice dello script di test.
- Aumenta la flessibilità e la manutenibilità
- È possibile eseguire un singolo scenario di test alterando i valori dei dati di test.
Contro:
- Il processo è complesso e richiede uno sforzo aggiuntivo per elaborare le origini dati di test e i meccanismi di lettura.
- Richiede competenza in un linguaggio di programmazione utilizzato per sviluppare script di test.
# 4) Framework di test basato su parole chiave
Il Keyword driven testing framework è un'estensione del Data driven Testing Framework nel senso che non solo separa i dati di test dagli script, ma mantiene anche il determinato set di codice appartenente allo script di test in un file di dati esterno.
Questi set di codice sono noti come parole chiave e quindi il framework è così chiamato. Le parole chiave si autoguidano sulle azioni da eseguire sull'applicazione.
Le parole chiave ei dati di test sono archiviati in una struttura tabulare e quindi sono anche comunemente considerati Framework basati su tabelle. Tieni presente che le parole chiave e i dati di test sono entità indipendenti dallo strumento di automazione utilizzato.
EsempioScenario di test di Keyword Driven Test Framework
Nell'esempio precedente, parole chiave come login, clic e verifica collegamento sono definite all'interno del codice.
A seconda della natura delle parole chiave dell'applicazione possono essere derivate. E tutte le parole chiave possono essere riutilizzate più volte in un unico test case. La colonna del localizzatore contiene il valore del localizzatore che viene utilizzato per identificare gli elementi web sullo schermo oi dati di test che devono essere forniti.
Tutte le parole chiave richieste sono progettate e inserite nel codice base del framework.
Professionisti:
- Oltre ai vantaggi forniti dai test basati sui dati, il framework basato sulle parole chiave non richiede all'utente di possedere conoscenze di scripting, a differenza del test basato sui dati.
- Una singola parola chiave può essere utilizzata in più script di test.
Contro:
- L'utente dovrebbe essere esperto con il meccanismo di creazione di parole chiave per essere in grado di sfruttare in modo efficiente i vantaggi forniti dal framework.
- Il framework si complica gradualmente man mano che cresce e vengono introdotte una serie di nuove parole chiave.
# 5) Framework di test ibrido
Come suggerisce il nome, Hybrid Testing Framework è una combinazione di più di un framework sopra menzionato. La cosa migliore di una tale configurazione è che sfrutta i vantaggi di tutti i tipi di framework associati.
Esempiodi Hybrid Framework
Il foglio di prova conterrebbe sia le parole chiave che i dati.
Nell'esempio precedente, la colonna delle parole chiave contiene tutte le parole chiave richieste utilizzate nel caso di test particolare e la colonna dei dati guida tutti i dati richiesti nello scenario di test. Se un passaggio non necessita di alcun input, può essere lasciato vuoto.
# 6) Framework di sviluppo guidato dal comportamento
Il framework Behavior Driven Development consente l'automazione delle convalide funzionali in un formato facilmente leggibile e comprensibile per analisti aziendali, sviluppatori, tester, ecc. Tali framework non richiedono necessariamente che l'utente conosca il linguaggio di programmazione. Sono disponibili diversi strumenti per BDD come cucumber, Jbehave, ecc. I dettagli del framework BDD sono discussi più avanti nel tutorial Cucumber. Abbiamo anche discusso i dettagli sul linguaggio Gherkin per scrivere casi di test in Cucumber.
Componenti di Automation Testing Framework
Sebbene la rappresentazione pittorica sopra di un quadro sia autoesplicativa, vorremmo comunque evidenziare alcuni punti.
- Repository di oggetti : L'acronimo di Object Repository come OR è costituito dall'insieme di tipi di locatori associati agli elementi web.
- Dati di test: I dati di input con i quali lo scenario verrebbe testato e possono essere i valori attesi con i quali verranno confrontati i risultati effettivi.
- File di configurazione / Costanti / Impostazioni ambiente : Il file memorizza le informazioni riguardanti l'URL dell'applicazione, le informazioni specifiche del browser, ecc. Generalmente sono le informazioni che rimangono statiche in tutto il framework.
- Generici / Logiche di programma / Lettori : Queste sono le classi che memorizzano le funzioni che possono essere comunemente utilizzate nell'intero framework.
- Strumenti di costruzione e integrazione continua : Questi sono gli strumenti che aiutano le capacità del framework di generare rapporti di prova, notifiche e-mail e informazioni di registrazione.
Conclusione
I framework illustrati sopra sono i framework più popolari utilizzati dalla confraternita dei test. Ci sono anche vari altri framework nel posto. Per tutti gli ulteriori tutorial ci baseremo sul Framework di test basato sui dati .
In questo tutorial, abbiamo discusso le basi di un framework di automazione. Abbiamo anche discusso i tipi di framework disponibili sul mercato.
Prossimo tutorial n. 21 : Nel prossimo tutorial, vorremmo brevemente presentarti il framework di esempio, MS Excel che memorizzerebbe i dati del test, le manipolazioni excel ecc.
Fino ad allora sentiti libero di chiedere le tue domande sui framework di automazione.
Lettura consigliata
- 7 fattori che influenzano la stima del test del progetto Selenium Automation - Selenium Tutorial # 32
- Introduzione a Selenium WebDriver - Selenium Tutorial # 8
- Scripting efficiente del selenio e scenari di risoluzione dei problemi - Tutorial sul selenio n. 27
- Debug degli script di selenio con i registri (tutorial di Log4j) - Esercitazione di selenio # 26
- 30+ Migliori tutorial sul selenio: impara il selenio con esempi reali
- Tutorial approfonditi su Eclipse per principianti
- Come individuare gli elementi nei browser Chrome e IE per la creazione di script di selenio - Tutorial sul selenio n. 7
- Esercitazione sul selenio di cetriolo: integrazione con WebDriver di selenio Java di cetriolo