Partilhar via


Passo a passo: Correlacionar parâmetros dinâmicos

Nessa explicação passo a passo, você cria um aplicativo ASP.NET que inclua código personalizado para criar um erro não perceptível de parâmetro dinâmico.Você aprenderá a isolar esses erros e corrigi-los.

Alguns sites e aplicativos usam parâmetros dinâmicos em uma ou mais das solicitações da Web.Um parâmetro dinâmico é um parâmetro cujo valor é gerado sempre que um usuário executa o aplicativo.Um parâmetro dinâmico pode fazer com que seu reprodução de teste de desempenho da Web falhou porque o valor dinâmico diferente provavelmente será sempre que o teste é executado.Portanto, você não pode executar gravados valores retornados.Um exemplo de um parâmetro dinâmico é uma identificação de sessãoO valor for alterado uma vez a cada 5 a 30 minutos.

Registrador do teste de desempenho da Web e o mecanismo da reprodução tratam automaticamente aos tipos mais comuns de parâmetros dinâmicos:

  • Valores de parâmetro dinâmicos definidos no valor do cookie.O mecanismo de teste de desempenho da Web automaticamente trata esses durante a reprodução.

  • Valores de parâmetro dinâmicos definidos nos campos ocultos em páginas HTML, como o estado de exibição do ASP.NET.Esses são tratados automaticamente pelo registrador de teste de desempenho da Web.Registrador do teste de desempenho da Web adiciona regras ocultos de extração de campo para teste.

  • Valores de parâmetro dinâmicos definidos como parâmetros de postagem de cadeia de caracteres de consulta ou formulário.Esses são tratados com detecção do parâmetro dinâmico quando o teste é concluída.

No entanto, ainda há algumas formulários de parâmetros dinâmicos que não são tratados automaticamente.Para manipular corretamente esses parâmetros, você pode adicionar regras de extração aos parâmetros dinâmicas em seu teste de desempenho da Web.No entanto, antes de adicionar uma regra de extração, você precisa encontrar onde um parâmetro dinâmico é inicializado.Essa explicação passo a passo mostra como localizar e corrigir um erro não perceptível trocista de parâmetro dinâmica de identificação de sessão.

Nessa explicação passo a passo, você se concluirá as seguintes tarefas:

  • Crie um aplicativo ASP.NET.

  • Adicionar páginas ASP.NET no aplicativo.

  • Adicionar alguns controles ao aplicativo.

  • Modifique o código do ASP.NET.

  • Adicione um código C# code-behind.

  • Adicionar alguns Javascript para causar um parâmetro dinâmico não perceptível.

  • Registrar um novo teste de desempenho da Web no aplicativo e observe uma propriedade dinâmica detectada ASP.NET.

  • Execute o teste de desempenho da Web e observe que tem um parâmetro dinâmico não detectado.

  • Use localize rápido durante a reprodução no visualizador de resultados de teste de desempenho da Web para isolar o erro de parâmetro dinâmico.

  • Adicione uma regra de extração ao parâmetro dinâmico.

  • Associar a regra de extração ao parâmetro dinâmica no editor de teste de desempenho da Web.

  • Execute o teste de desempenho da Web novamente sem erros.

Pré-requisitos

  • O Visual Studio final.

Criando um aplicativo da Web

Para criar o aplicativo da Web

  1. No Visual Studio final, no menu de ArquivoNovo , escolha e então escolha Projeto.

    A caixa de diálogo Novo Projeto é exibida.

  2. Em Modelos Instalados, expanda a linguagem de programação que você preferir e clique em Web.

  3. Na lista de tipos de projeto da Web, Aplicativo Web Vazio do ASP.NETselecione.

  4. Na caixa, digite o nome DynamicParameterSample.

  5. Na caixa de Local , especifique a pasta onde você deseja criar o aplicativo da Web.

  6. Selecione Create directory for solution (Criar diretório para a solução).

  7. Escolha OK.

  8. No menu Project, escolha Add New Item.

    A caixa de diálogo Adicionar Novo Item aparece.

  9. Na lista de itens, escolha Formulário Web.

  10. Na caixa de texto de Nome , o tipo Querystring.aspx e clique em Adicionar.

