Como usar transações em QTP/UFT

⚡ Resumo Inteligente

Transações em UFT Uma forma de medir quanto tempo leva para executar uma seção escolhida de um teste é através da contagem de repetições.ping São as etapas entre uma instrução de início e uma instrução de fim que registram a duração nos resultados da execução.

  • 🔘 Objetivo: Uma transação multiplicada por um fluxo de negócios, como a reserva de um voo, em vez do teste completo.
  • ☑️ Inserção: O menu Inserir adiciona instruções de Início de Transação e Fim de Transação em torno das etapas selecionadas.
  • ✅ Demonstrações: Os métodos `Services.StartTransaction` e `Services.EndTransaction` executam a mesma função diretamente no Editor.
  • 🧪 Resultados: A declaração final apresenta o nome, o status, a duração total e o tempo perdido.
  • 🛠️ Aninhamento: As transações podem ser aninhadas, mas duas transações abertas nunca devem compartilhar o mesmo nome.
  • ⚠️ Integração: O LoadRunner e o Business Process Monitor leem apenas os dados registrados dentro de uma transação.

Como usar transações em QTP UFT

In UFT completa/QTPVocê pode medir quanto tempo leva para executar uma seção do seu teste definindo transações. Você define transações dentro do seu teste incluindo as seções apropriadas do teste com instruções de início e fim de transação.

As transações podem ser inseridas em qualquer lugar do script, e não há limite para o número de transações que podem ser adicionadas a um teste.

⚠️ Nome do produto: a ferramenta foi distribuída como HP QuickTest Professional (QTP), que se tornou HP e depois Micro Focus Unified Functional Testing, e é vendido hoje pela OpenText, cujas páginas de ajuda atuais o chamam de OpenText Testes funcionais. As transações funcionam da mesma maneira em todas essas versões.

Como inserir transações em QTP?

Você também pode inserir uma transação dentro de uma transação

O vídeo a seguir mostra as etapas para inserir uma transação em UFT Um.

Clique aqui. se o vídeo não estiver acessível

Por exemplo, você pode querer anotar o tempo necessário para agendar um voo.

  1. In QTPSelecione o estado apropriado onde deseja iniciar sua transação.
  2. Selecione Inserir transação inicial. Caixa de diálogo Iniciar transação Box abre
  3. Dê um nome adequado à transação, diga “Hora da reserva”
  4. Uma instrução de início de transação é adicionada no teste
  5. Selecione o estado onde deseja encerrar a transação
  6. Clique em Inserir > Finalizar transação
  7. Caixa de diálogo Finalizar transação Box Abre com a lista de todas as transações disponíveis
  8. Clique em OK. Uma instrução de final de transação é adicionada
  9. Vamos fazer o teste
  10. Nos resultados, a instrução final da transação fornece o tempo necessário para inserir o pedido

Observação: As mesmas caixas de diálogo são acessadas a partir do Visualização por palavra-chavee o Passo Generator Insere as mesmas instruções sem abrir o menu Inserir.

Extratos de transações no editor

As caixas de diálogo acima escrevem dois VBScript linhas no teste. Obrigadoping Fazer os passos manualmente no Editor é mais rápido quando o padrão já está familiar, e é a única opção quando os passos são gerados por código.

Services.StartTransaction "Booking Time"

' the steps that book the flight go here

Services.EndTransaction "Booking Time"

Ambos os métodos pertencem ao objeto Services. A instrução start recebe um argumento, enquanto a instrução end recebe um segundo argumento opcional.

Declaração Argumentos O que ele faz
Serviços.IniciarTransação Nome Inicia a medição do tempo naquele ponto da execução.
Serviços.FimDaTransação Nome, [Status] Interrompe a medição e regista o resultado.

O status opcional define como a transação será avaliada. Omiti-lo equivale a aprová-la. Auto.

  • Auto — passa a menos que ocorra um erro entre as duas instruções. Este é o padrão.
  • Passar — sempre termina com o status Aprovado.
  • Falhar — sempre termina com o status de Falha.
