Correlação no LoadRunner com exemplo Web_Reg_Save_Param
O que é Correlação?
A correlação, como o nome sugere, é um mecanismo de definição de um relacionamento entre duas variáveis ou entidades. Um Dicionário define-o como “relação estatística entre duas ou mais variáveis, tal que mudanças sistemáticas na outra acompanham mudanças sistemáticas no valor de uma variável”.
Por que precisamos de correlação?
Vamos entender a correlação com o seguinte cenário.
Considere que você está gravando um script usando LoadRunner.
Comunicação cliente-servidor
- Durante o Record, o cliente envia uma solicitação ao servidor para iniciar uma sessão
- Um servidor recebe a solicitação e aloca um novo ID de sessão ABC
- O cliente armazena o ID da sessão ABC no script.
- O cliente inicia a sessão com ID ABC e envia uma solicitação a um servidor para permitir a gravação
- O Servidor reconhece o ID ABC e permite que o cliente grave o script
- Agora, vamos estudar a comunicação cliente-servidor durante o replay
- Durante o Replay, um cliente envia uma solicitação ao servidor para iniciar uma sessão
- Um servidor recebe a solicitação e aloca um novo ID de sessão XYZ
- Um cliente inicia a sessão com o ID de sessão ABC previamente gravado e envia uma solicitação ao servidor para permitir a gravação
- Um servidor não consegue identificar o ID ABC porque esperava o ID XYZ alocado e a sessão falha.
Precisamos de uma solução que capture, analise o valor dinâmico enviado em tempo de execução e retorne esse valor ao servidor. Veja como será a comunicação cliente-servidor com esta solução
- Durante o Replay, um cliente envia uma solicitação ao servidor para iniciar uma sessão
- Um servidor recebe a solicitação e aloca um novo ID de sessão ZZZ
- Um cliente analisa este novo ID de sessão ZZZ da solicitação.
- Um cliente envia uma solicitação para iniciar sessão com id ZZZ
- Um servidor reconhece o ID ZZZ e permite que o cliente reproduza o script
Isso não é nada além correlação.
Clique aqui se o vídeo não estiver acessível
No caso do VUGen, a correlação é uma relação vinculativa entre uma resposta e qualquer solicitação anterior.
Existem várias situações em que uma solicitação é baseada em uma resposta recebida anteriormente do servidor, como um ID de sessão, data/hora do servidor que é buscada no servidor. Esses valores são diferentes sempre que você executa um aplicativo ou grava um script. Obviamente, se a execução do script depende de um valor retornado pelo servidor, isso significa que você precisa encontrar um mecanismo onde possa “capturar” a resposta do servidor e anexar às solicitações que o servidor espera. Isso normalmente é chamado de Correlação no LoadRunner.
Em palavras simples, a solução usando Correlação é:
- Capture o valor de saída de uma etapa
- Use o valor capturado acima para servir como entrada para todas as etapas subsequentes
A correlação é classificada em 2 categorias no VUGen/LoadRunner:
- Correlação automática
- Correlação manual
Correlação Automática
LoadRunner fornece um mecanismo para executar facilmente a correlação de forma automática.
O VUGen exigirá que você execute um script gravado pelo menos duas vezes para poder comparar internamente os valores variados na resposta do servidor.
A correlação automática pode ser classificada em 3 categorias:
- Correlação de detecção automática
- Correlação Baseada em Regras
- Correlacionando todas as declarações
Nome da Regra | Quando usar |
---|---|
Correlação de detecção automática | Detecte e correlacione dados dinâmicos para servidores de aplicativos suportados pelo HP LoadRunner |
Baseado em regras | Usado ao trabalhar com um servidor de aplicativos não suportado cujo contexto é conhecido. |
Correlacionar tudo | Ajuda a correlacionar todos os dados dinâmicos de forma cega. |
Embora a Correlação Automática pareça mais simples, ela pode ser propensa a erros e funciona em no máximo 5% dos casos. É sempre aconselhável usar correlação manual.
Para configurar a correlação automática no momento da gravação, execute a configuração abaixo em Configuração de tempo de gravação após a gravação de um script.
Clique em Gravar =>Opções de Gravação (ou clique em Ctrl +F7),
A janela abaixo será aberta:
Clique em Correlação =>Configuração – a janela abaixo será aberta.
Aqui, você precisa marcar como verificado em todos os aplicativos (ASPNET) etc., que são usados em seu aplicativo em questão. No lado direito, você pode ver as regras que detectarão possíveis candidatos para correlação, por exemplo, _VIEWSTATE. Você também pode adicionar mais aplicativos ou regras personalizadas clicando no botão Nova Regra.
Você também pode clicar em REGRAS, você verá como abaixo:
Para que a Correlação Automática funcione, você precisa garantir que a Verificação de Regras esteja marcada como marcada. Se você clicar em correlacionar automaticamente os valores encontrados, o VUGen não solicitará a escolha quando um candidato a correlação for encontrado; em vez disso, apenas os correlacionará.
Entenderemos a API usada para correlação posteriormente. No entanto, é aconselhável usar a comparação HTML em vez da comparação de texto.
Depois de selecionar qualquer regra, clique no botão OK para fechar as janelas.
Clique em no menu e o VUGen irá regenerar o script (sem precisar gravar) com novas configurações. O VUGen adicionará automaticamente um trecho de código necessário para lidar com a correlação. Veremos a amostra com mais detalhes em Correlação Manual.
Observe que se você executar a correlação manualmente ou usar a correlação automática, o trecho de código conterá exatamente a mesma sintaxe e função.
Etapas para correlacionar automaticamente um script:
- Grave um roteiro
- Roteiro de repetição
- Identifique os valores a serem correlacionados
- Selecione os valores e clique no botão de correlação automática
- Verifique o script executando novamente. Uma execução bem-sucedida significa correlação bem-sucedida.
Dica:
- A correlação ajuda a executar seu script com valores diferentes
- A correlação também reduz o tamanho do seu script
Correlação Manual
A correlação manual consiste em escrever código diretamente em seu script para atender a valores em constante mudança. Podemos dividi-lo nas etapas abaixo:
- Determine o valor a capturar
- Encontre os limites de texto direito e esquerdo do valor a ser capturado (WEB)
- Descubra qual ocorrência dos limites do texto deve ser usada
- Adicione uma função web_reg_save_param ao script, acima do trecho de código que solicita a página com o valor a ser capturado
- Adicione um nome de parâmetro, limite esquerdo, limite direito e ocorrência à função
- Parametrize o valor dinâmico no script sempre que ele ocorrer
- Verifique a execução correta
web_reg_save_param (" OracleAppJSESSIONID3", "LB/IC=JSESSIONID=", "RB/IC=;", "Ord=l", "Search=headers", "RelFrameId=l", LAST); web_reg_save_param("Siebel_Analytic_ViewState2", "LB/IC=ViewState\" value=\"", "RB/IC=\"", "Ord=1", "Search=Body", "RelFrameId=l", LAST);
A correlação manual pode ser feita por VUser Comparison. As etapas no método de correlação de comparação VUser podem ser divididas conforme abaixo:
- Identifique valores dinâmicos que precisam ser correlacionados
- Resposta Localizar Servidores contendo o valor Dinâmico
- Capture o valor dinâmico em um parâmetro
- Substitua todas as ocorrências do valor Dinâmico pelo parâmetro
- Verifique as alterações
Compreendendo a função Web_reg_save_param
VUGen fornece múltiplas funções ou APIs para correlacionar candidatos, incluindo:
- web_reg_save_param
- web_reg_save_param_ex
- web_reg_save_param_regexp
- web_reg_save_param_xpath
Embora uma breve introdução seja fornecida aqui, para uma compreensão detalhada das funções e seus parâmetros, abra o VUGen, escreva a função (ou use a caixa de ferramentas Steps), mova o cursor sobre a função e clique em F1 – familiarize-se com a ajuda do VUGen e faça uma hábito. Você terá que lidar muito com isso ao trabalhar na indústria.
Aqui vamos nós com os detalhes da função:
web_reg_save_param(Nome do parâmetro, limite esquerdo, limite direito)
Lista de atributos
Converter: Os valores possíveis são:
HTML_TO_URL: converter dados codificados em HTML em um formato de dados codificados em URL
HTML_TO_TEXT: converte dados codificados em HTML para formato de texto simples; este atributo é opcional.
Ignorar redirecionamentos: se “Ignore Redirections=Yes” for especificado e a resposta do servidor for informação de redirecionamento (código de status HTTP 300-303, 307), a resposta não será pesquisada. Em vez disso, após receber uma resposta de redirecionamento, a solicitação GET é enviada para o local redirecionado e a pesquisa é realizada na resposta desse local.
Este atributo é opcional. O padrão é “Ignorar Redirecionamentos=Não”.
LIBRA: O limite esquerdo do parâmetro ou dos dados dinâmicos. Se você não especificar um valor LB, ele usará todos os caracteres desde o início dos dados como limite. Os parâmetros de limite diferenciam maiúsculas de minúsculas. Para personalizar ainda mais o texto de pesquisa, use um ou mais sinalizadores de texto. Este atributo é obrigatório. Consulte a seção Argumentos de limite.
NÃO ENCONTRADO: a opção de tratamento quando um limite não é encontrado e uma sequência vazia é gerada.
“Not found=error”, o valor padrão, faz com que um erro seja gerado quando um limite não é encontrado.
“Not found=warning” (“Not found=empty” em versões anteriores), não gera erro. Se o limite não for encontrado, ele define a contagem de parâmetros como 0 e continua executando o script. A opção “aviso” é ideal se você deseja ver se a string foi encontrada, mas não deseja que o script falhe.
Note: se Continuar em caso de erro estiver ativado para o script, mesmo quando NOTFOUND estiver definido como “erro”, o script continuará quando o limite não for encontrado, mas uma mensagem de erro será gravada no arquivo de log estendido.
Este atributo também é opcional.
ORD: indica a posição ordinal ou instância da correspondência. A instância padrão é 1. Se você especificar “Todos”, os valores dos parâmetros serão salvos em uma matriz. Este atributo é opcional.
Nota: O uso de Instance em vez de ORD é suportado para compatibilidade com versões anteriores, mas está obsoleto.
RB: O limite direito do parâmetro ou dos dados dinâmicos. Se você não especificar um valor RB, ele usará todos os caracteres até o final dos dados como limite. Os parâmetros de limite diferenciam maiúsculas de minúsculas. Para personalizar ainda mais o texto de pesquisa, use um ou mais sinalizadores de texto. Este atributo é obrigatório. Consulte a seção Argumentos de limite.
RelFrameID: o nível de hierarquia da página HTML relativo ao URL solicitado. Os valores possíveis são TODOS ou um número. Clique em Atributo RelFrameID para obter uma descrição detalhada. Este atributo é opcional.
Nota: RelFrameID não é suportado em scripts de nível GUI.
SalvarLen: o comprimento de uma subsequência do valor encontrado, do deslocamento especificado, para salvar no parâmetro. Este atributo é opcional. O padrão é -1, indicando salvar no final da string.
Salvar deslocamento: O deslocamento de uma substring do valor encontrado, para salvar no parâmetro. O valor de deslocamento deve ser não negativo. O padrão é 0. Este atributo é opcional.
Pesquisa: O escopo da pesquisa – onde procurar os dados delimitados. Os valores possíveis são Cabeçalhos (pesquisar apenas os cabeçalhos), Corpo (pesquisar apenas os dados do corpo, não os cabeçalhos), Nenhum recurso (pesquisar apenas o corpo HTML, excluindo todos os cabeçalhos e recursos) ou TODAS (corpo de pesquisa, cabeçalhos e recursos). O valor padrão é TODOS. Este atributo é opcional, mas geralmente preferido.