loadrunner transactions
melhor limpador de sistema para windows 10
Introdução às melhorias básicas do Script VuGen:
Nós exploramos Correlação no LoadRunner em detalhes em nosso tutorial anterior neste Tutoriais de treinamento completos do LoadRunner .
Nos dois últimos tutoriais, trabalhamos no tratamento de dados em um script VuGen (Correlação e Parametrização).
Neste tutorial do LoadRunner, veremos os outros aprimoramentos básicos (listados abaixo) que são necessários para nosso script:
- Transações - Para medir a taxa e o tempo de resposta das ações do usuário.
- Verificações de texto e imagem - Para garantir que a resposta retornada está correta.
- Comentários
- Pontos de encontro - Fazer com que os Vusers executem uma tarefa simultaneamente.
=> Clique aqui para uma série completa de tutoriais do LoadRunner
O que você aprenderá:
- Transações no script VuGen
- Verificações de texto e imagem no script VuGen
- Comentários no script VuGen
- Ponto de encontro no script VuGen
- Conclusão
- Leitura recomendada
Transações no script VuGen
A mera repetição de scripts de desempenho apenas colocará uma carga no aplicativo, mas não medirá nada. O objetivo final de qualquer script de desempenho é injetar carga e medir a taxa e o tempo de resposta das ações do usuário no aplicativo.
Por exemplo ,quanto tempo leva uma pesquisa de produto quando 100 usuários estão no aplicativo, quantos relatórios são gerados em um tempo de, digamos, 15 minutos e assim por diante. Para medi-los, temos que inserir transações em um script VuGen (após o teste, podemos ver a taxa e o tempo de resposta dessas transações nos resultados).
‘Uma transação é uma medida ponta a ponta de uma ação do usuário (ou um grupo de ações do usuário) em um aplicativo’.
As transações podem ser inseridas de duas maneiras:
- Durante a Gravação
- Após a gravação (onde inserimos manualmente as funções de transação no script)
Vamos inserir a transação para a ação do usuário ‘Login’ em nosso aplicativo ‘Web Tours’.
Em nosso primeiro tutorial, vimos como registrar as ações do usuário. Durante a gravação, após inserir o ‘Nome de usuário’ e ‘Senha’ na página de Login, antes de clicar no botão ‘Login’, clique no ícone ‘Inserir Iniciar Transação’ na barra flutuante de gravação.
O VuGen solicita o nome da transação. Digite qualquer nome significativo. Fornecemos 'Login' aqui, mas é uma boa prática seguir uma convenção como esta (número da transação, nome do cenário, ação do usuário, etc.): 01_WebTours_Launch 02_WebTours_Login (e assim por diante).
Agora clique no Botão de login.
Assim que chegarmos à página inicial (página principal), clique no ícone ‘Inserir Transação Final’ na barra de gravação flutuante.
Selecione a transação que deseja encerrar (transação de ‘Login’ aqui).
Pare a gravação e veja o script gerado. Podemos ver que as funções de início e término da transação são inseridas no script (destacadas em amarelo) e todas as solicitações correspondentes à ação do usuário ‘Login’ são colocadas entre essas funções.
lr_start_transaction('Login'); web_submit_data('login.pl', 'Action= http://127.0.0.1:1080/cgi-bin/login.pl ', 'Method= POST ', 'TargetFrame=', 'RecContentType= text/html ', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in= home ', 'Snapshot= t3.inf ', 'Mode= HTML ', ITEMDATA , 'Name= userSession ', 'Value= 123530.624949372zDftVAzpfcAiDDDDDiVctpzDQVcf ', ENDITEM , 'Name= username ', 'Value= jojo ', ENDITEM , 'Name= password ', 'Value= bean ', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= login.x ', 'Value= 69 ', ENDITEM , 'Name= login.y ', 'Value= 8 ', ENDITEM , LAST ); lr_end_transaction('Login', LR_AUTO );
A sintaxe das funções 'início da transação' e 'fim da transação' é muito simples. Ambos têm o nome da transação como primeiro argumento. A função ‘finalizar transação’ tem mais um atributo - ‘LR_AUTO’, que instrui VuGen a aprovar ou reprovar uma transação automaticamente (em vez de especificar explicitamente uma condição para aprovação ou reprovação).
Se o executor de carregamento encontrar algum erro na execução de solicitações dentro de uma transação, ele falhará na transação, caso contrário, a transação será aprovada.
Verificações de texto e imagem no script VuGen
As verificações de texto são usadas para verificar se a resposta retornada para a solicitação está correta ou não. No tutorial de 'Correlação', vimos que às vezes o VuGen pode não mostrar nenhum erro, mas a resposta retornada pode não ser a correta. Portanto, para garantir que a resposta está correta, usamos verificações de texto.
Por exemplo, ao fazer o login no aplicativo Web Tours, vamos para a página inicial. Vamos verificar no script se estamos obtendo a resposta correta (página inicial) ou não quando fazemos login.
Para isso, temos que identificar algum texto na resposta (homepage aqui) que pode dizer se a resposta está correta ou não. ‘Bem-vindo’ é um desses textos.
Para verificação de texto, usamos ‘ web_reg_find ’ função antes da solicitação.
A sintaxe desta função é:
web_reg_find(“Text=”,”SaveCount=”,”Fail=”,LAST);
Aqui nós temos três atributos (consulte a ajuda do VuGen para obter a lista completa de atributos):
‘Texto’ - usado para especificar o texto a ser pesquisado.
‘SaveCount’ - Salva o número de ocorrências do texto especificado em um parâmetro que especificamos.
‘Fail’ - pega um dos dois valores -’Found ’e‘ NotFound ’e falha o script de acordo.
Portanto, a função web_reg_find (“Text = Welcome”, ”SaveCount = WelcomeCount”, ”Fail = NotFound”, LAST) procura o texto 'Welcome' na resposta e salva o número de ocorrências no parâmetro 'WelcomeCount' (e falha o script se o texto não for encontrado).
O script é semelhante a este:
web_reg_find('Text= Welcome ','SaveCount= WelcomeCount ','Fail= NotFound ', LAST ); web_submit_data('login.pl', 'Action= http://127.0.0.1:1080/cgi-bin/login.pl ', 'Method= POST ', 'TargetFrame= body ', 'RecContentType= text/html ', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in= home ', 'Snapshot= t2.inf ', 'Mode= HTML ', ITEMDATA , 'Name= userSession ', 'Value= 123531.149939247zDftVDDpfcfDiVctpiAVVf ', ENDITEM , 'Name= username ', 'Value= jojo ', ENDITEM , 'Name= password ', 'Value= bean ', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= login.x ', 'Value= 66 ', ENDITEM , 'Name= login.y ', 'Value= 12 ', ENDITEM , LAST );
Agora, se repetirmos o script, obteremos um erro para a solicitação de login (veja no relay log) porque o VuGen não encontrou o texto que especificamos na resposta. Isso ocorre porque não obtivemos a página inicial correta (conforme mostrado no ‘visualizador de tempo de execução’).
Agora vamos corrigir nosso script (correlacionar a userSession) e repetir o script novamente.
web_reg_find('Text=Welcome','SaveCount=WelcomeCount','Fail=NotFound', LAST ); web_submit_data('login.pl', 'Action=http://127.0.0.1:1080/cgi-bin/login.pl', 'Method=POST', 'TargetFrame=body', 'RecContentType=text/html', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home', 'Snapshot=t2.inf', 'Mode=HTML', ITEMDATA , 'Name=userSession', 'Value={corUserSession}', ENDITEM , 'Name=username', 'Value=jojo', ENDITEM , 'Name=password', 'Value=bean', ENDITEM , 'Name=JSFormSubmit', 'Value=off', ENDITEM , 'Name=login.x', 'Value=66', ENDITEM , 'Name=login.y', 'Value=12', ENDITEM , LAST );
Desta vez, não vemos nenhum erro no log de reprodução, mas vemos uma mensagem de que nossa verificação de texto foi bem-sucedida. Portanto, obtivemos a resposta correta desta vez (conforme corroborado pelo 'visualizador em tempo de execução').
Podemos combinar verificações de texto com transações e fazer o VuGen passar uma transação se a verificação de texto for bem-sucedida e falhar em uma transação se a verificação de texto falhar.
Isso é mostrado abaixo:
lr_start_transaction('Login'); web_reg_find('Text=Welcome','SaveCount=WelcomeCount',LAST); web_submit_data('login.pl', 'Action=http://127.0.0.1:1080/cgi-bin/login.pl', 'Method=POST', 'TargetFrame=body', 'RecContentType=text/html', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home', 'Snapshot=t2.inf', 'Mode=HTML', ITEMDATA, 'Name=userSession', 'Value={corUserSession}', ENDITEM, 'Name=username', 'Value=jojo', ENDITEM, 'Name=password', 'Value=bean', ENDITEM, 'Name=JSFormSubmit', 'Value=off', ENDITEM, 'Name=login.x', 'Value=66', ENDITEM, 'Name=login.y', 'Value=12', ENDITEM, LAST); if(atoi(lr_eval_string('{WelcomeCount}'))>0) { lr_end_transaction('Login',LR_PASS); } else { lr_end_transaction('Login',LR_FAIL); }
Usamos ‘if statement’ aqui com o atributo ‘SaveCount’. O parâmetro ‘WelcomeCount’ (que salva o número de ocorrências do texto) é usado como condição para aprovar / reprovar a transação. Os atributos ‘LR_PASS’ e ‘LR_FAIL’ das funções de transação são usados para aprovar e reprovar explicitamente (respectivamente) uma transação.
Observação: Usamos duas novas funções aqui - ‘Atoi’ e ‘Lr_eval_string’ . Falaremos sobre essas funções mais tarde.
Mais algumas informações sobre a combinação dos atributos da função ‘web_reg_find’:
# 1) Se apenas o atributo 'Texto' for usado -
Exemplo: web_reg_find (“Texto = Bem-vindo”, ÚLTIMO) -
O VuGen procura o texto e falha no script se a pesquisa não for bem-sucedida.
# 2) Se apenas os atributos ‘Text’ e ‘SaveCount’ forem usados -
Exemplo: web_reg_find (“Text = Welcome”, ”SaveCount = WelcomeCount”, LAST) - VuGen pesquisa o texto e salva o número de ocorrências (mesmo se for zero) no parâmetro especificado (não falha o script se a pesquisa não tiver êxito )
# 3) Se apenas os atributos 'Texto' e 'Falha' forem usados -
Exemplo: web_reg_find (“Text = Welcome”, ”Fail = NotFound”, LAST) - VuGen procura o texto e falha o script se o texto for encontrado / não encontrado.
As verificações de texto também podem ser inseridas durante a gravação usando o ícone 'Inserir verificação de texto' na barra de gravação flutuante. Isso irá inserir o mesmo ‘Web_reg_find’ função no script.
Mas é melhor inserirmos esta função manualmente pois teremos melhor controle principalmente sobre os atributos.
Entendemos a verificação de texto com clareza, agora vamos para a verificação de imagem.
A verificação de imagem é usada para verificar a presença de uma imagem especificada em uma resposta. ‘ web_image_check ’ função é usada para verificação de imagem. Esta função deve ser colocada após o pedido (em cuja resposta esperamos a imagem).
Exemplo desta função:
web_image_check(“Image”,”Src=/WebTours/images/flights.gif”,LAST)
Onde o primeiro atributo é qualquer nome significativo e o segundo atributo ('Src') é o nome / link da imagem (consulte a ajuda do VuGen para obter a lista completa de atributos).
Comentários no script VuGen
Os comentários em um script VuGen podem ser inseridos durante a gravação e também manualmente após a gravação do script.
Durante a gravação, clique no ‘Inserir comentário’ ícone na barra de gravação flutuante.
Digite o comentário (diga 'Faça login' aqui).
Após a gravação, podemos ver os comentários no script conforme mostrado abaixo.
/* Login */ web_submit_data('login.pl', 'Action=http://127.0.0.1:1080/cgi-bin/login.pl', 'Method=POST', 'TargetFrame=body', 'RecContentType=text/html', 'Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home', 'Snapshot=t6.inf', 'Mode=HTML',
No VuGen, uma única linha pode ser comentada apenas colocando '//' antes da linha, conforme mostrado abaixo:
// web_add_cookie('SRCHD=AF=IESS3N; DOMAIN=www.bing.com'); web_add_cookie('SRCHUID=V=2&GUID=89730C3AA700412BAB917005DE9F5F47&dmnchg=1; DOMAIN=www.bing.com'); web_add_cookie('SRCHUSR=DOB=20180312; DOMAIN=www.bing.com');
E várias linhas podem ser conectadas colocando '/ *' no início e '* /' no final (conforme mostrado abaixo)
/* web_add_cookie('SRCHD=AF=IESS3N; DOMAIN=www.bing.com'); web_add_cookie('SRCHUID=V=2&GUID=89730C3AA700412BAB917005DE9F5F47&dmnchg=1; DOMAIN=www.bing.com'); web_add_cookie('SRCHUSR=DOB=20180312; DOMAIN=www.bing.com'); */
Observação: Nos exemplos mostrados acima, comentamos as funções do cookie ( web_add_cookie ) Falaremos sobre funções de cookies posteriormente nesta série de tutoriais.
É uma boa prática inserir comentários em cada etapa durante a gravação, pois isso nos ajudará a relacionar as solicitações no script às ações do usuário no aplicativo.
Ponto de encontro no script VuGen
Se tivermos um cenário onde um número maior de usuários executa uma ação simultaneamente no aplicativo (como verificar os resultados) e se tivermos que simular o mesmo em nosso teste de desempenho, podemos usar um ‘ponto de encontro’.
Um 'ponto de encontro' é uma função única e simples em um script VuGen que instrui o executor de carregamento (durante um teste com vários usuários) a esperar em uma etapa especificada no script até que todos os usuários V (executando o script) cheguem a essa etapa. essa solicitação subsequente pode ser executada simultaneamente.
A sintaxe da função Rendezvous é:
lr_rendezvous(“MeaningfulName”);
Esta função pode ser inserida durante a gravação e também manualmente após o script ser gravado.
Suponha que queremos colocar uma carga simultânea na etapa de pagamento em nosso aplicativo ‘Web Tours’. Durante a gravação nessa etapa (antes de enviar os detalhes de pagamento), clique no ícone ‘Inserir Encontro’ na barra de gravação flutuante.
E insira o nome do ponto de encontro (qualquer nome significativo).
Após a gravação, podemos ver a função rendezvous no script desta forma.
lr_rendezvous('Payment'); web_submit_data('reservations.pl_3', 'Action= http://127.0.0.1:1080/cgi-bin/reservations.pl ', 'Method= POST ', 'TargetFrame=', 'RecContentType= text/html ', 'Referer= http://127.0.0.1:1080/cgi-bin/reservations.pl ', 'Snapshot= t13.inf ', 'Mode= HTML ', ITEMDATA , 'Name= firstName ', 'Value= Jojo ', ENDITEM , 'Name= lastName ', 'Value= Bean ', ENDITEM , 'Name= address1 ', 'Value= 1st Lane , Down Street', ENDITEM , 'Name= address2 ', 'Value= 567123 ', ENDITEM , 'Name= pass1 ', 'Value= Jojo Bean ', ENDITEM , 'Name= creditCard ', 'Value= 123456789101 ', ENDITEM , 'Name= expDate ', 'Value= 0520 ', ENDITEM , 'Name= oldCCOption ', 'Value=', ENDITEM , 'Name= numPassengers ', 'Value= 1 ', ENDITEM , 'Name= seatType ', 'Value= Coach ', ENDITEM , 'Name= seatPref ', 'Value= None ', ENDITEM , 'Name= outboundFlight ', 'Value= 020 ;338;05/03/2018', ENDITEM , 'Name= advanceDiscount ', 'Value= 0 ', ENDITEM , 'Name= returnFlight ', 'Value=', ENDITEM , 'Name= JSFormSubmit ', 'Value= off ', ENDITEM , 'Name= .cgifields ', 'Value= saveCC ', ENDITEM , 'Name= buyFlights.x ', 'Value= 63 ', ENDITEM , 'Name= buyFlights.y ', 'Value= 12 ', ENDITEM , LAST );
Agora, quando executamos este script com vários usuários no Controlador, o script será executado pelos Vusers independentemente, mas os Vusers vão esperar nesta etapa de 'Pagamento' até que todos (ou alguma porcentagem dos Vusers definidos na política do Rendezvous) alcancem esta etapa após a qual realizam esta etapa simultaneamente.
Veremos mais sobre a política de rendezvous (opções) no tutorial do controlador.
Conclusão
Até agora, discutimos Correlação e Parametrização nos tutoriais anteriores e Transações, Verificações de Texto / Imagem, Comentários e Pontos de Encontro neste tutorial. Também cobrimos os métodos de aprimoramento de script mais importantes.
Em nosso próximo tutorial, veremos mais alguns desafios de script junto com as maneiras de lidar com eles.
=> Visite aqui para uma série completa de tutoriais do LoadRunner
PREV Tutorial | PRÓXIMO Tutorial
Leitura recomendada
- Teste de carga com tutoriais HP LoadRunner
- Introdução ao Micro Focus LoadRunner - Teste de carga com LoadRunner Tutorial # 1
- Correlação - Teste de carga com LoadRunner
- Tutorial do LoadRunner para iniciantes (curso aprofundado gratuito de 8 dias)
- Análise e relatórios de resultados de teste - Teste de carga com LoadRunner
- Teste de desempenho de serviços da Web usando script LoadRunner VuGen
- Diferença entre LoadRunner e Performance Center
- Como configurar arquivos de script e configurações de tempo de execução do LoadRunner VuGen