Domanda

Stiamo allestendo una Selenium su una grande applicazione web. La prima cosa che abbiamo fatto è stata quella di creare un framework che inizializzasse i dati SQL nel database prima del test, avvii il test, archivia i risultati e quindi cancella i dati.

Lo abbiamo integrato in un processo Maven 2, eseguito ogni giorno da TeamCity su un database dedicato.

Ora abbiamo impostato diversi test al selenio ma non è usato come previsto.

Le ragioni sono che i test a volte vengono interrotti per ragioni diverse dalle regressioni (i dati potrebbero essere cambiati, la procedura memorizzata potrebbe essere stata ricompilata e così via).

Vorrei sapere se ci sono grandi successi nei test dell'interfaccia utente e, in tal caso, ragioni per farlo. Anche gli errori di Commons potrebbero interessarmi.

È stato utile?

Soluzione

La testabilità aiuta molto. La più grande vincita per la testabilità nelle app Web è se tutti gli elementi HTML con cui devi interagire sulla pagina hanno attributi unici e coerenti . Se gli attributi che stai usando per identificare gli elementi HTML (Selenium usa xpath) non sono coerenti / affidabili da build-to-build o da sessione a sessione, i tuoi script di test falliranno. Inoltre, questi attributi devono essere univoci, in modo che lo strumento di automazione (in questo caso Selenio) possa trovare in modo affidabile l'oggetto sulla pagina Web.

Altri suggerimenti

Se si desidera test unitari affidabili, è necessario disporre dello stesso input. Lo stato iniziale del database è l'input . Pertanto, è necessario disporre sempre dello stesso database di avvio. Naturalmente, se si desidera eseguire test con input diversi, è necessario creare un altro test unitario (poiché i risultati ovviamente non saranno gli stessi).

Quando faccio cose del genere, utilizzo sempre lo stesso database come punto di partenza. Naturalmente, alcuni dei test potrebbero fallire senza modificare il database in modo corretto, quindi alcuni altri test successivi potrebbero fallire anche se non avrebbero altrimenti. Se lo strumento di unit test lo consente, è necessario definire dipendenze tra i test per assicurarsi che tali test non vengano eseguiti affatto quando quello "genitore" fallisce.

Uso http-unit che ha l'ulteriore vantaggio di lavorare prima che uno stile sia stato aggiunto alla pagina.

http://httpunit.sourceforge.net/ È possibile allegare i test da eseguire nella fase di test di integrazione per maven2.

Dal sito

  

Scritto in Java, HttpUnit emula il file   parti pertinenti del comportamento del browser,   tra cui l'invio di moduli, JavaScript,   autenticazione http di base, cookie e   reindirizzamento automatico della pagina e consente   Codice test Java da esaminare restituito   pagine come testo, un DOM XML o   contenitori di moduli, tabelle e   collegamenti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top