Correlação no LoadRunner com o exemplo web_reg_save_param
⚡ Resumo Inteligente
A correlação no LoadRunner captura um valor dinâmico do servidor, como um ID de sessão, e o realimenta em solicitações posteriores, para que um script VuGen gravado seja reproduzido com sucesso em vez de falhar devido a dados desatualizados.
O que é Correlação?
Correlação, como o próprio nome sugere, é um mecanismo para definir uma relação entre duas variáveis ou entidades. Um dicionário a define como “relação estatística entre duas ou mais variáveis, de modo que mudanças sistemáticas em uma delas acompanham mudanças sistemáticas no valor de uma das variáveis”.
Nota da marca: esta ferramenta foi lançada como HP e depois Micro Focus LoadRunnere agora é OpenText Engenharia de Desempenho ProfissionalTodas as funções de correlação abaixo permanecem inalteradas, e o fornecedor fornece o gerador de scripts. VuGen.
Por que precisamos de correlação?
Vamos entender a correlação com o seguinte cenário.
Imagine que você está gravando um roteiro usando LoadRunner.
A comunicação cliente-servidor durante a gravação ocorre da seguinte forma, e o diagrama a resume:
- Durante a gravação, 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 o 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 a reprodução, mostrada após estas etapas:
- 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 previamente gravado, ABC, 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 consiga capturar e analisar o valor dinâmico enviado em tempo de execução e retornar esse valor para o servidor. Veja como a comunicação cliente-servidor funcionará com essa solução, conforme ilustrado no diagrama abaixo:
- 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.
O breve vídeo abaixo demonstra o mesmo problema de gravação e reprodução.
Clique aqui. se o vídeo não estiver acessível
No caso do VuGen, correlação é uma relação vinculativa entre uma resposta e qualquer solicitação precedente.
Existem diversas situações em que uma requisição se baseia em uma resposta previamente recebida do servidor, como um ID de sessão ou a data e hora do servidor. Esses valores são diferentes a cada execução de um aplicativo ou gravação de um script. Obviamente, se a execução do script depende de um valor retornado pelo servidor, é necessário encontrar um mecanismo para "capturar" a resposta do servidor e associá-la às requisiçõ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 que ele possa comparar internamente os diferentes valores 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 | Detectar e correlacionar dados dinâmicos para servidores de aplicativos compatíveis com 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 pressione Ctrl + F7), conforme mostrado no menu abaixo.
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 opção "Verificação de Regras" esteja marcada. Se você clicar em "Correlacionar automaticamente os valores encontrados", o VuGen não exibirá a opção de escolha assim que um candidato à correlação for encontrado; em vez disso, ele simplesmente 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 no botão da barra de ferramentas mostrado aqui. A partir do menu, o VuGen irá regenerar o script (sem a necessidade de gravação) com as novas configurações. O VuGen adicionará automaticamente o trecho de código necessário para lidar com a correlação. Analisaremos o exemplo 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);
Code notas: Ambos os trechos aparecem exatamente como foram publicados. Observe os números ordinais: Ord=l e RelFrameId=l Use um L minúsculo, e o VuGen espera o dígito 1.
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
- Encontre a resposta do servidor que contém 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
Entendendo a função web_reg_save_param
O VuGen fornece diversas 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
Nota de versão: As versões atuais do VuGen tratam web_reg_save_param_ex como sucessora da função original, e web_reg_save_param_regexp como a escolha quando os próprios limites mudam. O exemplo original ainda funciona.
Embora esta seja uma breve introdução, para uma compreensão detalhada das funções e seus parâmetros, abra o VuGen, escreva uma função (ou use a Caixa de Ferramentas de Etapas), mova o cursor sobre a função e pressione F1 – familiarize-se com o assunto. Ajuda do VuGen E faça disso um hábito. Você terá que lidar com isso muitas vezes ao trabalhar no setor.
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
A tabela abaixo reúne todos os atributos que a função aceita, se são obrigatórios e o que controlam.
| Atributo | Requeridos? | O que ele faz |
| Converter | Opcional | HTML_PARA_URL Converte dados codificados em HTML para um URLO formato de dados codificados em HTML, HTML_TO_TEXT, converte dados codificados em HTML para formato de texto simples. |
| Ignorar redirecionamentos | Opcional, padrão “Ignorar redirecionamentos=Não” | Quando definido como "Sim" e a resposta do servidor for uma informação de redirecionamento (código de status HTTP 300-303, 307), essa resposta não é pesquisada. A solicitação GET é enviada para o local redirecionado e a pesquisa é executada na resposta a partir desse local. |
| LB | Exigido | O limite esquerdo do parâmetro ou dos dados dinâmicos. Se você não especificar um valor para LB, serão usados todos os caracteres do início dos dados como limite. Os parâmetros de limite diferenciam maiúsculas de minúsculas. Para personalizar ainda mais o texto da pesquisa, use um ou mais indicadores de texto. |
| NÃO ENCONTRADO | Opcional, padrão “erro” | Tratamento de erros quando um limite não é encontrado e uma string vazia é gerada. “Não encontrado=erro” gera um erro. “Não encontrado=aviso” (“Não encontrado=vazio” em versões anteriores) define a contagem de parâmetros como 0 e continua, o que é ideal quando você deseja verificar se a string foi encontrada sem interromper o script. Com a opção Continuar em caso de erro ativada, o script continua mesmo em caso de erro, mas o log estendido registra a ocorrência. |
| ORD | Opcional, padrão 1 | Indica a posição ordinal ou instância da correspondência. Se você especificar "All", os valores dos parâmetros serão salvos em uma matriz. O uso de `Instance` em vez de `ORD` é suportado para compatibilidade com versões anteriores, mas está obsoleto. |
| RB | Exigido | O limite direito do parâmetro ou dos dados dinâmicos. Se você não especificar um valor para RB, serão usados 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 da pesquisa, use um ou mais indicadores de texto. |
| RelFrameID | Opcional | O nível hierárquico da página HTML em relação ao solicitado URLOs valores possíveis são TODOS ou um número. RelFrameID não é suportado em scripts de nível de GUI. |
| SalvarLen | Opcional, valor padrão -1 | O comprimento de uma subcadeia de caracteres do valor encontrado, a partir do deslocamento especificado, a ser salva no parâmetro. O padrão salva até o final da cadeia de caracteres. |
| Salvar deslocamento | Opcional, padrão 0 | O deslocamento de uma subcadeia de caracteres do valor encontrado, a ser salvo no parâmetro. O valor do deslocamento deve ser não negativo. |
| Pesquisar | Opcional, padrão TODOS | O escopo da pesquisa — onde procurar os dados delimitados. Os valores possíveis são: Cabeçalhos (pesquisar somente os cabeçalhos), Corpo (pesquisar somente os dados do corpo, não os cabeçalhos), Nenhum recurso (pesquisar somente o corpo HTML, excluindo todos os cabeçalhos e recursos) ou TUDO (pesquisar corpo, cabeçalhos e recursos). |
Assim que o script for reproduzido corretamente, adicione Parametrização, transações e configurações de tempo de execução, execute-o a partir do Responsável pelo Tratamento e leia o resultado em Análise como parte de algo mais amplo Teste de Desempenho e Teste de carga.







