Automatizzare i test su applicazioni Flash / Flex
La domanda di test per applicazioni Flash/Flex è diventata molto più significativa negli ultimi anni. Ciò indica un utilizzo crescente di questa tecnologia, che a sua volta illustra la necessità di test automatici di queste applicazioni. Tuttavia, questa necessità solleva alcune domande e problemi, alcuni dei quali saranno discussi nel prossimo articolo.
In particolare, la prima domanda a cui si deve rispondere sull’automazione di un’applicazione Flash/Flex è: qual è la tecnica di automazione giusta? Ci sono due modi distinti per andare:
Mouse nativo & integrazione della tastiera – ideale per situazioni in cui è richiesta un’interazione flash minima.
Integrazione a livello di API-ideale per situazioni in cui è richiesta molta interazione Flash.
Mouse nativo & integrazione tastiera: è qui che viene simulato un movimento del mouse, un clic del mouse o un’azione della tastiera a livello di sistema operativo. Riproduce la simulazione utente più realistica registrando azioni basate su GUI, avvicinandoci molto all’uso “reale” della nostra applicazione. Tuttavia, l’utilizzo di questo metodo ha alcuni problemi. Ad esempio, il test di un’applicazione Flash richiede che l’applicazione e l’ambiente di test siano preparati in modo speciale. Esistono diversi modi per rendere testabile l’applicazione Flash, a seconda dello strumento di test utilizzato e dell’ambiente di sviluppo. Alcuni strumenti come TestComplete, Rational Robot e QTP richiedono che una libreria dedicata (solitamente fornita dal fornitore dello strumento) sia incorporata nell’applicazione Flash durante la compilazione o in fase di esecuzione. Le specifiche di questo processo possono in genere essere trovate all’interno della documentazione di questi strumenti.
Catturare gli oggetti in un’applicazione Flex/Flash è problematico da solo. Per risolvere questo, ci sono due approcci principali:
- Cattura il display dal dispositivo e utilizza il riconoscimento delle immagini per individuare gli elementi desiderati sullo schermo, automatizzando l’applicazione in modo black-box. La melanzana è un buon esempio di uno strumento che utilizza questo approccio. È anche come SilkPerformer opera in un ambiente Citrix.
- Analizzare gli oggetti utilizzati in proprietà e utilizzare tali proprietà per individuare l’oggetto. Questo è lo stesso approccio utilizzato nei repository di oggetti di QTP. Le tipiche proprietà dell’oggetto Flash, come stato, nome e testo, vengono utilizzate sia per individuare gli oggetti che per verificare che siano state eseguite determinate azioni. Robot razionale è un buon esempio di questo approccio; utilizza 11 diversi punti di verifica per verificare che una certa azione ha avuto luogo, o verificare lo stato di un oggetto. Questo approccio è perfetto per coloro che vogliono simulare interazioni GUI relativamente semplici, come fare clic sul pulsante “play” di un film o interagire con una finestra di conferma, poiché su un’applicazione più complicata questo approccio tende a fallire.
Integrazione a livello di API-Per le applicazioni che hanno interfacce utente Flash/Flex molto più complesse o applicazioni basate su Flash al 100%, è difficile utilizzare l’acquisizione GUI come presentato poiché può essere fragile e difficile confermare che la funzionalità desiderata abbia funzionato. Per questo, è possibile utilizzare l’integrazione a livello di API. Per fare questo tipo di automazione si deve essere in grado di ricompilare/modificare gli oggetti Flash sottostanti.
Il modo in cui si procede da qui dipende dal fatto che si stia utilizzando Flash o Flex, poiché Flex espone alcune API di automazione che, altrimenti, dovranno essere riprodotte se si utilizza pure Flash. Per fare questo si può: