Testes da Web de várias etapasMulti-step web tests

Você pode monitorar uma sequência registrada de URLs e interações com um site por meio 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 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 do Visual Studio WebTest.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 do WebTest no Visual Studio 2019 ainda é suportada e continuará a ter suporte durante o ciclo de vida do 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 Azure Monitor resolveu perguntas sobre o futuro de 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.

Pré-requisitosPre-requisites

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

Para localizar o pré-requisito das ferramentas de teste.To locate the testing tools pre-requisite. Inicie o instalador do Visual Studio > > componentes > individuais dedepuração e testededesempenho da Web e ferramentas de teste de carga.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 na 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.

Registrar um teste na Web de várias etapasRecord a multi-step web test

Para criar um teste com várias etapas, grave o cenário usando o Visual Studio Enterprise e carregue a gravação no Application Insights.To create a multi-step test, you record the scenario by using Visual Studio Enterprise, and then upload the recording to Application Insights. Application Insights repete o cenário em intervalos definidos e verifica a resposta.Application Insights replays the scenario at set intervals and verifies the response.

Importante

  • Não é possível usar funções codificadas nem loops nos seus testes.You can't use coded functions or loops in your tests. O teste deve estar completamente incluso no script. webtest.The test must be contained completely in the .webtest script. No entanto, você pode usar plug-ins-padrão.However, you can use standard plugins.
  • Somente os caracteres em inglês têm suporte nos testes da Web de várias etapas.Only English characters are supported in the multi-step web tests. Se você usar o Visual Studio em outros idiomas, atualize o arquivo de definição de teste da Web para traduzir/excluir caracteres que não são inglês.If you use Visual Studio in other languages, please update the web test definition file to translate/exclude non-English characters.

Use o Visual Studio Enterprise para registrar uma sessão da Web.Use Visual Studio Enterprise to record a web session.

  1. Crie um projeto de teste de carga e desempenho na Web.Create a Web performance and Load Test Project. Arquivo novo teste Visual C# doprojeto > > > > File > New > Project > Visual C# > Test

    IU do novo projeto do Visual Studio

  2. Abra o .webtest arquivo e inicie a gravação.Open the .webtest file and start recording.

    IU de gravação de teste do Visual Studio

  3. Clique nas etapas que você deseja que o teste simule para simular como parte da gravação.Click through the steps you want your test to simulate as part of the recording.

    IU de gravação do navegador

  4. Edite o teste para:Edit the test to:

    • Adicionar validações para verificar o texto recebido e os códigos de resposta.Add validations to check the received text and response codes.
    • Remova todas as interações de uneccesary.Remove any uneccesary interactions. Você também pode remover solicitações dependentes de imagens ou adicionar sites de acompanhamento que não são relevantes para você Considerando seu teste de sucesso.You could also remove dependent requests for pictures or add tracking sites which aren't relevant to you considering your test a success.

    Tenha em mente que você só pode editar o script de teste – você pode adicionar um código personalizado ou chamar outros testes da Web.Keep in mind that you can only edit the test script - you can add custom code or call other web tests. Não insira loops no teste.Don't insert loops in the test. Você pode usar plug-ins de teste da Web padrão.You can use standard web test plug-ins.

  5. Execute o teste no Visual Studio para validar e verificar se ele funciona.Run the test in Visual Studio to validate and make sure it works.

    O executor do teste na Web abre um navegador da Web e repete as ações gravadas por você.The web test runner opens a web browser and repeats the actions you recorded. Certifique-se de que tudo se comporta conforme o esperado.Make sure everything behaves as expected.

Carregar o teste na WebUpload the web test

  1. No portal do Application insights no painel disponibilidade, selecione criar > > teste testeda 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 de teste, a frequência e os parâmetros de alerta.Set the test locations, frequency, and alert parameters.

Local de & de frequênciaFrequency & 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 sua URL.Are the places from where our servers send web requests to your URL. Nosso número mínimo de locais de teste recomendados é cinco para garantir que você possa distinguir problemas em seu site por meio de problemas de 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 do 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 "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 em inglês têm suporte com correspondência de conteúdoOnly English characters are supported with content match

AlertasAlerts

ConfiguraçãoSetting ExplicaçãoExplanation
Quase em tempo real (visualização)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 local 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 local de alerta e o número de locais de teste é o número limite = de local de alerta 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ção AvançadaAdvanced Configuration

Tempo de conexão e números aleatórios em seu 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 de meu aplicativo de ações incríveis

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 senha simples Registre um teste na Web da maneira usual.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 do públicoAudience Uri O URI do público-alvo 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 para o certificado de 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 de cliente com a chave privada no formato codificado em base64.The client certificate value with private key in Base64 encoded format.
Identificador de nomeName Identifier O identificador de nome para o tokenThe name identifier for the token
Não apósNot After O TimeSpan para 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 TimeSpan para o qual um token criado no passado será válido (para endereçar distorções de tempo).The timespan for which a token created in the past will be valid (to address time skews). O padrão é (negativo) 5 minutos.The default is (negative) 5 minutes.
Nome do parâmetro de contexto de destinoTarget Context Parameter Name O parâmetro de contexto que receberá a declaração gerada.The context parameter that will receive the generated assertion.

Segredo do cliente Se seu aplicativo tiver uma rota de entrada que envolva um segredo do cliente, use essa rota.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 sua chave de aplicativo clientId +.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 de solução de problemasdedicado.Dedicated troubleshooting article.

Próximas etapasNext steps