Adicionando um controle HiddenField para a página de Querystring.aspx

Para adicionar um HiddenField controle para a página de Querystring.aspx

  1. No solution Explorer, clique com o botão direito do mouse Querystring.aspx e escolha Exibir Designer.

    Uma página em branco é exibida.

  2. Se a caixa de ferramentas não estiver visível, escolha Modo de Visualização e escolha Caixa de Ferramentas.

  3. Do grupo de, arraste PadrãoHiddenField na página.

    Um controle HiddenField é adicionado à superfície de design.

  4. Escolha o HiddenField na página, e na janela properties, na categoria de Diversos , altere o valor para (ID) a HiddenFieldSessionID.

  5. No menu File, clique em Save All.

Adicionando código para a página de Querystring.aspx

Para adicionar o código para a página de Querystring.aspx

  1. Na parte inferior da página de Querystring, escolha Origem.

    O editor de códigos é exibido com o código do ASP.NET para a página de Querystring.aspx.

  2. Adicione o seguinte código ASP.NET e destaque Javascript usado para gerar os parâmetros dinâmicos de identificação de sessão trocista:

    <head runat="server">
    <title>JavaScript dynamic property correlation sample</title>
    <script type="text/javascript" language="javascript">
        <!--
            function jScriptQueryString() 
            {
                var Hidden = document.getElementById("HiddenFieldSessionID");
                var sessionId = Hidden.value;
                window.location = 'JScriptQuery.aspx?CustomQueryString=jScriptQueryString___' + sessionId; 
            }
        //-->
    </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
             <a name="QuerystringHyperlink" href="ASPQuery.aspx?CustomQueryString=ASPQueryString___<%= Session.SessionID %>">Dynamic querystring generated by ASP.net</a>
             <br/>
             <br/>
             <a href="javascript:jScriptQueryString()">Dynamic querystring generated by javascript </a>
        </div>
        <asp:HiddenField ID="HiddenFieldSessionID" runat="server" />
        </form>
    </body>
    </html>
    
  3. Clique com o botão direito do mouse na página de Querystring, e selecione Exibir Código.

    O editor de códigos é exibido com o código de Visual C# code-behind para a página de Querystring.aspx.

  4. Adicione o seguinte código realçado para o método Page_Load:

        public partial class Querystring : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                Session.Add("Key", "Value");
                HiddenFieldSessionID.Value = Session.SessionID;
            }
        }
    
  5. No menu File, clique em Save All.

Adicione a página, os controles e código de ASPQuery.aspx

Para adicionar a página de ASPQuery.aspx para o aplicativo da Web

  1. No menu Project, escolha Add New Item.

  2. Na caixa de diálogo de Adicionar novo item , escolha o modelo de Formulário Web , e o tipo ASPQuery.aspxde nome, e então escolha Adicionar.

  3. No menu File, clique em Save All.

Para adicionar controles à página de ASPQuery.aspx

  1. No solution Explorer, clique com o botão direito do mouse ASPQuery.aspx e escolha Exibir Designer.

    Uma página em branco é exibida.

  2. Em Caixa de Ferramentas, a partir do grupo de, arraste PadrãoRótulo na página.

    Um controle de rótulo é adicionado à superfície de design.

  3. Escolha o rótulo na página, e na janela properties, na categoria de Diversos , altere o valor para (ID) a IndexLabel.

  4. Em Caixa de Ferramentas, a partir do grupo de, arraste PadrãoHiperlink na página.

    Um controle hyperlink é adicionado à superfície de design.

  5. Escolha o hiperlink na página, e na janela properties, na categoria de Aparência , altere o vale para Texto a Voltar.

  6. Na categoria de navegação, escolha**…**() para a propriedade de NavigationURL .

    A caixa de diálogo de Selecionar URL é exibida.

  7. Na lista de páginas em Conteúdo da pasta, Querystring.aspx selecione e escolha OK.

  8. No menu File, clique em Save All.