Services.StartTransaction "Booking Time"
Wait 1
Services.EndTransaction "Booking Time", Pass

Resultados da leitura da transação

Após a conclusão do teste, a etapa "Finalizar Transação" nos resultados da execução apresenta quatro valores que explicam a medição.

Campo de resultado Significado
Nome da transação O nome fornecido na declaração inicial
Status final Aprovado ou reprovado, decidido pelo argumento de status ou pelo modo automático.
Duração total Tempo decorrido entre as declarações de início e fim.
Perda de tempo Tempo dentro da duração que UFT Um deles acrescentou:

O tempo perdido é importante porque a ferramenta executa processos em segundo plano enquanto a transação está aberta.tracUse esse valor como base para a duração total, a fim de estimar quanto tempo a aplicação sozinha teria levado para ser executada. Esse é o número que vale a pena comparar entre as versões.

A duração para um único usuário é um parâmetro funcional, não um valor de carga. A concorrência é medida por um teste de performance ferramenta, e uma transação que funciona bem para um usuário ainda pode falhar com cem usuários.

Transações Aninhadas e Distribuídas

A lista de etapas de origem observa que uma transação pode estar dentro de outra, o que permite isolar uma subetapa lenta sem comprometer a sincronização de todo o fluxo. A transação externa continua em execução enquanto a interna é aberta e fechada.

Duas regras mantêm a nidificação segura.

  • Cada nome precisa de um par correspondente, e a declaração inicial deve aparecer antes da declaração final.
  • Apenas uma transação com um determinado nome pode estar aberta por vez. Abrir uma segunda transação com o mesmo nome encerra a primeira com o status de Falha.

Uma transação distribuída vai além e abrange dois testes: Serviços.IniciarTransaçãoDistribuída abre no primeiro teste e Serviços.FimTransaçãoDistribuída fecha-o no segundo, correspondendo por um ID exclusivo em vez de por nome. Ele existe para o Monitor de Processos de Negócio e LoadRunner cenários que leem apenas os dados registrados dentro de uma transação e ignoram tudo o que está fora dela.

Quando uma etapa dentro de uma transação pode legitimamente falhar, emparelhe a transação com um cenário de recuperação Assim, a execução chega à instrução final em vez de parar.ping a meio caminho.

Perguntas Frequentes

Uma transação reporta um resultado nomeado com um status nos resultados da execução e no LoadRunner. MercuryO temporizador mede apenas os milissegundos decorridos dentro do script, que você então informa ou converte por conta própria.

Cronometre a operação não relacionada com um MercuryEm seguida, passe o valor do temporizador para `Services.AddWastedTime`. O tempo perdido é deduzido de cada transação aberta, portanto, a duração relatada reflete apenas o fluxo em teste.

Por padrão, um erro antes da instrução final interrompe a execução. No painel Executar das Configurações de Teste, defina a opção de erro para prosseguir para a próxima etapa, garantindo que a instrução final seja alcançada e a transação seja registrada.

No controlador do LoadRunner, e não na janela de resultados da execução. Somente as etapas contidas em uma transação são enviadas; portanto, qualquer etapa fora de um par de início e fim nunca chega ao relatório de desempenho.

Sim. O método `Services.SetTransaction` recebe um nome, uma duração em segundos e um status, o que permite que um script registre uma medição que ele mesmo calculou em vez de uma que a ferramenta tenha medido.

Os modelos de aprendizado de máquina estabelecem uma linha de base para cada transação nomeada em todas as compilações e geram um alerta quando a duração se desvia do intervalo normal, detectando uma regressão lenta que um status de aprovação ou falha por si só ocultaria.

Sim. Travas deslizantes portáteis Copiloto do GitHub Completa o par Services.StartTransaction e Services.EndTransaction a partir de um comentário, embora o nome da transação e a constante de status ainda precisem ser verificados em relação à convenção de nomenclatura em uso.

Não há limite técnico, mas uma transação por fluxo de negócios mantém o relatório legível. Dezenas de pequenas transações ocultam o número que importa sob ruído de medição.

Resuma esta postagem com: