Testes na Web com diversas etapasMulti-step web tests

Monitore uma sequência registrada de URLs e interações com um site através de testes na Web de várias etapas.You can monitor a recorded sequence of URLs and interactions with a website via multi-step web tests. Este artigo explicará o processo de criação de um teste na Web de várias etapas com o Visual Studio Enterprise.This article will walk you through the process of creating a multi-step web test with Visual Studio Enterprise.

Observação

Testes na Web de várias etapas dependem de arquivos de webtest do Visual Studio.Multi-step web tests depend on Visual Studio webtest files. Foi anunciado que o Visual Studio 2019 será a última versão com a funcionalidade webtest.It was announced that Visual Studio 2019 will be the last version with webtest functionality. É importante entender que, embora nenhum novo recurso seja adicionado, a funcionalidade webtest no Visual Studio 2019 ainda é suportada e continuará a ter suporte durante o ciclo de vida de suporte do produto.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. A equipe de produto do Azure Monitor respondeu perguntas sobre o futuro dos testes de disponibilidade de várias etapas aqui.The Azure Monitor product team has addressed questions regarding the future of multi-step availability tests here.

Não há suporte para testes na Web de várias etapas na nuvem do Azure Governamental.Multi-step web tests are not supported in the Azure Government cloud.

Pré-requisitosPre-requisites

  • Visual Studio 2017 Enterprise ou superior.Visual Studio 2017 Enterprise or greater.
  • Ferramentas de teste de carga e desempenho Web do Visual Studio.Visual Studio web performance and load testing tools.

Localizar o pré-requisito das ferramentas de teste.To locate the testing tools pre-requisite. Inicie o Instalador do Visual Studio > Componentes individuais > Depuração e teste > Ferramentas de teste de carga e de desempenho Web.Launch the Visual Studio Installer > Individual components > Debugging and testing > Web performance and load testing tools.

Captura de tela da interface do usuário do instalador do Visual Studio com componentes individuais selecionados com uma caixa de seleção ao lado do item para ferramentas de teste de carga e desempenho Web

Observação

Testes na Web de várias etapas têm custos adicionais associados a eles.Multi-step web tests have additional costs associated with them. Para saber mais, consulte o guia de preços oficial.To learn more consult the official pricing guide.

Gravação de um teste na Web de várias etapasRecord a multi-step web test

Aviso

Não é mais recomendável usar o gravador de várias etapas.We no longer recommend using the multi-step recorder. O gravador foi desenvolvido para páginas HTML estáticas com interações básicas e não fornece uma experiência funcional para páginas da Web modernas.The recorder was developed for static HTML pages with basic interactions, and does not provide a functional experience for modern web pages.

Para obter orientação sobre como criar testes na Web do Visual Studio, consulte a documentação oficial do Visual Studio 2019.For guidance on creating Visual Studio web tests consult the official Visual Studio 2019 documentation.

Carregamento do teste na WebUpload the web test

  1. No portal do Application Insights no painel Disponibilidade, selecione Criar teste > Tipo de teste > Teste na Web de várias etapas.In the Application Insights portal on the Availability pane select Create Test > Test type > Multi-step web test.

  2. Defina os locais, a frequência e os parâmetros de alerta do teste.Set the test locations, frequency, and alert parameters.

Frequência e localFrequency & location

ConfiguraçãoSetting ExplicaçãoExplanation
Frequência de testeTest frequency define a frequência com que o teste é executado em cada localização de teste.Sets how often the test is run from each test location. Com uma frequência padrão de cinco minutos e cinco locais de teste, seu site é testado em média a cada minuto.With a default frequency of five minutes and five test locations, your site is tested on average every minute.
Locais de testeTest locations São os locais de onde nossos servidores enviam solicitações da Web para a sua URL.Are the places from where our servers send web requests to your URL. O número mínimo de locais de teste recomendado é cinco, para garantir que você possa diferenciar problemas no seu site de problemas na rede.Our minimum number of recommended test locations is five in order to insure that you can distinguish problems in your website from network issues. Você pode selecionar até 16 locais.You can select up to 16 locations.

Critérios de êxitoSuccess criteria

ConfiguraçãoSetting ExplicaçãoExplanation
Tempo limite de testeTest timeout diminua esse valor para ser alertado sobre respostas lentas.Decrease this value to be alerted about slow responses. O teste é considerado uma falha se as respostas de seu site não são recebidas dentro desse período.The test is counted as a failure if the responses from your site have not been received within this period. Se você tiver selecionado Analisar solicitações dependentes, todas as imagens, arquivos de estilo, scripts e outros recursos dependentes devem ter sido recebidos dentro desse período.If you selected Parse dependent requests, then all the images, style files, scripts, and other dependent resources must have been received within this period.
Resposta HTTPHTTP response o código de status retornado que é contado como êxito.The returned status code that is counted as a success. 200 é o código que indica que uma página da Web normal foi retornada.200 is the code that indicates that a normal web page has been returned.
Correspondência de conteúdoContent match Uma cadeia de caracteres como, por exemplo, “Bem-vindo!”A string, like "Welcome!" Faremos o teste que uma correspondência exata de maiúsculas e minúsculas ocorre em todas as respostas.We test that an exact case-sensitive match occurs in every response. É necessário que seja uma cadeia de caracteres simples, sem curingas.It must be a plain string, without wildcards. Lembre-se de que se o conteúdo de sua página for alterado, talvez seja necessário atualizá-lo.Don't forget that if your page content changes you might have to update it. Somente caracteres da língua inglesa têm suporte na correspondência de conteúdoOnly English characters are supported with content match

AlertasAlerts

ConfiguraçãoSetting ExplicaçãoExplanation
Quase em tempo real (Versão prévia)Near-realtime (Preview) É recomendável usar alertas quase em tempo real.We recommend using Near-realtime alerts. A configuração desse tipo de alerta é feita após a criação do teste de disponibilidade.Configuring this type of alert is done after your availability test is created.
ClássicoClassic Não recomendamos o uso de alertas clássicos para novos testes de disponibilidade.We no longer recommended using classic alerts for new availability tests.
Limite de locais de alertaAlert location threshold é recomendável um mínimo de 3/5 locais.We recommend a minimum of 3/5 locations. A relação ideal entre o limite de alertas locais e o número de locais de teste é o limite de alertas locais = número de locais de teste - 2, com um mínimo de cinco locais de teste.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.

ConfiguraçãoConfiguration

Tempo de conexão e números aleatórios no testePlugging time and random numbers into your test

Suponha que você está testando uma ferramenta que obtém dados dependentes de tempo, como estoques de um feed externo.Suppose you're testing a tool that gets time-dependent data such as stocks from an external feed. Quando grava seu teste na Web você deve usar horários específicos, definindo-os, todavia, como parâmetros do teste, 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.

Captura de tela do meu aplicativo incrível de ações

Quando você executa o teste, o ideal é que EndTime seja sempre a hora atual e StartTime seja o horário de 15 minutos atrás.When you run the test, you'd like EndTime always to be the present time, and StartTime should be 15 minutes ago.

O plug-in de data e hora do teste na Web fornece a maneira de lidar com os tempos de parametrização.The Web Test Date Time Plugin provides the way to handle parameterize times.

  1. Adicione um plug-in de teste na Web para cada valor de parâmetro variável desejado.Add a web test plug-in for each variable parameter value you want. Na barra de ferramentas de teste da Web, escolha Adicionar Plug-in de Teste na Web.In the web test toolbar, choose Add Web Test Plugin.

    Adicionar plug-in de teste na Web

    Neste exemplo, usamos duas instâncias do plug-in de Data e Hora.In this example, we use two instances of the Date Time Plug-in. É uma instância de "15 minutos atrás" e outra de "agora".One instance is for "15 minutes ago" and another for "now."

  2. Abra as propriedades de cada plug-in.Open the properties of each plug-in. Atribua um nome e configure-o para usar a hora atual.Give it a name and set it to use the current time. Para um deles, defina Add Minutes = -15.For one of them, set Add Minutes = -15.

    Parâmetros de contexto

  3. Nos parâmetros de teste na Web, use {{nome do plug-in}} para fazer referência a um nome de plug-in.In the web test parameters, use {{plug-in name}} to reference a plug-in name.

    StartTime

Agora, carregue seu teste no portal.Now, upload your test to the portal. Ele usará os valores dinâmicos em todas as execuções do teste.It will use the dynamic values on every run of the test.

Lidando com a entradaDealing with sign-in

Se os usuários entrarem em seu aplicativo, você terá várias opções para simular entradas para poder testar as páginas por trás da entrada.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. A abordagem usada dependerá do tipo de segurança fornecida pelo aplicativo.The approach you use depends on the type of security provided by the app.

Em todos os casos, você deve criar uma conta no aplicativo apenas para fins de teste.In all cases, you should create an account in your application just for the purpose of testing. Se possível, restrinja as permissões da conta de teste para que não haja possibilidade de que os testes na Web afetem usuários reais.If possible, restrict the permissions of this test account so that there's no possibility of the web tests affecting real users.

