Test Web in più passiMulti-step web tests

È possibile monitorare una sequenza registrata di URL e interazioni con un sito Web tramite test Web in più passaggi.You can monitor a recorded sequence of URLs and interactions with a website via multi-step web tests. In questo articolo viene illustrato il processo di creazione di un test Web in più passaggi con Visual Studio Enterprise.This article will walk you through the process of creating a multi-step web test with Visual Studio Enterprise.

Nota

I test Web in più passaggi dipendono dai file di test Web di Visual Studio.Multi-step web tests depend on Visual Studio webtest files. È stato annunciato che Visual Studio 2019 sarà l'ultima versione con funzionalità di test Web.It was announced that Visual Studio 2019 will be the last version with webtest functionality. È importante comprendere che, sebbene non vengano aggiunte nuove funzionalità, la funzionalità di test Web in Visual Studio 2019 è ancora attualmente supportata e continuerà a essere supportata durante il ciclo di vita del supporto del prodotto.It is important to understand that while no new features will be added, webtest functionality in Visual Studio 2019 is still currently supported and will continue to be supported during the support lifecycle of the product. Il team del prodotto monitoraggio di Azure ha risolto le domande relative al futuro dei test didisponibilità in più passaggi.The Azure Monitor product team has addressed questions regarding the future of multi-step availability tests here.

PrerequisitiPre-requisites

  • Visual Studio 2017 Enterprise o versione successiva.Visual Studio 2017 Enterprise or greater.
  • Strumenti per test di carico e prestazioni Web di Visual Studio.Visual Studio web performance and load testing tools.

Per individuare il prerequisito degli strumenti di test.To locate the testing tools pre-requisite. Avviare il Programma di installazione di Visual Studio > singoli componenti > ildebug e il test > strumenti per test di carico e prestazioni Web.Launch the Visual Studio Installer > Individual components > Debugging and testing > Web performance and load testing tools.

Screenshot dell'interfaccia utente del programma di installazione di Visual Studio con singoli componenti selezionati con una casella di controllo accanto all'elemento per gli strumenti di test di carico e prestazioni Web

Nota

Ai test Web in più passaggi sono associati costi aggiuntivi.Multi-step web tests have additional costs associated with them. Per ulteriori informazioni, consultare la Guida ai prezzi ufficiale.To learn more consult the official pricing guide.

Registrare un test Web in più passaggiRecord a multi-step web test

Avviso

Non è più consigliabile usare la registrazione in più passaggi.We no longer recommend using the multi-step recorder. Il registratore è stato sviluppato per le pagine HTML statiche con interazioni di base e non fornisce un'esperienza funzionale per le pagine Web moderne.The recorder was developed for static HTML pages with basic interactions, and does not provide a functional experience for modern web pages.

Per istruzioni sulla creazione di test Web di Visual Studio, vedere la documentazione ufficiale di Visual studio 2019.For guidance on creating Visual Studio web tests consult the official Visual Studio 2019 documentation.

Caricare il test WebUpload the web test

  1. Nel portale di Application Insights nel riquadro disponibilità selezionare Crea test > tipo di test > test Webin più passaggi.In the Application Insights portal on the Availability pane select Create Test > Test type > Multi-step web test.

  2. Impostare i percorsi dei test, la frequenza e i parametri di avviso.Set the test locations, frequency, and alert parameters.

Località & frequenzaFrequency & location

ImpostazioneSetting SpiegazioneExplanation
Frequenza testTest frequency impostare la frequenza di esecuzione del test da ogni località di test.Sets how often the test is run from each test location. Con una frequenza predefinita di cinque minuti e cinque località di test, il sito verrà testato in media ogni minuto.With a default frequency of five minutes and five test locations, your site is tested on average every minute.
Percorsi testTest locations Sono le posizioni da cui i server inviano richieste Web all'URL.Are the places from where our servers send web requests to your URL. Il numero minimo di posizioni di test consigliate è cinque per garantire che sia possibile distinguere i problemi nel sito Web dai problemi di rete.Our minimum number of recommended test locations is five in order to insure that you can distinguish problems in your website from network issues. È possibile selezionare fino a 16 località.You can select up to 16 locations.

Criteri di esito positivoSuccess criteria

