Condividi tramite


Risoluzione dei problemi relativi ai test di carico

Aggiornamento: novembre 2007

In questo argomento vengono riportati i problemi comuni che si verificano quando si eseguono i test di carico in Visual Studio Team System Test Edition.

Impossibile utilizzare l'analisi SQL

Errore durante l'esecuzione del test. (Computer xyz) non è in grado di accedere al repository dei risultati: Il nome di oggetto 'LoadTestRun' non è valido

Errore LoadTestCounterNotFoundException

LoadTestResultsCollectorSlowException

Errore LoadTestErrorLimitExceededException

Nessun computer agente corrispondente ai criteri selezionati

Impossibile accedere al repository dei risultati del test di carico

Impossibile generare il carico previsto

Caricare limitazioni di generazione nei computer multicore

Impossibile utilizzare l'analisi SQL

Quando si esegue localmente un test di carico con l'analisi SQL attivata, è possibile ricevere il messaggio seguente:

Errore durante l'esecuzione del test. Impossibile avviare l'analisi SQL: L'utente non è autorizzato a ripristinare il database 'SP_TRACE_CREATE'

Per utilizzare l'analisi SQL in un test di carico eseguito localmente in un computer con il sistema operativo Windows Vista, è necessario essere un membro del ruolo sysadmin sull'istanza di SQL Server che si sta analizzando. Per correggere questo problema, è necessario essere aggiunti al ruolo sysadmin da un amministratore di SQL Server.

Errore durante l'esecuzione del test. (Computer xyz) non è in grado di accedere al repository dei risultati: Il nome di oggetto 'LoadTestRun' non è valido

Questo errore indica che lo schema del database del test di carico non è stato creato. È possibile utilizzare l'analizzatore query per eseguire il file LoadTestResultsRepository.Sql che si trova in <cartella di installazione di Visual Studio>\Common7\IDE\ per creare il database.

Se si utilizza SQL Express, è possibile eseguire "sqlcmd -S .\SQLEXPRESS -i loadtestresultsrepository.sql" al prompt dei comandi nella directory indicata in precedenza.

Attenzione:

Nei parametri viene fatta distinzione tra maiuscole e minuscole. È necessario digitare S in maiuscolo e i in minuscolo.

Per ulteriori informazioni, vedere la classe Procedura: creare un repository dei risultati tramite SQL.

Errore LoadTestCounterNotFoundException

Questo errore si verifica quando un contatore delle prestazioni incluso in uno degli insiemi di contatori del test di carico non viene trovato nella categoria di contatori delle prestazioni che lo contiene. Se si tratta di un contatore aggiunto all'insieme, è possibile che il relativo nome non sia stato digitato correttamente. È inoltre possibile che il contatore delle prestazioni non esista più nella categoria perché è stato rimosso in una revisione più recente del componente software in cui viene definito. È possibile rimuoverlo dall'insieme di contatori per correggere l'errore senza perdere dati utili.

Errore LoadTestResultsCollectorSlowException

Questo errore indica che il controller non è stato in grado di raccogliere i risultati dei contatori delle prestazioni da tutti i computer nella frequenza di campionamento specificata per il test di carico. Tale situazione può verificarsi se esistono diversi contatori delle prestazioni da raccogliere da molti computer diversi, come specificato dai mapping degli insiemi di contatori per il test di carico. Può inoltre verificarsi quando l'agente di carico viene eseguito nello stesso computer del controller. Potrebbe essere possibile correggere questo errore aumentando la frequenza di campionamento per il test di carico.

Errore LoadTestLimitExceededException

Questo errore si verifica ogni volta che vengono rilevati almeno 1000 errori dello stesso tipo. In genere indica che esiste un problema con il test in esecuzione nel test di carico. Ad esempio, se il test Web emette richieste a URL non trovati, è necessario correggere il test Web per risolvere l'errore.

Nessun computer agente corrispondente ai criteri selezionati

Quando si esegue un test in un rig, è possibile ricevere il messaggio seguente:

Nessun computer agente corrispondente ai criteri selezionati

Quando un test viene eseguito in un rig, è possibile specificare criteri di selezione per i computer agente connessi al controller. È ad esempio possibile specificare che per l'esecuzione di un test verranno utilizzati solo gli agenti con un sistema operativo specifico. Se non vengono specificati criteri, per l'esecuzione del test verranno utilizzati tutti gli agenti connessi al controller. Se nessun agente corrisponde ai criteri di selezione, il test non verrà eseguito.

Per correggere il problema, attenersi alla procedura seguente:

  1. Scegliere Modifica configurazioni di esecuzione dei test dal menu Test, quindi fare clic sulla configurazione attiva.

    Nota:

    Per individuare la configurazione attiva, scegliere Seleziona configurazione di esecuzione dei test attiva dal menu Test. La configurazione attiva sarà contraddistinta da un segno di spunta.

  2. Nella casella di riepilogo fare clic su Controller e agente.

  3. Nella griglia relativa a nome e valore, eliminare i criteri che escludono gli agenti che si desidera utilizzare per l'esecuzione del test.

  4. Al termine, scegliere Applica e quindi OK.

