Il presente articolo è stato tradotto automaticamente.

Load Testing

Load Testing più semplice con Microsoft Azure e Visual Studio Online

Charles Sterling

Internet è il grande equalizzatore nel mondo degli affari. Aiuta le imprese più piccole competere con le più grandi società del mondo. C'è tanto opportunità quanto vi è il rischio. Il tempo tutto il tempo necessario eseguire applicazioni. I tempi di inattività equivale direttamente a mancati introiti. Per comprendere le caratteristiche delle prestazioni delle loro applicazioni sotto costrizione e uso intenso team di sviluppo, Microsoft ha rilasciato strumenti di test di carico con Visual Studio Team System nel 2005.

Anche prima di tale rilascio, Visual Studio test di carico è stato uno degli strumenti di prova utilizzata più ampiamente internamente. Che pone la domanda, indipendentemente dallo strumento utilizzato, perché non ha test di carico guadagnare l'accettazione stessa dal mondo intero? Si scopre che il test di carico non è fatto dalla maggior parte dei team di sviluppo dovuto lo sforzo di creazione e gestione dell'infrastruttura necessaria. Che è un inutile rischio.

Con Visual Studio 2013, Microsoft ha rilasciato carico basato su cloud test come parte di Visual Studio Online. Questo risolve la sfida di utilizzare Microsoft Azure automaticamente il provisioning e ospitare un infrastruttura di test di carico. Con Visual Studio 2013 Update 3, carico di nube in Visual Studio Online test è stata ulteriormente migliorata con integrazione di applicazione Insights. Questo aiuta a dimostrare la diagnostica interna, quali i contatori delle prestazioni, le eccezioni e gli oggetti allocati durante l'esecuzione.

Creare un Test di carico

Se non si ha familiarità con il processo di test di carico in Visual Studio, si dovrebbe iniziare con un progetto di Test di carico e prestazioni Web. Fare questo dal File | Nuovo menu progetto. Selezionare il Test delle prestazioni Web e i Test di carico per creare uno o più test Web.

Per guidare questi test Web, aggiungere al progetto un test di carico (vedere Figura 1). Aprire Solution Finder, fare clic destro sul progetto (miniera è denominata WebLoadTestProject1), selezionare Aggiungi, quindi il Test di carico e seguire le istruzioni della creazione guidata Test di carico. Durante il test di carico, il sistema raccoglie informazioni quali il numero di utenti, durata, il tipo di tempo di riscaldamento rete, distribuzione di prova e così via. Un'altra opzione consiste nel creare un test di carico dinamico utilizzo dell'associazione dati (vedere "Dati Associazione Web test per test di carico basato su Cloud").

aggiungere Test di carico per un progetto
Figura 1 aggiungere Test di carico per un progetto

Test Web, test di carico basato su Cloud di associazione dati

Mentre un test Web statico può dare prestazioni informazioni dettagliate circa l'applicazione, sarete in grado di derivare più comprensione da un test Web dinamico. Queste prove di carico dinamico in genere forniscono valori diversi per ogni esecuzione. Ad esempio, anziché inviare il termine di ricerca "Rana" migliaia di volte, esso sarebbe più sensato usare altri termini di ricerca probabile e nomi che prova le condizioni al contorno (ad esempio "rospo," "Rana" e così via). È possibile eseguire questa operazione con una tecnica avanzata chiamata associazione dati.

Ai dati associare un test Web, è necessario aggiungere un'origine dati al test Web dalla barra degli strumenti di Test Web. Questo tipo di test dinamico sosterrà il database, CSV e XML come origini dati. Tenete a mente, per le fonti di dati XML e CSV che l'intero file viene copiato nella macchina virtuale agente. Inoltre, per prove di carico basato su cloud, l'agente di test deve essere in grado di connettersi all'origine dati. Pertanto, la fonte di dati del database deve essere in esecuzione su Microsoft Database SQL Azure.

Le proprietà dell'origine dati che si sta utilizzando per il test Web determinano come il test attraverseranno la fonte dei dati: Non si muovono, casuale, sequenziale o unici. Si noti che la proprietà Unique non funziona ancora con prove di carico basato su cloud. Dopo aver aggiunto un'origine dati, la proprietà value del tuo parametro di stringa di query (in precedenza la stringa statica "Rana") sarà ora una voce di menu a discesa. Questo ti aiuterà ad associare il test a una particolare colonna dell'origine dati.

Mettere Azure a lavoro

In genere, il vero lavoro comincia dopo aver creato il test di carico. A questo punto, il test team ha bisogno di computer per ospitare gli agenti di Test che effettivamente esegue il test di carico. Ad esempio, se si vuole mettere un carico di 5.000-utente sul tuo sito Web e puoi sostenere 500 utenti al computer che esegue i test richiesti, il team di test sarà necessario ad acquisire, disposizione e gestire un ulteriore 10 computer.

Tuttavia, utilizzando l'opzione nel file Local.TestingSettings, Visual Studio test di carico cloud Online può prendersi cura di tutto questo per voi. Per impostazione predefinita, test di carico nube inizierà automaticamente agente Azure ospitato per ogni 500 utenti. Ogni agente ha due core.