Para adicionar o código code-behind para a página de ASPQuery.aspx

  1. Clique com o botão direito do mouse na página de ASPQuery, e selecione Exibir Código.

    O editor de códigos é exibido com o código de Visual C# code-behind para a página de ASPQuery.aspx.

  2. Adicione o seguinte código realçado para o método Page_Load:

    protected void Page_Load(object sender, EventArgs e)
            {
                int index;
                string qstring;
                string dateportion;
                string sessionidportion;
    
                qstring = Request.QueryString["CustomQueryString"];
                index = qstring.IndexOf("___");
                dateportion = qstring.Substring(0, index);
                index += 3;
                sessionidportion = qstring.Substring(index, qstring.Length - index);
    
                if (sessionidportion != Session.SessionID)
                {
                    Response.StatusCode = 401;
                    IndexLabel.Text = "Failure!  Invalid querystring parameter found.";
                }
                else
                {
                    IndexLabel.Text += "Success.  Dynamic querystring parameter was found.";
                }
                IndexLabel.Text += "<br>\r\n";
            }
    
  3. No menu File, clique em Save All.

Adicione a página, os controles e código de JScriptQuery.aspx

Para adicionar a página de JScriptQuery.aspx para o aplicativo da Web

  1. No menu Project, escolha Add New Item.

  2. Na caixa de diálogo de Adicionar novo item , escolha o modelo de Formulário Web , e o tipo JScriptQuery.aspxde nome, e então escolha Adicionar.

  3. No menu File, clique em Save All.

Para adicionar controles à página de JScriptQuery.aspx

  1. No solution Explorer, clique com o botão direito do mouse JScriptQuery.aspx e escolha Exibir Designer.

    Uma página em branco é exibida.

  2. Em Caixa de Ferramentas, a partir do grupo de, arraste PadrãoRótulo na página.

    Um controle de rótulo é adicionado à superfície de design.

  3. Escolha o rótulo na página, e na janela properties, na categoria de Diversos , altere o valor para (ID) a IndexLabel.

  4. Em Caixa de Ferramentas, a partir do grupo de, arraste PadrãoHiperlink na página.

    Um controle hyperlink é adicionado à superfície de design.

  5. Escolha o hiperlink na página, e na janela properties, na categoria de Aparência , altere o vale para Texto a Voltar.

  6. Na categoria de navegação, escolha**…**() para a propriedade de NavigationURL .

    A caixa de diálogo de Selecionar URL é exibida.

  7. Na lista de páginas em Conteúdo da pasta, Querystring.aspx selecione e escolha OK.

  8. No menu File, clique em Save All.

Para adicionar o código code-behind para a página de JScriptQuery.aspx

  1. Clique com o botão direito do mouse na página de JScriptQuery, e selecione Exibir Código.

    O editor de códigos é exibido com o código de Visual C# code-behind para a página de JScriptQuery.aspx.

  2. Adicione o seguinte código realçado para o método Page_Load:

    protected void Page_Load(object sender, EventArgs e)
            {
                int index;
                string qstring;
                string dateportion;
                string sessionidportion;
    
                qstring = Request.QueryString["CustomQueryString"];
                index = qstring.IndexOf("___");
                dateportion = qstring.Substring(0, index);
                index += 3;
                sessionidportion = qstring.Substring(index, qstring.Length - index);
    
                if (sessionidportion != Session.SessionID)
                {
                    Response.StatusCode = 401;
                    IndexLabel.Text = "Failure!  Invalid querystring parameter found.";
                }
                else
                {
                    IndexLabel.Text += "Success.  Dynamic querystring parameter was found.";
                }
                IndexLabel.Text += "<br>\r\n";
            }
    
  3. No menu File, clique em Save All.

Testando o aplicativo da Web manualmente

