2016-05-27 141 views
5

Ho creato un test Web molto semplice che aveva solo una richiesta per un URL semplice simile a questo: https://www.domain.com/.Errore URI non valido durante l'esecuzione di test Web

Quando eseguo il test se vengo fallito e questo messaggio:

Request failed: URI non valido: Il formato del URI non poteva essere determinato.

Ma la scheda Risposta ha la risposta corretta HTTP/1.1 200 OK con un sacco di HTML. Si tratta di un bug in Visual Studio o qualcosa del genere e c'è un modo per garantire che non tratti le richieste corrette come fallite?

P.S. Ho anche notato che la richiesta impiega 10-15 secondi, anche se il RequestTime (che lo studio visivo mostra) è davvero inferiore a 1.

+0

Cosa viene visualizzato nella scheda "dettagli"? – AdrianHHH

+0

Ho cancellato tutte le regole di convalida (sebbene fossero già successo prima). L'errore è: System.UriFormatException: URI non valido: non è stato possibile determinare il formato dell'URI. ....... Microsoft.VisualStudio.TestTools.WebStress.WebTestCaseVariation.AddParsedDependentRequests (ExecutionState executionState). Sembra che sia qualcosa con richieste dipendenti, ma non sono abbastanza sicuro di cosa sia ... –

risposta

5

L'HTML della maggior parte delle pagine web richiede una raccolta di altri file da scaricare , come immagini, JSON, CSS, JavaScript, ecc. Queste sono le richieste dipendenti. Visual Studio esamina l'HTML per trovare l'insieme di richieste dipendenti. Dovrebbero essere tutti URL validi. Il codice di Visual Studio che estrae queste richieste dipendenti è meno indulgente di molti browser. Visual Studio richiede che siano URL validi. Molti browser reali lavorano duramente per far fronte al male HTML in modo che possa essere mostrato qualcosa di sensato.

Il motivo dell'eccezione è probabilmente HTML formattato in modo errato nella risposta. Alcuni browser hanno funzionalità di sviluppo che descrivono gli errori trovati nell'html scaricato. Controlla cosa dicono queste strutture per gli sviluppatori sugli errori nella pagina; potrebbe valere la pena provare diversi browser per ottenere valutazioni diverse della pagina.

Un esempio: un base tag non valido può portare all'eccezione che si segnala.


Quando si visualizza il log di esecuzione del test Web per una richiesta corretta, verranno visualizzate le richieste dipendenti elencate. Sembra che Visual Studio "si fidi" che queste richieste formino URL validi, ovvero che siano formattati correttamente. Il tuo test ha un URL formattato male. Se avessi fornito un URL correttamente formattato ma non c'era alcuna risorsa, avresti visto la richiesta dipendente e l'avresti visto ricevere l'errore 404. Questo è un caso limite e si potrebbe obiettare che Visual Studio dovrebbe segnalarlo in modo diverso.

Con "registro di esecuzione del test Web" si fa riferimento al modo in cui vengono visualizzati i risultati di un test web. Questa è la forma tabellare con i titoli delle colonne: Richiesta + Stato + Tempo totale + Tempo richiesta + Richiesta byte + Risposta byte. Di seguito sono presenti schede che mostrano i dettagli dell'elemento selezionato, le schede sono etichettate Browser Web + Richiesta + Risposta + Contesto + Dettagli. Se fai clic sui piccoli triangoli sul lato sinistro della colonna "Richiesta", vedrai i reindirizzamenti e le richieste dipendenti. (Si noti che i registri per i test Web eseguiti all'interno di un test di carico omettono i dettagli delle richieste dipendenti.)

+0

Non sapevo che Visual Studio lo facesse.Ho davvero pensato che esegua solo richieste che sono registrate e visibili nella struttura. E 'molto poco informativo non dire la battuta o qualcosa con l'errore ... Questo non dovrebbe davvero fallire l'intero test, dal momento che 200 sono sufficienti, ma suppongo che sia così che funziona e non è molto configurabile :) –

+0

Potresti si prega di specificare dove trovare questo "registro di test web delle richieste riuscite". Non riesco a trovare alcuna richiesta dipendente elencata. –

4

L'impostazione "Parse Dependent Requests" su False per quella chiamata specifica aiuta.

+1

Ma così facendo impedirebbe l'emissione di tutte le altre richieste dipendenti valide. Ciò ridurrebbe il carico e metterebbe in dubbio la validità del test di carico. – AdrianHHH

Problemi correlati