ImpostazioneSetting SpiegazioneExplanation
Timeout testTest timeout ridurre questo valore per ricevere avvisi in merito alle risposte lente.Decrease this value to be alerted about slow responses. Il test viene conteggiato come non riuscito se le risposte dal sito non sono state ricevute entro questo periodo.The test is counted as a failure if the responses from your site have not been received within this period. Se è stata selezionata l'opzione Analizza richieste dipendenti, è necessario che tutti gli script, i file di stile, le immagini e le altre risorse dipendenti siano stati ricevuti entro questo periodo.If you selected Parse dependent requests, then all the images, style files, scripts, and other dependent resources must have been received within this period.
Risposta HTTPHTTP response codice di stato restituito che indica un'operazione riuscita.The returned status code that is counted as a success. 200 è il codice che indica che è stata restituita una normale pagina Web.200 is the code that indicates that a normal web page has been returned.
Corrispondenza contenutoContent match Stringa, ad esempio "Welcome!"A string, like "Welcome!" Verifichiamo che in ogni risposta ci una corrispondenza esatta di maiuscolo e minuscolo.We test that an exact case-sensitive match occurs in every response. Deve trattarsi di una stringa di testo normale, senza caratteri jolly.It must be a plain string, without wildcards. È importante ricordare che, se il contenuto cambia, potrebbe essere necessario aggiornare la stringa.Don't forget that if your page content changes you might have to update it. Con la corrispondenza del contenuto sono supportati solo i caratteri inglesiOnly English characters are supported with content match

AvvisiAlerts

ImpostazioneSetting SpiegazioneExplanation
Quasi in tempo reale (anteprima)Near-realtime (Preview) Si consiglia di usare gli avvisi near-realtime.We recommend using Near-realtime alerts. La configurazione di questo tipo di avviso viene eseguita dopo la creazione del test di disponibilità.Configuring this type of alert is done after your availability test is created.
ClassicoClassic Non è più consigliabile usare gli avvisi classici per i nuovi test di disponibilità.We no longer recommended using classic alerts for new availability tests.
Soglia posizione avvisoAlert location threshold Si consiglia un minimo di 3-5 posizioni.We recommend a minimum of 3/5 locations. La relazione ottimale tra la soglia della posizione di avviso e il numero di percorsi di test è la soglia di posizione degli avvisi = numero di percorsi di test-2, con almeno cinque posizioni di test.The optimal relationship between alert location threshold and the number of test locations is alert location threshold = number of test locations - 2, with a minimum of five test locations.

ConfigurazioneConfiguration

Inserimento di tempi e numeri casuali nel testPlugging time and random numbers into your test

Si supponga di voler testare uno strumento che riceva dati dipendenti dal tempo, come ad esempio valori di scorte da un feed esterno.Suppose you're testing a tool that gets time-dependent data such as stocks from an external feed. Quando si registra il test Web, è necessario usare tempi specifici impostandoli come parametri del test, StartTime e EndTime.When you record your web test, you have to use specific times, but you set them as parameters of the test, StartTime and EndTime.

Schermata My Awesome Stock app

Quando si esegue il test, si vuole che EndTime sia sempre l'ora corrente e StartTime 15 minuti fa.When you run the test, you'd like EndTime always to be the present time, and StartTime should be 15 minutes ago.

Il plug-in data e ora del test Web consente di gestire i parametrizzazioni.The Web Test Date Time Plugin provides the way to handle parameterize times.

  1. Aggiungere un plug-in del test Web per ciascun valore di parametro desiderato.Add a web test plug-in for each variable parameter value you want. Nella barra degli strumenti del test Web scegliere Aggiungi plug-in test Web.In the web test toolbar, choose Add Web Test Plugin.

    Aggiungi plug-in test Web

    In questo esempio vengono usate due istanze di Plug-in data e ora,In this example, we use two instances of the Date Time Plug-in. una per "15 minuti fa" e l'altra per "ora".One instance is for "15 minutes ago" and another for "now."

  2. Aprire le proprietà di ciascun plug-in.Open the properties of each plug-in. Assegnare un nome al plug-in e impostarlo in modo che usi l'ora corrente.Give it a name and set it to use the current time. Per uno di essi, impostare Aggiungi minuti = -15.For one of them, set Add Minutes = -15.

    Parametri di contesto

  3. Nei parametri del test Web, usare {{nome plug-in}} per fare riferimento a un nome di plug-in.In the web test parameters, use {{plug-in name}} to reference a plug-in name.

    StartTime

Caricare quindi il test nel portale.Now, upload your test to the portal. Userà i valori dinamici ogni volta che verrà eseguito.It will use the dynamic values on every run of the test.

Gestione degli accessiDealing with sign-in

Se gli utenti accedono all'app, è possibile simulare l'accesso in vari modi per testare le pagine usate per l'accesso.If your users sign in to your app, you have various options for simulating sign-in so that you can test pages behind the sign-in. L'approccio da preferire dipende dal tipo di sicurezza fornito dall'app.The approach you use depends on the type of security provided by the app.

In tutti i casi è consigliabile creare un account nell'applicazione solo a scopo di test.In all cases, you should create an account in your application just for the purpose of testing. Se possibile, limitare le autorizzazioni dell'account di test in modo che i test Web non possano influire in alcun modo sugli utenti reali.If possible, restrict the permissions of this test account so that there's no possibility of the web tests affecting real users.

Nome utente e password semplici Registrare un test Web nel modo consueto.Simple username and password Record a web test in the usual way. Eliminare prima di tutto i cookie.Delete cookies first.

Autenticazione SAMLSAML authentication

Nome proprietàProperty name DescriptionDescription
URI del gruppo di destinatariAudience Uri URI del destinatario per il token SAML.The audience URI for the SAML token. Si tratta dell'URI per il servizio di controllo di accesso (ACS), inclusi lo spazio dei nomi ACS e il nome host.This is the URI for the Access Control Service (ACS) – including ACS namespace and host name.
Password certificatoCertificate Password Password del certificato client che consentirà l'accesso alla chiave privata incorporata.The password for the client certificate which will grant access to the embedded private key.
Certificato clientClient Certificate Il valore del certificato client con la chiave privata nel formato con codifica Base64.The client certificate value with private key in Base64 encoded format.
Identificatore nomeName Identifier Identificatore del nome per il token.The name identifier for the token
Non dopoNot After TimeSpan per il quale il token sarà valido.The timespan for which the token will be valid. Il valore predefinito è 5 minuti.The default is 5 minutes.
Non primaNot Before TimeSpan per il quale un token creato in passato sarà valido (per risolvere gli sfasamento dell'ora).The timespan for which a token created in the past will be valid (to address time skews). Il valore predefinito è (negativo) 5 minuti.The default is (negative) 5 minutes.
Nome parametro di contesto di destinazioneTarget Context Parameter Name Parametro di contesto che riceverà l'asserzione generata.The context parameter that will receive the generated assertion.

Segreto client Se l'app ha una route di accesso che include un segreto client, usare tale route.Client secret If your app has a sign-in route that involves a client secret, use that route. Un servizio che offre l'accesso con segreto client è ad esempio Azure Active Directory (AAD).Azure Active Directory (AAD) is an example of a service that provides a client secret sign-in. In AAD, il segreto client è la chiave dell'app.In AAD, the client secret is the App Key.

Ecco un test Web di esempio di un'app Web di Azure che usa una chiave dell'app:Here's a sample web test of an Azure web app using an app key:

Schermata di esempio

Ottenere il token da AAD usando il segreto client (AppKey).Get token from AAD using client secret (AppKey). Estrarre il token di connessione dalla risposta.Extract bearer token from response. Chiamare l'API usando il token di connessione nell'intestazione dell'autorizzazione.Call API using bearer token in the authorization header. Verificare che il test Web sia un client effettivo, ovvero che disponga di una propria app in AAD e che usi la chiave ClientID + app.Make sure that the web test is an actual client - that is, it has its own app in AAD - and use its clientId + app key. Anche il servizio sottoposto a test ha una propria app in AAD, il cui URI ID app è riportato nel campo risorsa del test Web.Your service under test also has its own app in AAD: the appID URI of this app is reflected in the web test in the resource field.

Autenticazione apertaOpen Authentication

Un esempio di autenticazione aperta è l'accesso con il proprio account Microsoft o Google.An example of open authentication is signing in with your Microsoft or Google account. Molte app che usano OAuth offrono l'alternativa del segreto client ed è quindi consigliabile ricercare prima di tutto tale possibilità.Many apps that use OAuth provide the client secret alternative, so your first tactic should be to investigate that possibility.

Se il test deve eseguire l'accesso con OAuth, procedere come indicato di seguito:If your test must sign in using OAuth, the general approach is:

Usare uno strumento come Fiddler per esaminare il traffico tra il Web browser, il sito di autenticazione e l'app.Use a tool such as Fiddler to examine the traffic between your web browser, the authentication site, and your app. Eseguire due o più accessi usando computer o browser diversi oppure a distanza di tempo, per lasciar scadere i token.Perform two or more sign-ins using different machines or browsers, or at long intervals (to allow tokens to expire). Mettendo a confronto le diverse sessioni, identificare il token restituito dal sito di autenticazione e poi passato al server applicazioni dopo l'accesso.By comparing different sessions, identify the token passed back from the authenticating site, that is then passed to your app server after sign-in. Registrare un test Web usando Visual Studio.Record a web test using Visual Studio. Impostare i parametri dei token quando questi vengono restituiti dall'autenticatore e usarli per l'esecuzione di query nel sito.Parameterize the tokens, setting the parameter when the token is returned from the authenticator, and using it in the query to the site. Visual Studio prova a impostare i parametri del test, ma non imposta correttamente i parametri dei token.(Visual Studio attempts to parameterize the test, but does not correctly parameterize the tokens.)

risoluzione dei problemiTroubleshooting

Articolo dedicato alla risoluzione dei problemi.Dedicated troubleshooting article.

Passaggi successiviNext steps