Para testar manualmente o aplicativo da Web

  1. Em Gerenciador de Soluções, clique com o botão direito do mouse Querystring.aspx e escolha Definir Como Página Inicial.

  2. Pressione CTRL+F5 para executar o aplicativo da Web no navegador.Você verá a primeira página.

  3. Escolha o link de Querystring dinâmico gerado pelo ASP.NET .

  4. A página de ASPQuery.aspx é exibida com êxito a mensagem “.Parâmetro querystring dinâmico encontrado.”

  5. Escolha o link de Voltar .

  6. Escolha o link de Querystring dinâmico gerado pelo Javascript .

  7. A página de JScriptQuery.aspx é exibida com êxito a mensagem “.Parâmetro querystring dinâmico encontrado.”.

  8. Escolha o link de Voltar .

  9. Copie o endereço do seu aplicativo da Web para a área de transferência ou a um arquivo do bloco de notas.Por exemplo, o endereço pode parecer como a seguir:

    https://localhost:<PortNumber>/Querystring.aspx.

    Quando você cria um teste de desempenho da Web posteriormente neste passo-a-passo, você precisará do URL.

Criando um teste Project

Para criar o projeto de teste

  1. No menu de Arquivo , aponte para Adicionar e clique em Novo Projeto.

    A caixa de diálogo Adicionar Novo Projeto é exibida.

  2. Em Modelos Instalados, expanda Visual C# e selecione Testar.

  3. Na lista de modelos, escolha Projeto de Teste.

  4. Na caixa de Nome , digite DynamicParameterSampleTest.

  5. Escolha OK.

    ObservaçãoObservação

    Por padrão, o Visual Studio final adicionará um arquivo de testes de unidade.Você não precisará do arquivo de testes de unidade para essa explicação passo a passo.Como consequência você pode excluir o arquivo.Se você não excluir o arquivo, não afetará a explicação passo a passo.

Gravando um teste de desempenho da Web e detectar automaticamente o parâmetro dinâmico para a página de ASPQuery.aspx

Para registrar o teste de desempenho da Web

  1. No menu de Testar , escolha Novo Teste.

    A caixa de diálogo de Adicionar Novo Teste aparece.

  2. Na caixa de diálogo de Adicionar Novo Teste , Teste de Desempenho Webselecione, nomeie o teste DynamicParameterSampleApp.webtest, e clique em OK.

    Um novo arquivo de teste de desempenho da Web que é chamado DynamicParameterSampleApp.webtest é adicionado ao seu projeto, e a Registrador de teste de desempenho da Web é aberto em uma nova instância do Internet Explorer.

    Observação de cuidadoCuidado

    Para que o procedimento a seguir funcione corretamente, você deve seguir essas etapas na ordem mostrado.

  3. Na barra de endereços do navegador, o tipo ou dimensionamento o endereço do aplicativo Web que você copiou na etapa de Para testar manualmente o aplicativo da Web do procedimento, e pressione ENTER.

    ObservaçãoObservação

    O Visual Studio final começa a exibir as urls de teste de desempenho da Web em Registrador de teste de desempenho da Web enquanto estiver gravando.

  4. Escolha o link de Querystring dinâmico gerado pelo ASP.NET .

    A página de ASPQuery.aspx é exibida com êxito a mensagem “.Parâmetro querystring dinâmico encontrado.”

  5. Escolha o link de Voltar .

  6. Escolha o link de Querystring dinâmico gerado pelo Javascript .

  7. A página de JScriptQuery.aspx é exibida com sucesso de mensagem. Parâmetro querystring dinâmico encontrado.

  8. Escolha o link de Voltar .

  9. Para parar de registrar em, escolha PararRegistrador de teste de desempenho da Web.

    Uma caixa de diálogo exibe a mensagem Detectando parâmetros dinâmicos.Também exibe uma barra de progresso que mostra o status de detecção de parâmetro nas respostas HTTP que foram recebidas.

    Em seguida, a caixa de diálogo de Promover parâmetros dinâmicos a parâmetros de teste na Web é exibido.

    Promover parâmetros dinâmicos

    Porque o código personalizado que é adicionado para o parâmetro dinâmica em CustomQueryString na página de ASPQuery no procedimento foi detectado automaticamente, é listado na caixa de diálogo.

    O parâmetro dinâmico para CustomQueryString na página de JScriptQuery não foi detectado automaticamente pelo código personalizado de Javascript foi adicionado à página de Querystring.aspx no procedimento Adicionando código para a página de Querystring.aspx.

  10. Escolha OK para adicionar uma regra de extração adicionada ao Querystring.aspx.

    O editor de teste de desempenho da Web é exibido com a primeira solicitação para Querystring.aspx totalmente expandido.Mostra a regra de extração que foi adicionada.

  11. Expanda totalmente a segunda solicitação na árvore de solicitação para ASPQuery.aspx e observe que o valor de CustomQueryString esteve associado à regra de extração.

    Regra de extração adicionada para o parâmetro dinâmico

  12. Arquivo Escolha e então escolha Salve DynamicParameterSampleApp.webtest para salvar o teste de desempenho mais recentemente escrita da Web.

