2011-02-05 9 views
12

Sono molto nuovo nel tipo di test o automazione di prova. Ora recentemente sono stato assegnato a un progetto per automatizzare l'UI Test di un'applicazione WPF. Dopo aver effettuato una piccola ricerca su MSDN e altri, sono un po 'confuso se utilizzare la Libreria di automazione interfaccia utente Microsoft o la nuova funzionalità di test dell'interfaccia utente codificata di VS 2010. Non riesco a ottenere il quadro chiaro di quale di questi si applica in quali scenari, quali vantaggi si hanno rispetto agli altri e quale si adatta a me (ancora una volta ho un'applicazione CAD come WPF che manca un sacco di AutomationIds e devo automatizzare il test dell'interfaccia utente). PER FAVORE AIUTO !!!Microsoft UI Automation Library Vs Test codificato UI

risposta

17

Fondamentalmente Microsoft UIA è la nuova libreria di accessibilità in .Net 4.0. Le applicazioni e i controlli WPF hanno il supporto integrato per UIA attraverso la classe AutomationPeer.

Test codificato-UI è un record & Strumento di automazione del gioco che utilizza la libreria Microsoft UIA sottostante. Poiché è uno strumento rispetto alla scrittura di codice in C#, migliora la produttività del QA per la registrazione di più casi di test.

Per le applicazioni con supporto di automazione pianificato in esso, Coded-Ui dovrebbe essere sufficiente. Se mancano gli AutomationIDs, assicurati che i controlli abbiano proprietà univoche come Name. Utilizzare UIVerify o Inspect per verificare questo.

Se non è disponibile alcuna proprietà univoca, esistono le altre tecniche menzionate di seguito che è possibile utilizzare in combinazione con l'interfaccia utente codificata.

  • da un evento Quando l'applicazione riceve un evento di automazione interfaccia utente, l'oggetto di origine passato al gestore di eventi è un AutomationElement. Ad esempio, se ti sei abbonato agli eventi modificati a fuoco, l'origine passata a AutomationFocusChangedEventHandler è l'elemento che ha ricevuto lo stato attivo. Per ulteriori informazioni, vedere Iscriviti agli eventi di automazione dell'interfaccia utente.

  • Da un punto: Se si dispone di coordinate dello schermo (ad esempio, una posizione del cursore), è possibile recuperare un AutomationElement utilizzando il metodo FromPoint statico.

  • Da una finestra Maniglia: Per recuperare un AutomationElement da un HWND, utilizzare il metodo statico FromHandle.

  • Dal controllo messo a fuoco: È possibile recuperare un oggetto AutomationElement che rappresenta il controllo focalizzato dalla proprietà FocusedElement statica.

8

Se è possibile utilizzare e utilizzare lo Coded UI Test, andare su quella rotta. Assicurati di verificare che il tuo dato configuration is supported.

La libreria di automazione dell'interfaccia utente risolve tutto nel codice sottostante. Questo ti obbliga quindi a utilizzare uno strumento come UISpy per accedere agli interni dei controlli in modo da poter costruire il tuo test.

Un test dell'interfaccia utente codificato invece ha ancora il codice ma consente la registrazione dei passaggi attraverso l'applicazione specificata che si sta testando aumentando notevolmente il numero di test che è possibile creare.

2

per integrare le risposte di cui sopra, si prega di guardare CUITE che aiuta un po 'e può essere un approccio appropriato per voi.

Ho iniziato a 'rolling-my-own' 'semi-framework' utilizzando la libreria CodedUITest e ho escogitato un paradigma per separare i dettagli dell'automazione dal codice (C#). Fondamentalmente, sto creando un driver che legge ciò che deve essere fatto dai fogli di calcolo in cui ogni riga in esso è una fase di test (o un puntatore a uno scenario in un diverso foglio di lavoro). Allo stato attuale, incompleto, ma promettente, ho lavorato contro un'applicazione WPF con parziale successo. Uno dei problemi principali è che gli sviluppatori hanno trascurato di identificare i controlli in modo univoco e coerente.

Bey

4

Libreria di automazione UI è una libreria di basso livello. Di solito, non vuoi scrivere test direttamente contro di esso in quanto richiede una quantità di lavoro abbastanza decente.

Suggerirei di consultare più librerie di alto livello. Ne hai parlato uno di loro - Coded UI; un'altra buona scelta sarebbe il bianco di TestStack. Entrambi si adattano a diversi tipi di progetti. L'interfaccia utente codificata è utile quando non si desidera investire molti sforzi nella suite di test. Allo stesso tempo, non è molto proporzionato se si stanno scrivendo molti test, è meglio scegliere White.

Qui raffronto le due strutture in modo più dettagliato: Coded UI vs White