Blog > Automação com TestComplete (Parte 2): Gravando Keyword Tests

26/fev

Este post apresenta na prática como operar a ferramenta TestComplete gravando testes no formato Keyword Tests. Além disso, discute alguns conceitos relevantes da ferramenta. Ao fim da leitura você será capaz de criar um projeto e gravar seu primeiro teste usando o formato Keyword Test.

Introdução

Como vimos no  primeiro post desta série, através do TestComplete é possível criar testes automatizados em aplicações web, desktop e mobile. Neste post veremos um exemplo prático de como automatizar testes em uma aplicação Desktop, construída em Delphi, que pode ser baixada a partir do link a seguir:

qualister.info/files/Orders.zip

Usaremos a abordagem Keyword, para que possamos conhecer algumas características desta forma de criação de testes. A versão do TestComplete usada como base para escrita deste post é a 11.20.

Considera-se que o leitor já tenha feito download e instalado a aplicação em sua máquina e esteja com ele aberto, desta forma, verá uma tela semelhante a que é apresentada abaixo:

Criando o primeiro projeto

O TestComplete trabalha com o conceito de Suites e Projetos, onde uma suite pode ter 0 ou n projetos e um projeto pertence a uma suite. Desta forma, podemos criar uma Suite e posteriormente adicionar um projeto a ela ou simplesmente criar um projeto e automaticamente uma suite será criada para ele (faremos isso).

Passo 1: Clique em File > New > New project

O assistente de criação de projeto será apresentado e então iremos preencher as informações por ele requeridas.

Passo 2: Informe qual é o nome do Projeto, neste caso “AutomacaoComTestComplete”, e clique em "Next"

Passo 3: A próxima tela apresenta os tipos de aplicação que podemos automatizar, iremos selecionar a opção “Generic Windows Applications”

Passo 4: Clique em “Add" e aponte a aplicação “Orders_Delphi.exe” que foi baixada e depois clique em "Next"

No próximo passo teremos de configurar o Test Visualizer, que é o mecanismo coletor de evidências. basicamente, podemos desativá-lo, ativá-lo apenas para imagens ou ativá-lo para imagens e informações dos objetos.

O Test Visualizer pode ser utilizado durante a gravação dos testes e também durante a execução dos testes. Em projetos que temos participado, temos visto que geralmente a opção mais utilizada é desativar o Test Visualizer durante a gravação e ativá-lo durante a execução, veja a imagem abaixo:

Passo 5: Desativar Test Visualizer na gravação e ativar na execução e clicar em “Next”

No próximo passo teremos de selecionar em qual linguagem de programação desejamos escrever os nossos testes. Esta linguagem não precisa ser a mesma linguagem na qual a aplicação foi desenvolvida. Ela se refere a qual linguagem de programação é de domínio dos testadores ou mesmo qual é mais conhecida pelos desenvolvedores.

Neste ponto, escolheremos “JScript" que é extremamente semelhante a “Javascript”, veja:

Passo 6: Selecionando a linguagem de programação que usaremos para escrever testes

Agora já temos o projeto, note que a estrutura do projeto foi criada, nela podemos ver itens que são importantes para o projeto. Vemos cada uma delas durante os posts dest serie. Veja abaixo a foto da estrutura do projeto:

Teste que iremos automatizar

1. Abrir a aplicação Orders_Delphi.exe;

2. Clicar em Pedido > Novo pedido;

3. Escolher o produto “Mac OS X”;

4. Digitar a quantidade “10”;

5. Validar que o preço é “$80”;

6. Validar que o desconto é “15%”;

7. Validar que o total é “$680”;

8. Fechar a janela de pedido;

9. Fechar o Orders_Delphi.exe.

Iniciando a gravação do primeiro teste no formato Keyword

Após a criação do projeto, automaticamente o TestComplete cria e abre um novo KeywordTest chamado “Test 1”. Vamos aproveitar este teste que já está aberto e vazio, gravando passos de um teste dentro dele. Para isso, clique sobre o botão “Append to test” e então execute o teste proposto no tópico anterior.

Passo 7: Iniciar a gravação do teste no modo Keyword

Uma vez que você clicar neste botão, verá que o TestComplete será minimizado e o Orders_Delphi será aberto automaticamente. Então prossiga executando os 4 primeiros passos do teste que iremos automatizar, feito isso, clique no botão “Pause” da janela de controle:

Ótimo, o clique no botão “Pause" é apenas para tornar simples a leitura deste post e compreensão do que estamos gravando. Bom, o passo 5 do nosso teste diz que, após digitar a quantidade é necessário fazer três validações. Perceba que todas as validações referem-se a uma propriedade “text" dos campos Preço, Desconto e Total. No TestComplete este tipo de validação é feita através do “Property Checkpoint”.

Passo 8: Clique na opção “Property Checkpoint”

Agora um assistente será aberto e ele trará três passos: I) selecionar o objeto que queremos validar, II) selecionar a propriedade que iremos avaliar e III) apontar qual dados esperamos que a propriedade apresente naquele momento do teste.

Passo 9: Arraste o alvo sobre o campo “Preço” e clique em “Next”

A próxima janela do assistente apresenta todas as propriedades do objeto que foi selecionado, no caso, o campo “Preço”. O TestComplete previamente seleciona qual é a propriedade mais utilizada para validação do objeto escolhido, no caso “wText" que é a propriedade que possui o valor do campo.

Importante notar que em Delphi a propriedade que armazena o valor do campo é “Text”, mas o TestComplete tem algumas propriedades personalizadas, chamada de “Extended”. Essas propriedades são cross-platform, ou seja, "wText", representa “Text" do Delphi e também representa o valor contido em campos de algumas outras linguagens de programação. Isso também ajuda na curva de aprendizagem da ferramenta.