Execute o teste de desempenho da Web para gerar o erro não detectado de parâmetro dinâmico

Para executar novamente ao teste de desempenho da Web

  1. No Editor de teste de desempenho da Web, escolha Executar na barra de ferramentas para exibir o visualizador de resultados de teste de desempenho da Web.

  2. Observe que à primeira solicitação falhou com um erro.A quarta é solicitação para a página de JScriptQuery.aspx.

    Erro de parâmetro dinâmico não detectada

Isole o parâmetro dinâmico causando o erro

Para usar localize rápido na escrita de reprodução

  1. No visualizador de resultados de teste de desempenho da Web, clique com o botão direito do mouse na quarta solicitação.A quarta é solicitação para a página de JScriptQuery.aspx que falhou devido a problemas de parâmetro dinâmico.Selecione Ir para o teste na Web.

    Vá para o teste da Web

    O editor de teste de desempenho da Web é exibido com a solicitação de JScriptQuery.aspx realçada.

  2. Totalmente expanda o nó de solicitação e observe que a parte de “wy0zaykqadkoscuvoiqemofm” de CustomQueryString parece ser dinâmico: “ CustomQueryString=jScriptQueryString___wy0zaykqadkoscuvoiqemofm”.

    Editor de teste de desempenho de Web solicitação com erro

  3. Retornar ao visualizador de resultados de teste de desempenho da Web e selecione a página de JScriptQuery.aspx que falhou.

  4. Escolha a guia de Solicitação .

  5. Verifique se a caixa de seleção de Mostrar dados brutos está desmarcada.

  6. Role para baixo até encontrar Parâmetros QueryString na coluna de Nome .

  7. Clique com o botão direito do mouse CustomQueryString e selecione Localização Rápida.

    Isolar um parâmetro dinâmico

  8. Na caixa de diálogo de Localizar , o valor de parâmetros é exibido em Localizar.

    Nesse caso, você sabe de examinar o editor de teste de desempenho da Web, que o CustomQueryString de solicitação de JScriptQuery.aspx esteve atribuído um valor de: jScriptQueryString___wy0zaykqadkoscuvoiqemofm e que a parte dinâmica suspeitada são “wy0zaykqadkoscuvoiqemofm”.

  9. Na lista suspensa de Localizar , remova a parte suspeitar de cadeia de caracteres de pesquisa.A cadeia de caracteres “deve ser CustomQueryString=jScriptQueryString_”.

    Caixa de diálogo Localizar

  10. Os parâmetros dinâmicos são atribuídos os valores em uma das solicitações que precede a solicitação que tem o erro.Como consequência, selecione a caixa de seleção de Pesquisar acima e escolha Localizar Próxima até ver a solicitação anterior para Querystring.aspx realçado no painel de Solicitação .Isso deve ocorrer depois que você escolher Localizar Próxima três vezes.

    Isolar o erro dinâmico usando Localizar

    Como você pode ver na ilustração anterior, e o Javascript implementado, o parâmetro CustomQueryString de cadeia de caracteres de consulta é atribuído um valor de “jScriptQueryString_” e também concatenado com o valor retornado de sessionId de var.

            function jScriptQueryString() 
            {
                var Hidden = document.getElementById("HiddenFieldSessionID");
                var sessionId = Hidden.value;
                window.location = 'JScriptQuery.aspx?CustomQueryString=jScriptQueryString___' + sessionId; 
            }
    

    Agora você souber onde o erro está ocorrendo, e também você souber que você precisa extrair o valor para o sessionId.No entanto, o valor de extração é somente texto, portanto você precisa isolar o erro mais tentando localizar uma cadeia de caracteres onde o valor real de sessionId é exibido.Examinando o código, você pode ver que o sessionId de var igual ao valor retornado por HiddenFieldSessionID.

  11. Realce HiddenFieldSessionID, clique com o botão direito do mouse em, selecione Localização Rápida.

  12. Na caixa de diálogo de Localizar , desmarque a caixa de seleção de Pesquisar acima e selecione Solicitação atual.

  13. Escolha Localizar Próxima.

    A primeira correspondência de HiddenFieldSessionID é realçada na linha seguinte.Você também pode ver o valor que é atribuído:

    <input type="hidden" name="HiddenFieldSessionID" id="HiddenFieldSessionID" value="0rvcxknlabd30xnbrjtuy11u" />
    

    Localizar HiddenFieldSessionID

    Observe que o valor retornado não é a mesma cadeia de caracteres original da gravação de teste de desempenho da Web.Para este reprodução, o valor é 0rvcxknlabd30xnbrjtuy11u “e” na escrita, o valor é “wy0zaykqadkoscuvoiqemofm”.Porque o valor não coincide com a de gravação original, o erro é gerado.

