Demonstra Passo a passo: Correlacionando parâmetros dinâmicos
Esta explicação passo a passo, você pode criar um aplicativo ASP.NET que inclui o código personalizado para criar um erro não detectável parâmetro dinâmico. Você aprenderá como isolar esses erros e corrigi-los.
Alguns sites e aplicativos Web usam parâmetros dinâmicos em uma ou mais das suas solicitações da Web. A parâmetro dinâmico é a um parâmetro cujo valor é gerado sempre que um usuário executa o aplicativo. Um parâmetro dinâmico pode causar a reprodução de teste de desempenho na Web falhe, pois o valor dinâmico provavelmente serão diferente sempre que o teste é executado. Portanto, você não pode reproduzir valores registrados. Um exemplo de um parâmetro dinâmico é uma identificação de sessão. Seu valor é alterado a cada 5 a 30 minutos.
O gravador de teste de desempenho de Web e o mecanismo de reprodução tratar automaticamente os tipos mais comuns de parâmetros dinâmicos:
Os valores de parâmetro dinâmico definido no valor do cookie. O mecanismo de teste de desempenho de Web automaticamente manipula esses durante a reprodução.
Os valores de parâmetro dinâmico definidos nos campos ocultos nas páginas HTML, tais como ASP.NET view state. Esses são manipuladas automaticamente o desempenho do Web Test Recorder. O gravador de teste de desempenho da Web adiciona regras de extração do campo oculto para o teste.
Os valores de parâmetro dinâmico definidos como parâmetros post de formulário ou de seqüência de caracteres de consulta. Esses são manipulados através da detecção de parâmetro dinâmico quando o teste for concluído.
No entanto, ainda há algumas formas de parâmetros dinâmicos que não são manipuladas automaticamente. Para lidar com esses parâmetros corretamente, você pode adicionar regras de extração para parâmetros dinâmicos nos testes de desempenho da Web. No entanto, antes de adicionar uma regra de extração, você precisa localizar onde um parâmetro dinâmico é inicializado. Esta explicação passo a passo mostra como localizar e corrigir um erro de parâmetro dinâmico de ID de sessão mock não detectável.
Nesta explicação passo a passo, você irá concluir as seguintes tarefas:
Crie um aplicativo ASP.Aplicativo da Web do NET.
Adicione alguns recursos do ASP.NET individuais para o aplicativo.
Adicione alguns controles para o aplicativo.
Modificar o aplicativo ASP.NET do.
Adicione algum código C# atrás.
Adicione um pouco de Javascript para fazer com que um parâmetro dinâmico não podem ser detectado.
Registrar um novo teste de desempenho de Web no aplicativo e observe um ASP detectado.NET propriedade dinâmica.
Executar o teste de desempenho de Web e observe que ela possui um parâmetro dinâmico não detectado.
Uso rápido encontrar durante a reprodução no Visualizador de resultados de teste da Web desempenho para isolar o erro de parâmetro dinâmico.
Adicione uma regra de extração do parâmetro dinâmico.
Vincule a regra de extração do parâmetro dinâmico no Editor de teste de desempenho da Web.
Execute o teste de desempenho da Web novamente sem erros.
Pré-requisitos
- Microsoft Visual Studio 2010 Ultimate.
Criando uma aplicação Web
Para criar o aplicativo da Web
Em Visual Studio 2010 Ultimatediante do arquivo menu, clique em novo e, em seguida, clique em projeto.
A caixa de diálogo New Project será exibida.
Em os modelos instalados, expanda a linguagem de programação que você preferir e clique em Web.
Na lista de tipos de projeto da Web, selecione ASP.Aplicativo de Web do NET vazio.
Na caixa Nome, digite DynamicParameterSample.
No local caixa, especifique a pasta onde você deseja criar o seu aplicativo da Web.
Selecione Create directory for solution (Criar diretório para a solução).
Clique em OK.
No menu Project, escolha Add New Item.
O Add New Item caixa de diálogo aparece.
Na lista de itens, escolha Formulário da Web.
No nome caixa de texto, digite Querystring.aspx e, em seguida, clique em Add.
Adicionando um controle HiddenField para a página de Querystring.aspx
Para adicionar um controle HiddenField para a página de Querystring.aspx
No Solution Explorer, clique com o botão direito Querystring. aspx e escolha View Designer.
Uma página em branco é exibida.
Se a caixa de ferramentas não estiver visível, clique em Exibir e, em seguida, clique em caixa de ferramentas.
Do padrão de grupo, arraste um HiddenField para a página.
Um controle HiddenField é adicionado à superfície de design.
Clique em HiddenField, na página e, na janela Properties, na diverso categoria, altere o valor de (ID) para HiddenFieldSessionID.
No menu File, clique em Save All.
Adicionando código para a página de Querystring.aspx
Para adicionar código para a página de Querystring.aspx
Na parte inferior da página Querystring, clique em fonte.
O Editor de código é exibido com o ASP.NET código para a página de Querystring.aspx.
Adicione a seguinte página ASP realçado.NET e JavaScript código usado para gerar os parâmetros dinâmicos de ID de sessão de simulação:
<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>
A página de Querystring com o botão direito e selecione Exibir código.
O Editor de código é exibido com o Visual C# code-behind para a página de Querystring.aspx.
Adicione o seguinte código realçado ao 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; } }
No menu File, clique em Save All.
Adicionar ASPQuery.aspx de página, controles e código
Para adicionar a página de ASPQuery.aspx para o aplicativo da Web
No menu Project, clique em Add New Item.
No Add New Item caixa de diálogo, clique no Formulário da Web modelo e no tipo de nome ASPQuery.aspxe, em seguida, clique em Add.
No menu File, clique em Save All.
Para adicionar controles para a página de ASPQuery.aspx
No Solution Explorer, clique com o botão direito ASPQuery. aspx e escolha View Designer.
Uma página em branco é exibida.
No Toolbox, da padrão de grupo, arraste um rótulo até a página.
Um controle Label é adicionado à superfície de design.
Clique no rótulo na página e, na janela Properties, na diverso categoria, altere o valor de (ID) para IndexLabel.
No Toolbox, da padrão de grupo, arraste um hiperlink até a página.
Um controle HyperLink é adicionado à superfície de design.
Clique no hiperlink na página e, na janela Properties, na aparência categoria, alterar o vale para texto para novamente.
Na categoria navegação, clique em (…) para o NavigationURL propriedade.
O Selecione URL caixa de diálogo é exibida.
Na lista de páginas em o conteúdo da pasta, selecione Querystring.aspx e clique em OK.
No menu File, clique em Save All.
Para adicionar o code-behind para a página de ASPQuery.aspx
A página de ASPQuery com o botão direito e selecione Exibir código.
O Editor de código é exibido com o Visual C# code-behind para a página de ASPQuery.aspx.
Adicione o seguinte código realçado ao 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"; }
No menu File, clique em Save All.
Adicionar JScriptQuery.aspx de página, controles e código
Para adicionar a página de JScriptQuery.aspx para o aplicativo da Web
No menu Project, clique em Add New Item.
No Add New Item caixa de diálogo, clique no Formulário da Web modelo e no tipo de nome JScriptQuery.aspxe, em seguida, clique em Add.
No menu File, clique em Save All.
Para adicionar controles para a página de JScriptQuery.aspx
No Solution Explorer, clique com o botão direito JScriptQuery. aspx e escolha View Designer.
Uma página em branco é exibida.
No Toolbox, da padrão de grupo, arraste um rótulo até a página.
Um controle Label é adicionado à superfície de design.
Clique no rótulo na página e, na janela Properties, na diverso categoria, altere o valor de (ID) para IndexLabel.
No Toolbox, da padrão de grupo, arraste um hiperlink até a página.
Um controle HyperLink é adicionado à superfície de design.
Clique no hiperlink na página e, na janela Properties, na aparência categoria, alterar o vale para texto para novamente.
Na categoria navegação, clique em (…) para o NavigationURL propriedade.
O Selecione URL caixa de diálogo é exibida.
Na lista de páginas em o conteúdo da pasta, selecione Querystring.aspx e clique em OK.
No menu File, clique em Save All.
Para adicionar o code-behind para a página de JScriptQuery.aspx
A página de JScriptQuery com o botão direito e selecione Exibir código.
O Editor de código é exibido com o Visual C# code-behind para a página de JScriptQuery.aspx.
Adicione o seguinte código realçado ao 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"; }
No menu File, clique em Save All.
Testando o aplicativo da Web manualmente
Para testar o aplicativo da Web manualmente
Em Solution Explorer, Querystring.aspx com o botão direito e, em seguida, clique em Set As Start Page.
Pressione CTRL + F5 para executar o aplicativo da Web no navegador. Você verá a primeira página.
Clique o querystring dedinâmico gerado pelo ASP.NET link.
A página de ASPQuery.aspx é exibida com a mensagem "sucesso. Dinâmico querystring parâmetro encontrado".
Clique o novamente link.
Clique o querystring dinâmico, gerado por javascript link.
A página de JScriptQuery.aspx é exibida com a mensagem "sucesso. Parâmetro de querystring dinâmico encontrado. ".
Clique o novamente link.
Copie o endereço do seu aplicativo da Web para a área de transferência ou de um arquivo do bloco de notas. Por exemplo, o endereço pode parecer da seguinte maneira:
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 projeto de teste
Para criar o projeto de teste
No menu File, aponte para Add e clique em New Project.
O Add New Project caixa de diálogo aparece.
Em Modelos instalados, expanda Visual C# e selecione teste.
Na lista de modelos, escolha O projeto de teste.
No nome , digite DynamicParameterSampleTest.
Clique em OK.
Observação Por padrão, Visual Studio 2010 Ultimate irá adicionar um teste de unidade de arquivos. O arquivo de teste de unidade não será necessário para esta explicação passo a passo. Portanto, você pode excluir o arquivo. Se você não excluir o arquivo, ele não afetará o passo a passo.
Gravação de um teste de desempenho de Web e detectar automaticamente o parâmetro dinâmico para a página de ASPQuery.aspx
Para gravar o teste de desempenho de Web
No menu Test, clique em New Test.
A caixa de diálogo Add New Test aparece.
No Add New Test caixa de diálogo, selecione Teste de desempenho do Web, nomeie o teste DynamicParameterSampleApp.webteste, em seguida, clique em OK.
Um novo arquivo de teste de desempenho de Web chamado DynamicParameterSampleApp.webtest é adicionada ao seu projeto e o Gravador de teste de desempenho do Web abre dentro de uma nova instância do Internet Explorer.
Aviso
Para o próximo procedimento funcione corretamente, você deve seguir estas etapas na ordem mostrada.
Na barra de endereços do navegador, digite ou cole o endereço do aplicativo da Web que você copiou no procedimento para testar o aplicativo da Web manualmente etapa e, em seguida, pressione ENTER.
Observação Visual Studio 2010 Ultimatecomeça a exibir o desempenho de Web teste URLs na Desempenho Web Test Recorder como ele está gravando.
Clique o querystring dedinâmico gerado pelo ASP.NET link.
A página de ASPQuery.aspx é exibida com a mensagem "sucesso. Dinâmico querystring parâmetro encontrado".
Clique o novamente link.
Clique o querystring dinâmico, gerado por javascript link.
A página de JScriptQuery.aspx é exibida com a mensagem sucesso. Parâmetro de querystring dinâmico encontrado.
Clique o novamente link.
Para interromper a gravação, clique em Parar sobre o Gravador de teste de desempenho do Web.
Uma caixa de diálogo exibirá a mensagem a parâmetros dinâmicos detectando. Ele também exibe uma barra de progresso que mostra o status de detecção de parâmetro de respostas HTTP que foram recebidas.
Em seguida, o Promover parâmetros dinâmicos para os parâmetros de teste da Web caixa de diálogo é exibida.
Porque o código personalizado que é adicionado para o parâmetro dinâmico no CustomQueryString na página no procedimento ASPQuery não foi detectado automaticamente, ele é listado na caixa de diálogo.
O parâmetro dinâmico para CustomQueryString na página JScriptQuery não foi detectado automaticamente porque o código Javascript personalizado foi adicionado à página Querystring.aspx no procedimento Adicionando código para a página de Querystring.aspx.
Clique em OK para adicionar uma regra de extração adicionada para o Querystring.aspx.
O desempenho do Web Test Editor é exibido com a primeira solicitação para Querystring.aspx totalmente expandida. Ela mostra a regra de extração que foi adicionada.
Expanda a segunda solicitação na árvore de solicitação para ASPQuery.aspx e observe que o valor do CustomQueryString foi vinculado à regra de extração totalmente.
Escolha arquivo e escolha Salvar DynamicParameterSampleApp.webtest para salvar o teste de desempenho da Web recém gravado.
Executar o teste de desempenho de Web para produzir o erro de parâmetro dinâmico não detectado.
Para reproduzir o teste de desempenho de Web
No O Editor de teste de desempenho do Web, clique em Executar na barra de ferramentas para exibir o Visualizador de resultados de teste de desempenho da Web.
Observe que a solicitação de quarta falhou com erro. A solicitação de quarta é para a página de JScriptQuery.aspx.
Isolar o parâmetro dinâmico, causando o erro.
Para usar a localização rápida na gravação de reprodução
No Visualizador de resultados de teste do desempenho de Web, clique com o botão direito a solicitação de quarta. A solicitação de quarta é para a página de JScriptQuery.aspx que falhou devido o problema de parâmetro dinâmico. Selecione Ir para o teste da Web.
O desempenho do Web Test Editor é exibido com a solicitação de JScriptQuery.aspx realçada.
Expanda o nó de solicitação de totalmente e observe que "wy0zaykqadkoscuvoiqemofm" parte do CustomQueryString parece ser dinâmico: " CustomQueryString = jScriptQueryString___wy0zaykqadkoscuvoiqemofm".
Retorne ao Visualizador de resultados de teste de desempenho da Web e selecione a página de JScriptQuery.aspx falhou.
Clique o solicitação guia.
Verifique o Mostrar dados brutos caixa de seleção está desmarcada.
Role para baixo até encontrar Parâmetros QueryString sob o nome coluna.
Com o botão direito CustomQueryString e selecione Rápida de localizar.
No Localizar caixa de diálogo, o valor de parâmetros é exibido em Localizar.
Nesse caso, você sabe de busca na Web desempenho Test Editor, que CustomQueryString de JScriptQuery.aspx da solicitação foi atribuído um valor: jScriptQueryString___wy0zaykqadkoscuvoiqemofm e que a parte suspeita de dinâmica é "wy0zaykqadkoscuvoiqemofm".
No Localizar drop-down list, remover a parte suspeita da seqüência de pesquisa. A seqüência de caracteres deve ser "CustomQueryString = jScriptQueryString___".
Parâmetros dinâmicos são atribuídos a seus valores em uma das solicitações que precede a solicitação de erro. Portanto, selecione o Pesquisar para cima caixa de seleção e clique em Localizar próxima até que você veja que precede a solicitação para Querystring.aspx realçado na solicitação painel. Isso deve ocorrer após você clicar em Localizar próxima três vezes.
Como você pode ver na ilustração e o Javascript implementado anteriormente, o parâmetro de seqüência de consulta CustomQueryString é atribuído um valor de" jScriptQueryString___" e também é concatenado com o valor retornado da sessionId var.
function jScriptQueryString() { var Hidden = document.getElementById("HiddenFieldSessionID"); var sessionId = Hidden.value; window.location = 'JScriptQuery.aspx?CustomQueryString=jScriptQueryString___' + sessionId; }
Agora você sabe onde o erro está ocorrendo e você também sabe que precisa extrair o valor sessionId. No entanto, o valor de extração é somente texto, portanto você precisa para depois isolar o erro ao tentar localizar uma seqüência de caracteres onde o valor real do sessionId é exibido. Examinando o código, você pode ver a sessionId var é igual ao valor retornado por HiddenFieldSessionID.
HiddenFieldSessionID de realce, clique sobre ela e selecione Rápida de localizar.
No Localizar caixa de diálogo, limpar o Pesquisar para cima caixa de seleção e selecione solicitação atual.
Clique em Localizar próxima.
A primeira correspondência de HiddenFieldSessionID é realçada na linha a seguir. Você também pode ver o valor atribuído a ele:
<input type="hidden" name="HiddenFieldSessionID" id="HiddenFieldSessionID" value="0rvcxknlabd30xnbrjtuy11u" />
Observe que o valor retornado não é a mesma seqüência como na gravação de teste de desempenho da Web original. Para essa reprodução, o valor é "0rvcxknlabd30xnbrjtuy11u" e na gravação, o valor é "wy0zaykqadkoscuvoiqemofm". Porque o valor não corresponde da gravação original, o erro é gerado.
Para adicionar uma regra de extração a partir da reprodução gravada
No Visualizador de resultados de teste da Web, clique em Registradas resultado na barra de ferramentas.
Os resultados registrados originais de teste de desempenho da Web é exibido em uma guia separada intitulada DynamicParameterSampleApp [gravado.
Se ele não estiver selecionado, selecione a solicitação de terceira. É o Querystringrequest.aspx que você isolado na etapa anterior.
Clique o resposta guia. Role para baixo e destacar o valor do parâmetro dinâmico original de "wy0zaykqadkoscuvoiqemofm" Se você isolada no procedimento anterior. Clique sobre ela e selecione Add Extraction Rule.
O desempenho do Web Test Editor é exibido com a nova regra de extração selecionada na solicitação Querystring.aspx. A nova regra de extração é atribuída um valor de 'param0'.
O Visual Studio do Microsoft caixa de diálogo é exibida com informações que uma correspondência foi encontrada para vincular o parâmetro para o texto extraído.
Clique em Yes.
O Localizar e substituir na solicitação caixa de diálogo é exibida com o texto extraído wy0zaykqadkoscuvoiqemofm na Localizar na lista suspensa e o parâmetro {{Param0}} na Substituir na lista suspensa.
Clique em Localizar próxima.
O parâmetro de QueryString sob a solicitação de JScriptQuery.aspx CustomQueryString = jScriptQueryString___wy0zaykqadkoscuvoiqemofm é realçado.
Clique em Substituir.
O parâmetro de QueryString sob a solicitação de JScriptQuery.aspx é atualizado usando o novo parâmetro de contexto: CustomQueryString = {{Param0}} de jScriptQueryString___.
Observe a estrutura similar de na árvore de solicitação entre o parâmetro dinâmico detectado e o parâmetro dinâmico não detectado que você correlacionadas.
Consulte também
Conceitos
Visão geral do visualizador resultados de teste de desempenho de Web
Outros recursos
Como: Promover parâmetros dinâmicos aos parâmetros de teste de desempenho de Web