È possibile ignorare questo comportamento attraverso una nuova proprietà impostazioni di esecuzione chiamato agente Conte (core totali). L'implementazione corrente di test di carico di nuvola si limita ad un massimo di 10 agenti o 20 core. Test di carico nube anche richiede almeno 25 utenti per ogni core. Così mentre è possibile impostare la proprietà Count dell'agente (core totali) a 10 per un carico con solo 10 utenti, test di carico nube avrebbe solo allocare un agente e informarvi di questo con il seguente messaggio:

"Questo test di carico verrà eseguito utilizzando uno core di agente. Agente Core Count valore è stato modificato da '10' a 'uno', come un carico di prova in modo ottimale esigenze '25' utenti virtuali per ogni core. Saperne di più qui a go.microsoft.com/fwlink/?LinkID=310093. "

Per le prove che incorporano più di 5.000 utenti, gli utenti vengono distribuiti tra i 10 agenti e 20 core.

Comprendere il Test di carico

Tipicamente Inizierai il tuo carico di test gli sforzi di chiedendo domande che del test di carico dovrebbe rispondere come:

  • È veloce come mi aspetto che la mia domanda?
  • È la mia performance sempre meglio o peggio?
  • È il mio codice generando errori sotto carico?

Per rispondere a queste domande, test di carico Visual Studio fornisce parecchi rapporti diversi. Poi automaticamente archivierà li sui dati fase per voi e la vostra squadra in Visual Studio Online.

Ad esempio, utilizzando il rapporto di velocità effettiva e aver visualizzato durante l'esecuzione di test di carico, sarete in grado di dire in un colpo d'occhio se l'applicazione viene eseguita come previsto (Vedi Figura 2). Tempi di risposta veloci, accoppiati con un inaspettato numero di fallimenti inaspettatamente suggerire un errore sistematico (come un servizio essere giù o un nome di server non corretto). Quindi è possibile interrompere il test di carico.

la pagina Visual Studio carico Online Test Report
Figura 2 la pagina Visual Studio carico Online Test Report

Un altro aspetto stimolante del test di carico tradizionale che risolve Visual Studio test di carico è collaborazione in un ambiente di team, come risultati della prova di condivisione e memorizzazione di carico. In gestione Test di carico in Figura 3, si possono vedere solo due membri del team stanno facendo la verifica delle prestazioni. Le ultime quattro esecuzioni sono state interrotte e hai solo un altro run in coda. Qualcosa non sta andando bene lì.

la gestione di Test di carico
Nella figura 3, la gestione di Test di carico

Team Agile sono in genere interessati a conoscere l'impatto delle loro attuali sforzi sprint sulle prestazioni. Per rispondere a questo, Visual Studio fornisce due rapporti diversi basati su Excel che aiutano la squadra corre di confrontare ed esaminare le tendenze. Per visualizzare questa informazioni approfondite, scaricare i dati di esecuzione da Visual Studio Online. Clicca sul link visualizzazione report. Questo apre una visualizzazione di report di dati — tra cui la possibilità di aprire e confrontare più insiemi di dati di esecuzione in Excel.

La relazione in Figura 4 confronta Sprint2 contro Sprint3. Si può vedere che mentre la performance è più lento del 4 per cento, ci sono molti meno errori. Che è un compromesso gestibile alla squadra.

esempio di un carico completato test Report
Figura 4 esempio di un carico completato test Report

Integrare l'applicazione Insights

Errori scoperti durante i test di carico sono spesso messa in discussione a causa di tecniche di diagnostica discutibile raccolta. Peggio ancora sono quegli errori che sono difficili o impossibili da diagnosticare a causa di informazioni di diagnostica insufficiente raccolta.

Con Visual Studio 2013 Update 2, test di carico nube è stata migliorata con l'integrazione dell'applicazione Insights. Vedere l'articolo di maggio 2014, "Generazione sviluppo con applicazione Insights" (msdn.microsoft.com/magazine/dn683794.aspx). Questa integrazione con strumenti di monitoraggio della produzione consente applicazioni di test in produzione o in sviluppo. Aiuta anche il team di sviluppo di trovare e iniziare ad affrontare eventuali errori scoprono, indipendentemente da quando sono stati trovati — se un'ora, giorno o settimana prima.

Per includere le prestazioni integrate e informazioni di diagnostica nel test di carico cloud utilizzando l'applicazione Insights, tasto destro del mouse sul nodo applicazioni della definizione di test di carico. Quindi selezionare il componente di intuizioni applicazione volete includere nella vostra segnalazione prova di carico.

Conclusioni

Nube carico test in Visual Studio Online rimuove gran parte del lavoro di impostazione e testare la tua applicazione­cazione. Mentre Azure rende facile adattare le applicazioni e potenzialmente "acquistare" il modo di scarso rendimento codice, senza prove di carico, è spesso difficile o impossibile sapere quanto costerà. È anche difficile dire che se sarà necessario fare questo prima c'è un impatto negativo sui vostri clienti. Nuvola completo carico test può aiutare ad identificare i bug del sito vivo che può avere un impatto sul vostro business.


Charles Sterling è stato di Microsoft per 20 anni. Prima di Microsoft è stato un biologo marino, lavorando per la pesca marittima nazionale degli Stati Uniti facendo ricerca mammiferi marini sul mare di Bering. Dopo un tour di sei anni in Australia come un product manager di Microsoft, Sterling è attualmente in Redmond come senior program manager del team di sviluppo di Visual Studio . Contattarlo al chass@microsoft.com.

Grazie al seguente Microsoft esperto tecnico per la revisione di questo articolo: Manas Meletti