Para adicionar uma extração regra da reprodução gravados

  1. No visualizador de resultados de teste da Web, escolha Resultado gravado na barra de ferramentas.

    Gravados original os resultados de teste de desempenho da Web são exibidos em uma guia separado entitulado DynamicParameterSampleApp gravados [][].

  2. Se já não estiver selecionado, selecione a terceira solicitação.É o Querystringrequest.aspx que você isolado na etapa anterior.

  3. Escolha a guia de Resposta .Role para baixo e realçar o valor do parâmetro dinâmico original de “wy0zaykqadkoscuvoiqemofm” que você isolou-se no procedimento anterior.Clique com o botão direito de mouse-la e selecione Adicionar regra de extração.

    Adicionar regra de extração

    O editor de teste de desempenho da Web é exibido com a nova regra de extração selecionada na solicitação de Querystring.aspx.A nova regra de extração é atribuído um valor de “Param0”.

    A caixa de diálogo de Microsoft Visual Studio é exibida com informações que uma correspondência encontrada esteve para que o texto traduzido associa o parâmetro como.

    Regra de extração adicionada como param(0)

  4. Escolha Sim.

    A caixa de diálogo de Localizar e substituir na solicitação é exibida com o texto traduzido wy0zaykqadkoscuvoiqemofm na lista suspensa de Localizar e no parâmetro {{}} {{}} Param0 na lista suspensa de Substituir por .

    Localizar próxima Param0

  5. Escolha Localizar Próxima.

  6. O parâmetro de QueryString na solicitação CustomQueryString=jScriptQueryString___wy0zaykqadkoscuvoiqemofm de JScriptQuery.aspx é realçado.

  7. Escolha Substituir.

    Seqüência de caracteres de consulta atualizada usando Param(0)

  8. O parâmetro QueryString na solicitação JScriptQuery.aspx é atualizado usando o novo parâmetro de contexto: CustomQueryString=jScriptQueryString___{{Param0}}.

  9. Observe a estrutura semelhante na árvore de solicitação entre o parâmetro dinâmico detectado e o parâmetro dinâmico não detectado que você correlacionou.

Consulte também

Tarefas

Como: promover parâmetros dinâmicos aos parâmetros de teste de desempenho de Web

Conceitos

Visão geral do Visualizador resultados de teste de desempenho de Web

Outros recursos

Resolvendo Web teste resultado visualizador reprodução problemas de desempenho nos testes de desempenho de Web