2012-02-29 10 views

risposta

2

ho trovato la soluzione per il mio bisogno, ci sono più strumenti a disposizione, ma voglio uno strumento che può essere integrato con il mio automazione esistenti facilmente

strumento è JSCover http://tntim96.github.io/JSCover/

Basta eseguire il server

  1. Server di esecuzione java -cp JSCover-all.jar jscover.server.SimpleWebServer. 8080
  2. Run Proxy Server java-jar target/dist/JSCover-all.jar -ws --proxy --port = 3128 --report-dir = bersaglio

  3. Aggiungi Proxy nella vostra WebDriver per la porta specificato, 3128 nel mio caso

  4. Dopo l'esecuzione di test di generare report utilizzando

    ((JavascriptExecutor) driver).executeScript("jscoverage_report();"); 
    

è possibile aggiungere questa linea in cui si esce WebDriver o test Case

1

non so ciò che si sta cercando di ottenere, ma:

  • selenio sta testando il risultato finale, come si vede nella pagina stessa.

Quindi non importa se PHP, HTML, JSP, ASP o .NET - il Selenium è progettato per imitare l'utente finale e fare clic sull'applicazione finale - il codice HTML finale generato da qualsiasi cosa è sotto il cappuccio.

Il selenio non è altrettanto adatto per i test di copertura del codice: un codice pezzo può essere su molte pagine, quindi un approccio migliore con il selenio è di fare la copertura "utente" - cercare di coprire tutte le possibili azioni che l'umano vivente potrebbe che fare con la tua pagina

+1

errore mio stavo parlando di copertura JS (Javascript). Voglio sapere quanto JS copre il mio caso di test del selenio. Mi aiuta a verificare che ho coperto la maggior parte dei casi, inoltre mi aiuta a segnalare se c'è un file JS inutilizzato. Potrebbe esserci il caso che uno o due file JS non vengano mai usati, quindi usando la copertura del codice con selenio posso riferire che questi file JS non sono usati e potrebbero essere spazzatura. –

+0

Non sono a conoscenza di questa possibilità: ovviamente, il clic del selenio e le interazioni dell'utente attivano alcune azioni javascript. Puoi monitorarli, ma probabilmente non esiste uno strumento che ti possa dire, ad es. "il accounts.js non è mai stato usato" –

+0

ya non ci può essere uno strumento che può dirmi quale JS non è mai stato usato ma penso che ci siano strumenti come sonar che possono dire quale JS è usato e lì uso la percentuale in modo da questo posso anche identificare quali JS non vengono mai usati. Voglio solo che ci sia uno strumento per la copertura del codice che possa essere facilmente integrato con il selenio –

2

a conoscenza di uno strumento per il selenio, ma JsTestDriver ha un design molto simile al Selenio RC (può lanciare test dalla riga di comando e vengono eseguiti su un server che spinge i browser headlessly) e fornisce la copertura del codice informazione.

IntelliJ si integra con JsTestDriver e fornisce uno visual display of coverage information.

5

In teoria, è possibile utilizzare qualsiasi strumento di copertura che strumenti codice JavaScript per raccogliere i dati di copertura.

Ad esempio, è possibile utilizzare JSCoverage in modalità proxy (per strumentazione in tempo reale) o per strumentazione statica per eseguire i test Selenium fuori dal codice strumentato.

Un ostacolo tecnico potrebbe essere quello di escogitare un modo per accumulare dati di copertura su più pagine. Lo strumento di copertura di tua scelta potrebbe già supportare l'accumulo di dati da più esecuzioni di pagine. In caso contrario, potrebbe essere necessario gestire quel bit da soli, ma probabilmente non è qualcosa di banale.

0

Non esiste uno strumento particolare che possa essere integrato con Selenium per la copertura JS. Tuttavia ci sono molti strumenti che testano JS su ogni pagina che possono dire se il JS che esegue sulla tua pagina web ha avuto errori. Questo potrebbe non essere la soluzione ideale, ma su ogni pagina avrai la misura del punto che JS ha eseguito correttamente sulla tua pagina web sotto test. Esistono due soluzioni:

1.) API JSErrorCollector: Si integra direttamente con Selenium e consente di sapere se ci sono stati errori nella pagina. Sono disponibili all'indirizzo: http://mguillem.wordpress.com/2011/10/11/webdriver-capture-js-errors-while-running-tests/

2.) strumenti di copertura a tutti gli effetti JS completa: V'è un eccellente elenco di strumenti di qui, che saranno essenzialmente vi aiuterà a coprire JS su sulle sue pagine web.Sono disponibili all'indirizzo: JavaScript unit test tools for TDD

+1

La domanda è su http://en.wikipedia.org/wiki/Code_coverage –

1

Date un'occhiata a https://github.com/yui/yuitest/wiki/Code-Coverage

ho integrato questo strumento nel mio selenio mette alla prova un tempo fa. Hai bisogno di un po 'di lavoro per raccogliere informazioni sulla copertura prima della modifica della pagina (in ogni caso js attiva una pagina ricaricata, link ecc ...)

Una volta impostato tutto, coprirà completamente tutti i js eseguiti mentre il selenio si carica e prova le pagine del tuo sito web

PS: anche se è stato appositamente adattato per il test YUI, è possibile utilizzarlo con selenio.

+0

Puoi fornire ulteriori dettagli su come hai registrato la copertura di js mentre il selenio sta correndo? – carambir

+0

Prima di ogni fine del test, chiedere al selenio di eseguire JS nella pagina corrente: YUITest.TestRunner.getCoverage (YUITest.CoverageFormat.JSON). Ciò restituirà i dati di copertura che il selenio può memorizzare da qualche parte. Quindi, utilizzando il jar del report di yui, è possibile generare un report di copertura per tutti i dati di tutti i test. Per una copertura completa e esatta, devi prenderti cura del cambio di pagina (ad es. Innescato da eventi nella pagina). Esegui una sorta di strumentazione a codice sul tuo js per chiamare la funzione di copertura yui prima di ogni cambio di pagina. – Fabien

Problemi correlati