Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Dal web scraping al web testing

Introduciamo nel dettaglio il Web testing in linguaggio Python e capiamo in cosa si differenzia dal Web scraping
Introduciamo nel dettaglio il Web testing in linguaggio Python e capiamo in cosa si differenzia dal Web scraping
Link copiato negli appunti

Dal web scraping al web testing, di cosa parliamo? Fare testing significa creare programmi che siano in grado di mettere alla prova, in maniera automatica, un'altra applicazione. Il vantaggio di ciò è che un compito così delicato non viene più demandato ad un essere umano che, per sua natura, potrebbe svolgerlo in maniera approssimativa, non continuativa o completa e, come è normale che sia, condizionato da stanchezza, stress o problemi personali. Un programma di testing infatti può svolgere i suoi compiti in maniera puntuale, precisa, sempre identica a sé stessa e a qualsiasi ora del giorno e della notte. A grandissima velocità.

Il testing si rivela particolarmente importante non solo al primo rilascio dell'applicazione ma in ogni passaggio della sua crescita evolutiva. Infatti, ogni miglioria o correzione che viene apportata ad un progetto rischia di introdurre a sua volta ulteriori bug.

Se impostiamo una campagna di test automatici, ovvero uno o più programmi in grado di essere lanciati ad ogni aggiornamento del software, possiamo verificare come qualsiasi modifica apportata all'applicazione abbia lasciato il suo funzionamento inalterato.

Sebbene i fondamenti concettuali alla base del testing siano in buona parte comuni, ogni tipologia di applicazione richiede specifiche tecniche e logiche. Nel caso di applicazioni web, i test devono essere svolti mediante un browser. Quindi, in pratica, facendogli fare in automatico quello che normalmente farebbe un utente reale compilando i campi di un form, cliccando pulsanti e agendo su dei menu.

Web testing in Python

In questa guida, ci occupiamo proprio di web testing e lo facciamo con il linguaggio Python sfruttando un framework, molto noto, che prende il nome di Selenium.

I programmi che attueranno testing mediante Selenium, per lo più, seguiranno questo flusso di lavoro:

  • attiveranno un browser di nostra scelta (ma molto spesso si useranno tutti i browser più comuni per svolgere gli stessi test e verificare il funzionamento dell'applicazione per tutta la possibile utenza);
  • invocheranno una pagina web;
  • eseguiranno delle operazioni come farebbe un utente umano;
  • verificheranno i risultati ottenuti per essere certi della correttezza del funzionamento.

I test dovranno essere più completi possibile e per questo dovranno verificare tutta una serie di casi cercando di individuare ogni situazione limite. Se, ad esempio, ad un certo punto la pagina web deve svolgere la divisione tra due numeri, un test ben fatto dovrebbe verificare che nel caso in cui il divisore sia zero venga rilevata una situazione di errore e l'applicazione sia in grado di comportarsi di conseguenza. In maniera controllata.

Web testing non è web scraping

E' importante, prima di iniziare, compiere una distinzione fondamentale. Soprattutto nella fase in cui si andrà a leggere il contenuto di pagine web potrà capitare che un tale lavoro sia simile al cosiddetto web scraping che è un'attività consistente nell'invocare pagine web e recuperare i dati da esse prodotti. Queste attività sono spesso utilizzate per creare dataset o raccogliere informazioni nel caso in cui non siano state pubblicate API specializzate per farlo.

Tra l'altro, cogliamo l'occasione per ricordare che quando si recuperano in maniera automatica dati provenienti da pagine web bisogna farlo sempre in maniera rispettosa dei diritti d'autore dei contenuti e senza creare problemi al normale funzionamento del networking delle applicazioni. Un accesso automatizzato alle pagine svolto in maniera troppo intensa potrebbe creare dei problemi ai server. Trasformando - anche involontariamente - delle normali sperimentazioni in una sorta di attacco informatico via Rete.

Precisiamo subito quindi quando va usato Selenium e quando si dovrebbe utilizzare delle librerie che si limitano all'accesso ai dati prodotti da pagine web.

Quando utilizzare Selenium per il Web testing

Selenium va usato quando:

  • si deve interagire con la pagina web emulando il comportamento di un essere umano. Ad esempio, cliccando dei pulsanti;
  • si ha bisogno di leggere dei contenuti che possono essere prodotti solo lato client mediante un browser. Se, ad esempio, abbiamo una pagina web che genera o recupera i dati da mostrare attivando codice JavaScript, tale codice deve funzionare in un browser affinché i dati siano effettivamente ottenibili

Per i casi in cui si ha necessità di invocare delle pagine per recuperarne i dati si può fare ricorso a ottime alternative basate su soluzioni quali l'accoppiata di librerie requests/BeautifulSoup o Scrapy. Solo per citarne un paio.

Dopo queste premesse di carattere orientativo, iniziamo a studiare il framework Selenium che darà la possibilità di scoprire un campo applicativo importante. Richiesto in ambito professionale e molto delicato. Quello del web testing che ci fornirà gli strumenti per creare programmi in grado di verificare, in maniera automatica, il funzionamento di applicazioni web.

Ti consigliamo anche