Impossibile accedere al repository dei risultati del test di carico

Quando si esegue un test di carico, è possibile ricevere il messaggio seguente:

Impossibile accedere al repository dei risultati del test di carico

Una delle possibili cause di questo errore è che i nomi dei parametri sono stati specificati con una combinazione di maiuscole e minuscole errata durante l'utilizzo dell'utilità da riga di comando SQLCMD per impostare il repository dei risultati del test di carico. Nel codice seguente è riportato un comando di esempio per impostare un repository dei risultati del test di carico in un server denominato ContosoServer1:

SQLCMD -S ContosoServer1 -U <user name> -P <password> -i loadtestresultsrepository.sql

Attenzione:

Nei parametri viene fatta distinzione tra maiuscole e minuscole. È necessario digitare S, U e P in maiuscolo e i in minuscolo.

Per ulteriori informazioni, vedere la classe Procedura: creare un repository dei risultati tramite SQL.

Impossibile generare il carico previsto

Un problema comune che si verifica quando si esegue un test di carico è l'impossibilità di generare il carico previsto. Nella tabella seguente sono elencate alcune possibili cause del problema:

Il carico massimo è limitato dal tempo interazione utente o dal numero di utenti virtuali.

Se il tempo interazione utente è attivato, può limitare la frequenza con cui ogni singolo utente virtuale può inviare richieste. Ad esempio, 5 secondi di tempo interazione utente per richiesta producono un massimo di 0,2 richieste al secondo per ogni utente virtuale. È possibile provare una delle modifiche seguenti, nell'ordine di preferenza:

  1. Aumentare il numero di utenti virtuali per una generazione del carico più realistica. L'aumento del numero di utenti virtuali richiede in genere più memoria.

  2. Ridurre il tempo interazione utente.

  3. Disattivare il tempo interazione utente per massimizzare la generazione del carico.

    Attenzione:

    La disattivazione del tempo interazione utente può avere un notevole impatto sul modulo di test. Se si sceglie questa opzione, ridurre il numero di utenti virtuali.

La proprietà proxy del test Web è impostata sul valore predefinito.

L'utilizzo dell'impostazione proxy predefinita in un test Web risulta utile perché consente il rilevamento automatico del server proxy. Tuttavia, può causare problemi di prestazioni nei test di carico e riduce sensibilmente la velocità effettiva massima. È preferibile non utilizzare un server proxy durante l'esecuzione di un test di carico. Se è necessario un server proxy, specificare il relativo nome anziché l'impostazione predefinita.

Colli di bottiglia dell'applicazione.

Tenere presente che lo strumento per i test di carico è stato progettato per individuare i colli di bottiglia nell'applicazione. Se alcune pagine hanno tempi di risposta elevati a causa di un collo di bottiglia del database o della CPU, il numero di richieste al secondo che ogni utente virtuale può emettere verrà limitato. Iniziare con una piccola quantità di carico e aumentarla lentamente verificando che i tempi di risposta rimangano accettabili. È possibile utilizzare la proprietà Tempo di risposta obiettivo per impostare il tempo di risposta massimo previsto per ogni richiesta.

È stato superato il limite di utilizzo della CPU, della memoria o della rete del server Web.

Se è stato superato il limite di utilizzo della CPU, della memoria o della rete del server Web, potrebbe essere impossibile generare il carico previsto. È possibile che sia stato raggiunto il limite di carico del server. Aumentare la CPU, la memoria o la rete del server Web.

È stato superato il limite di utilizzo della CPU, della memoria o della rete del computer che genera il carico.

Potrebbero essere necessari computer più potenti o più computer agente per generare il carico desiderato.

È stato superato il limite di utilizzo della CPU, della memoria o della rete del server database (se applicabile).

Se è stato superato il limite di utilizzo della CPU, della memoria o della rete del server database, potrebbe essere impossibile generare il carico previsto. È possibile che sia stato raggiunto il limite di carico del server di database. Aumentare la CPU, la memoria o la rete del server database.

Caricare limitazioni di generazione nei computer multicore

Quando si eseguono test di carico nei computer multicore, la generazione del carico viene limitata come segue:

  • Se nel computer è in esecuzione Visual Studio Team System Test Edition o Visual Studio Team System, la generazione del carico è limitata a un core.

  • Se nel computer è in esecuzione Visual Studio Team System Test Load Agent, la generazione del carico non è limitata e vengono eseguiti tutti i core e i processori.

Vedere anche

Attività

Risoluzione dei problemi relativi a Test Edition

Risoluzione dei problemi relativi ai test Web

Risoluzione dei problemi relativi a controller, agenti e rig

Procedura: creare un repository dei risultati tramite SQL

Concetti

Considerazioni per test di carico di grandi dimensioni

Controller, agenti e rig

Analisi degli errori di un test di carico

Analisi delle violazioni delle regole di soglia

Altre risorse

Repository dei risultati del test di carico