QTP - Tratamento de Erros

Existem várias maneiras de lidar com erros no QTP. Existem três tipos de erros possíveis, um encontraria ao trabalhar com o QTP. Eles são -

  • Erros de sintaxe
  • Erros Lógicos
  • Erros de tempo de execução

Tipos de Erro

Erros de sintaxe

Os erros de sintaxe são os erros de digitação ou uma parte do código que não está de acordo com a gramática da linguagem de script VB. Os erros de sintaxe ocorrem no momento da compilação do código e não podem ser executados até que os erros sejam corrigidos.

Para verificar a sintaxe, use o atalho de teclado Ctrl + F7 e o resultado será exibido conforme mostrado abaixo. Se a janela não for exibida, pode-se navegar até "Exibir" → "Erros".

Erros Lógicos

Se o script estiver sintaticamente correto, mas produzir resultados inesperados, será conhecido como erro lógico. O erro lógico geralmente não interrompe a execução, mas produz resultados incorretos. Erros lógicos podem ocorrer devido a vários motivos, a saber, suposições erradas ou mal-entendidos sobre o requisito e, às vezes, lógicas de programa incorretas (usando do-while em vez de do-until) ou loops infinitos.

Uma das maneiras de detectar um erro lógico é realizar revisões por pares e também verificar o arquivo de saída / arquivo de resultado QTP para garantir que a ferramenta tenha funcionado da maneira que deveria.

Erros de tempo de execução

Como o nome indica, esse tipo de erro ocorre durante o tempo de execução. A razão para este tipo de erro é que o script que tenta realizar algo não consegue e o script geralmente para, pois não consegue continuar com a execução. Exemplos clássicos de erros de tempo de execução são -

  • Arquivo NÃO encontrado, mas o script está tentando ler o arquivo
  • Objeto NÃO encontrado, mas o script está tentando agir naquele objeto específico
  • Dividindo um número por zero
  • Índice de matriz fora dos limites ao acessar elementos de matriz

Tratamento de erros de tempo de execução

Existem várias maneiras de lidar com erros no código.

1. Using Test Settings- O tratamento de erros pode ser definido nas configurações de teste navegando até "Arquivo" >> "Configurações" >> guia "Executar" conforme mostrado abaixo. Podemos selecionar qualquer uma das configurações especificadas e clicar em "OK".

2. Using On Error Statement - A instrução 'On Error' é usada para notificar o mecanismo VBScript das intenções de lidar com os erros de tempo de execução por um testador, em vez de permitir que o mecanismo VBScript exiba mensagens de erro que não são amigáveis ​​ao usuário.

  • On Error Resume Next - On Error Resume Next informa o mecanismo VBScript para processar a execução da próxima linha de código quando um erro for encontrado.

  • On error Goto 0 - Isso ajuda os testadores a desligar o tratamento de erros.

3. Using Err Object - O objeto Error é um objeto embutido no VBScript que captura o número do erro em tempo de execução e a descrição do erro com os quais podemos depurar o código facilmente.

  • Err.Number- A propriedade Number retorna ou define um valor numérico especificando um erro. Se o valor de Err.Number for 0, então nenhum erro ocorreu.

  • Err.Description - A propriedade Descrição retorna ou define uma breve descrição sobre um erro.

  • Err.Clear - O método Clear redefine o objeto Err e limpa todos os valores anteriores associados a ele.

Exemplo

'Call  the function to Add two Numbers Call Addition(num1,num2) 

Function Addition(a,b)  
   On error resume next  
      If NOT IsNumeric(a) or IsNumeric(b) Then 
         Print "Error number is  " &  err.number & " and description is : 
            " &  err.description 
         Err.Clear 
         Exit Function 
      End If 
   Addition = a+b 

   'disables error handling  
   On Error Goto 0 
End function

4. Using Exit Statement- As instruções de saída podem ser usadas junto com o objeto Err para sair de um teste, ação ou iteração com base no valor Err.Number. Vamos ver cada uma dessas instruções Exit em detalhes.

  • ExitTest - Sai de todo o teste QTP, independentemente das configurações de iteração do tempo de execução.

  • ExitAction - Sai da ação atual.

  • ExitActionIteration - Sai da iteração atual da ação.

  • ExitTestIteration - Sai da iteração atual do teste QTP e prossegue para a próxima iteração.

5. Recovery Scenarios - Ao encontrar um erro, os cenários de recuperação são acionados com base em certas condições e são tratados em detalhes em um capítulo separado.

6. Reporter Object- Objeto Reporter nos ajuda a relatar um evento para os resultados da corrida. Isso nos ajuda a identificar se a ação / etapa em questão é aprovação / reprovação.

'Syntax: Reporter.ReportEventEventStatus, ReportStepName, Details, 
[ImageFilePath] 

'Example 
Reporter.ReportEvent micFail, "Login", "User is unable to Login."