Nome de usuário e a senha simples Registre um teste na Web da maneira habitual.Simple username and password Record a web test in the usual way. Exclua os cookies primeiro.Delete cookies first.

Autenticação SAMLSAML authentication

Nome da propriedadeProperty name DescriçãoDescription
URI de audiênciaAudience Uri O URI de audiência do token SAML.The audience URI for the SAML token. Esse é o URI para o Serviço de Controle de Acesso (ACS) – incluindo o nome do host e o namespace do ACS.This is the URI for the Access Control Service (ACS) – including ACS namespace and host name.
Senha do CertificadoCertificate Password A senha do certificado do cliente que concederá acesso à chave privada inserida.The password for the client certificate which will grant access to the embedded private key.
Certificado do ClienteClient Certificate O valor do certificado do cliente com a chave privada no formato codificado em Base64.The client certificate value with private key in Base64 encoded format.
Identificador do NomeName Identifier O identificador do nome exclusivo para o tokenThe name identifier for the token
Não ApósNot After O intervalo de tempo durante o qual o token será válido.The timespan for which the token will be valid. O padrão é 5 minutos.The default is 5 minutes.
Não Antes DeNot Before O intervalo de tempo durante o qual um token criado anteriormente será válido (para compensar distorções de tempo).The timespan for which a token created in the past will be valid (to address time skews). O padrão é de 5 minutos (negativos).The default is (negative) 5 minutes.
Nome do Parâmetro do Contexto de DestinoTarget Context Parameter Name O parâmetro do contexto que receberá a declaração gerada.The context parameter that will receive the generated assertion.

Segredo do cliente Se o aplicativo tiver uma rota de entrada que envolva um segredo do cliente, use-a.Client secret If your app has a sign-in route that involves a client secret, use that route. O AAD (Azure Active Directory) é um exemplo de um serviço que fornece uma entrada de segredo do cliente.Azure Active Directory (AAD) is an example of a service that provides a client secret sign-in. No AAD, o segredo do cliente é a Chave do Aplicativo.In AAD, the client secret is the App Key.

Aqui está um teste na Web de exemplo de um aplicativo Web que usa uma chave de aplicativo:Here's a sample web test of an Azure web app using an app key:

Captura de tela de exemplo

Obtenha o token do AAD usando o segredo do cliente (AppKey).Get token from AAD using client secret (AppKey). Extraia o token de portador da resposta.Extract bearer token from response. Chame a API usando o token de portador no cabeçalho de autorização.Call API using bearer token in the authorization header. Verifique se o teste na Web é um cliente real, ou seja, se ele tem seu próprio aplicativo no AAD, e use seus respectivos ID de cliente e chave do aplicativo.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. O serviço que está sendo testado também tem seu próprio aplicativo no AAD: o URI appID desse aplicativo é refletido no teste na Web no campo "recurso".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.

Autenticação AbertaOpen Authentication

Um exemplo de autenticação aberta é entrar com sua conta da Microsoft ou do Google.An example of open authentication is signing in with your Microsoft or Google account. Muitos aplicativos que usam OAuth fornecem a alternativa de segredo do cliente. Portanto, sua primeira tática deve ser investigar essa possibilidade.Many apps that use OAuth provide the client secret alternative, so your first tactic should be to investigate that possibility.

Se o teste tiver de entrar usando OAuth, a abordagem geral será:If your test must sign in using OAuth, the general approach is:

Use uma ferramenta como o Fiddler para examinar o tráfego entre o navegador da web, o site de autenticação e seu aplicativo.Use a tool such as Fiddler to examine the traffic between your web browser, the authentication site, and your app. Executar duas ou mais entradas usando computadores ou navegadores diferentes ou em longos intervalos (para permitir que os tokens expirem).Perform two or more sign-ins using different machines or browsers, or at long intervals (to allow tokens to expire). Ao comparar sessões diferentes, identifique o token passado de volta ao site de autenticação, que será então passado para o servidor de aplicativos após a entrada.By comparing different sessions, identify the token passed back from the authenticating site, that is then passed to your app server after sign-in. Registre um teste na Web usando o Visual Studio.Record a web test using Visual Studio. Parametrize os tokens, definindo o parâmetro quando o token for retornado do autenticador e usando-o na consulta ao site.Parameterize the tokens, setting the parameter when the token is returned from the authenticator, and using it in the query to the site. (O Visual Studio tenta parametrizar o teste, mas não parametriza os tokens corretamente.)(Visual Studio attempts to parameterize the test, but does not correctly parameterize the tokens.)

Solução de problemasTroubleshooting

Artigo exclusivo para solução de problemas.Dedicated troubleshooting article.

Próximas etapasNext steps