Passo 10: Selecione a propriedade wText e clique em “Next"

Por fim, precisamos fornecer informações quanto ao tipo de validação que desejamos fazer. Aqui, diremos que queremos validar se a propriedade “wText" é igual a “$80”. Mas poderíamos fazer outros tipos de validação, como, por exemplo, validar que a propriedade “wText" contém o texto “80” ou mesmo uma serie de outras validações, que podem ser selecionadas a partir do campo “Condition" desta tela.

Também é possível limitar a validação de strings a ser case sensitive, ou seja, diferenciar maiúsculas e minúsculas.

Passo 11: Validando que a propriedade “wText" é “Equals" a “$80”, então clique em “Finish"

Ótimo, agora é com você, faça as validações para os próximos campos: Desconto e Total.

Passo 12: Clique em no botão gravar e então feche o formulários de pedido e depois feche o Orders Delphi

Excelente, agora clique no botão Stop e então a janela do TestComplete será apresentada novamente e veremos o script de teste que foi gravado:

A primeira coluna do Keyword Test apresenta o objeto que estamos interagindo, a segunda coluna apresenta a ação que o objeto está recebendo e a terceira mostra o valor que está sendo atribuído ao objeto. Cada linha representa uma ação que será executada.

Perceba neste script que algumas linhas foram adicionadas mas não são úteis, por exemplo, a linha que da um duplo click (DblClick) no campo quantidade (Qty_Edit). Ele não é necessário, pois o comando abaixo dele digita 10 no campo, e não necessito clicar nele antes de digitar. Remover comandos inúteis ajuda seu teste a ficar mais rápido.

É possível alterar os valores que foram inseridos durante a gravação apenas clicando neles duas vezes, por exemplo, poderíamos troca o valor digitado no campo quantidade, de 10 para 20. Isso faria com que o teste parasse de funcionar, mas é uma possibilidade.

Veja que o modo Keyword Test mostra todo o teste em modo gráfico, ajudando os testadores que não tem tanta experiência em desenvolvimento a entenderem melhor o teste.

Operations

O menu lateral “Operations" apresenta uma serie de componentes que podem ser adicionados ao teste que foi gravado, ela se divide nas seguintes categorias: I) TestAction, que mostra ações como chamada a outros testes, executar aplicações e também executar processos do windows; II) Logging, que possui menus que interagem com o relatório de execução de testes; III) Web, para interação com aplicações Web; IV) Checkpoints, que são formas de validar informações durante a execução de testes; V) Statements, que são comandos de programação em formato gráfico, como Laços, Condicionais, Tratamentos, Atribuição de variáveis, etc; VI) Miscellaneous, que possui comando como Delay ou Comentários; e VII) Performance, para avaliar a performance da execução do teste.

Para utilizá-las, basta arrastar para um ponto dentro do teste. Vamos usar uma delas, que é o Log Message.

Passo 13: Clique em Logging e arraste o item “Log Message” para um ponto dentro do teste, depois digite “Qualister Consultoria” e pressione “Finish”

Veja uma referência completa sobre como utilizá-las no link abaixo:

https://support.smartbear.com/viewarticle/72416/

Executando o teste e compreendendo o relatório

A execução do teste pode ser feita através do click no botão “Run Test”, contido no menu superior da janela do “Test 1”, e então o teste será executado e apps a execução veremos o relatório de execução de testes:

Vamos entender melhor esta tela dividindo-a em partes:

Log itens

Apresenta os itens que foram testados e um feedback visual do status final da execução, que pode ser verde (sucesso), amarelo (possui alertas) ou vermelho (falha de ao menos um dos subitens do teste).

Information

Dados da execução do teste, como local onde foi salvo este relatório e tempo de execução.

TestLog

Qual foi o log de cada um dos passos que foram executados pelo teste, esta janela possui verias colunas, mas vamos falar sobre duas delas, a coluna Type apresenta o tipo do log (Erro, Alerta, Mensagem, Evento ou Checkpoint) e também, a coluna Has Picture, que mostra se o log gerou imagem.

Adicional info

Ao clicar no log contido na janela “TestLog” vemos aqui informais detalhadas de o que ocorreu durante a execução do log selecionado. O mesmo vale para a aba “Picture”, por exemplo.

Exportação do relatório de testes

É possível exportar os resultados dos testes a partir do grupo de botões contido no topo da janela do relatório de execução, veja:

Outra forma de exportação é gerar o relatório em formato HTML ou MHT (mas isso só pode ser aberto pelo internet Explorer, então, melhor não) ficando no botão que está ao lado direito do grupo de botões de exportação, veja:

Configurações

Caso algum erro ocorre na execução do teste o mesmo irá parar e impedir que os demais passos venham a ser executados. Desta forma, para permitir que os testes continuem a ser executados é necessário desmarcar a opção “Stop on error” contida nas propriedades do projeto.

Passo 14: Clique em Tools > Current project properties > Playback e desmarque a opção “Stop on error”

Conclusão

A gravação de testes em aplicações Desktop conta com a identificação das propriedades de cada um dos objetos contidos em tela e a partir dai é possível utilizar Checkpoints para avaliar se as propriedades dele são as esperadas. Testes executados geram relatórios ricos de informação, que podem auxiliar na identificação das causas dos erros.

POSTS RELACIONADOS

Workshop Gratuito de TestComplete (Online)

Conheça vários recursos e benefícios do TestComplete com um especialista gratuitamente

AGENDA

CURSOS RELACIONADOS