2013-06-21 8 views
8

Ciao, sto cercando di utilizzare i test codificati dell'interfaccia utente (CUIT) per testare un'applicazione. Ho provato l'opzione di registrazione e questo non è abbastanza flessibile per me. Se lo usi su uno schermo di dimensioni diverse, si rompe.Test codificati UI codificati a mano

So che è possibile eseguire il codice dei test ma non riesco a trovare alcun buon esempio di come scrivere un test di base. Ci sono esempi qui che usano CUITe ma questi post sono del 2011 e non sono sicuro di quanto siano più rilevanti con i nuovi aggiornamenti a CUIT di Microsoft.

Questi test devono essere integrati con i miei ambienti di compilazione in Visual Studio 2012 Ultimate, ecco perché non utilizzo Selenium.

e il codice di campioni o collegamenti a buoni tutorial sarebbe apprezzato, ma in particolare Cerco un exampl su come avviare mano codifica miei cuits

+2

Hai provato a lavorare con il quadro di automazione interfaccia utente direttamente? È ciò che i test codificati dell'interfaccia utente sono costruiti. Mi piace questo tutorial: http://blog.functionalfun.net/2009/06/introduction-to-ui-automation-with.html – SlightlyCuban

+0

Integrato nel tuo ambiente di costruzione come? – Arran

+0

stiamo cercando di aggiungerlo alla configurazione di configurazione nello stesso modo in cui avresti automatizzato i tuoi test unitari. Sto ancora aspettando i diritti di accesso per poter modificare il file di configurazione, ma spero che non siano troppo lunghi –

risposta

5

Il progetto Codice primo codice di interfaccia utente di test API su CodePlex (http://codeduicodefirst.codeplex.com/) include una demo del progetto che puoi scaricare - applicazione e test. È progettato per la creazione di test CUIT senza la dipendenza da record/riproduzione.

La cosa più importante di cui hai bisogno se vuoi lavorare su una base di solo codice è un modo per evitare la dipendenza dall'oggetto autogenerato mappato dalle registrazioni CUIT create. Il progetto Code-First utilizza classi mappate a singoli oggetti di pagina per ovviare a questo problema: è necessario estendere il codice del progetto per lavorare con le applicazioni desktop se non ricordo male.

(Non sono affiliato a questo progetto in alcun modo - è solo l'unica risorsa di codifica manuale diversa da CUITe che ho trovato, e CUITe non è stato aggiornato da un po 'di tempo, l'ultima volta che l'ho visto).

+1

L'ultimo aggiornamento era nel marzo 2012 ed è stato scaricato 3 volte (!) ... – Jowen

1

Non un sacco di sviluppatori lo sanno, ma è possibile creare codice prime prove con CodedUI. Non viene sostenuto, il che è pessimo. Considero l'opzione di registrazione come fragile. Utilizza le coordinate del mouse, il che significa che è necessario ricreare i test quando l'interfaccia utente cambia ...

Il modo utilizzabile sarebbe utilizzare lo Page Object pattern (utilizzato anche da altri strumenti popolari come Selenium). Ciò crea un'astrazione dell'interfaccia utente che offre maggiore flessibilità e una forte digitazione.

Si ottiene facile, leggibile e la maggior parte di tutto il codice mantenibile:

var storeHyperlink = new HtmlHyperlink(_browserWindow); 
storeHyperlink.SearchProperties[HtmlHyperlink.PropertyNames.Id] = "StoreLink"; 
Mouse.Click(storeHyperlink); 

Read more

+0

Ottima risposta e collegamento - grazie @Jowen – user1191559

0

Non sono sicuro se qualcuno sta ancora cercando di trovare il modo di migliore di codice lato i test codificati dell'interfaccia utente, ma imo andare per la registrazione e il percorso di riproduzione sarà deludente in seguito! Il modo migliore è creare un framework di automazione che definisca i singoli oggetti con i quali si desidera interagire e che abbiano gli oggetti della pagina per gestire la logica aziendale. Se si stanno testando applicazioni Web, è possibile definire oggetti utilizzando UITestControls o HtmlControls generici. Per esempio:

public static UITestControl EditBox_Password 
{ 
    get 
    { 
     if (mEditBox_Password == null || ! mEditBox_Password.Exists) 
     { 
      mEditBox_Password = new UITestControl (browserWindow); 
      mEditBox_Password.TechnologyName = "Web"; 
      mEditBox_Password.SearchProperties.Add (UITestControl.PropertyNames.ControlType , "Edit"); 
      mEditBox_Password.SearchProperties.Add (UITestControl.PropertyNames.Name , "TxtPassword"); 
     } 
     return mEditBox_Password ; 
    } 
} 

Se si sta testando applicazioni basate su Windows, allora è possibile definire gli oggetti utilizzando WinControls o WpfControls.

Recentemente ho acquistato un libro su Amazon (Hand Coding Coded UI) che definisce chiaramente come impostare il framework e creare un codice facilmente manutenibile. Non sono sicuro se è disponibile in qualsiasi negozio di libro, ma ecco il link su Amazon se si vuole avere uno sguardo

https://www.amazon.com/dp/1547000856/ref=sr_1_1?s=books&ie=UTF8&qid=1496767488&sr=1-1&keywords=1547000856

spero che sia utile.

Aggiornato: Basta googled esso e c'è un codice sconto per il libro a http://www.arkenstone-ltd.com/testing-with-coded-ui/

Problemi correlati