Hoje vou apresentar a
ferramenta selenium IDE, que comecei a falar no último artigo.
Como já falei, essa ferramenta é a principal para esse tipo de teste, já que é a partir
dela que são gerados e gerenciados os testes de interface.
Para fazer o download
dela, entre no link: https://addons.mozilla.org/pt-BR/firefox/downloads/latest/2079/addon-2079-latest.xpi. Basta reiniciar o firefox para que a
extensão esteja disponível para uso. Para abrir o aplicativo, basta achá-lo na
opção Ferramentas (Tools).
A tela que aparecerá é
a seguinte:
Não vou criar um teste,
mas sim explicar como usar a IDE e o que significa cada opção nela, já que este
artigo visa mostrar mais mostrar a ferramenta, que fazer um teste completo
ainda, que vou fazer no próximo artigo.
Tudo o que um usuário
pode fazer interagindo com a página, pode ser reproduzido com a
ferramenta. Ela gera códigos feitos com Javascript que são capazes de manipular qualquer elemento, desde preencher
valores até verificar itens com valores específicos. Vamos ver como funciona a
IDE e no próximo artigo irei mostrar um teste completo.
Vou fazer uma
apresentação dos itens de cima para baixo, pelo menos os mais utilizados.
No campo URL Base, que
fica no topo da IDE logo abaixo dos menus é o path do sistema ou site que
pretende-se fazer os testes. Por exemplo: para criar testes para um sistema
local poderíamos ter esta URL no campo: http://localhost:8080/meusistemalocal/.
Abaixo desse campo, temos uma opção com o nome Fast Slow. É nela onde definimos a velocidade que
queremos que os testes rodem; isso é muito bom, já que às vezes precisamos
visualizar os testes ao mesmo tempo em que estão rodando, e a opção padrão
(Fast no máximo) é muito rápida.
Depois do campo, estão
as opções para acionar e manipular os testes. O primeiro “play” roda uma suíte,
ou seja, ele roda um conjunto de vários testes de uma vez só, na ordem em que
estão abertos. O segundo “play” serve para rodar apenas o arquivo de teste que
está aberto atualmente, ele roda todos os comandos do teste a partir do ponto
inicial. O botão de “pausa” serve para interromper o processamento dos teste no
meio de sua execução; o de
iteração serve para o debug passo-a-passo dos testes. O próximo funciona como o
botão do “play”, mas ele roda o teste juntamente com a página e não pela IDE. O
próximo botão serve para agrupar comandos como regras simples. Por último, nessa
linha, temos o botão de gravação, que fica alinhado à direita e serve para gravar todos os passos
que fazemos na página.
Abaixo desses botões
temos uma aba “tabela” e outra “código-fonte”. Na primeira conseguimos
fazer os testes com o uso do assistente, na segunda aba podemos editar o teste
pelo seu código-fonte. Esse código-fonte pode ser o padrão HTML, ou ser
modificado pelo menu Opções > Formato, as linguagens disponíveis são: Java,
C#, Perl, PHP, Python e Ruby, além do HTML.
Dentro da área branca
maior é onde ficam os comandos na ordem em que serão acionados, mesma ordem
criadas, mas podemos inserir algum comando entre dois já existentes (vou
mostrar mais no próximo artigo).
Os três próximos
campos são os campos onde interagimos com os comandos, ou seja, inserimos e
editamos comandos para o teste. O primeiro deles é o item “comando”, que é a
ação a ser feita, tal como verificar algum item presente, abrir uma URL, etc. O segundo campo de entrada é o “alvo”, que é um valor a ser passado como
parâmetro para o comando, esse valor varia de comando para comando. Por exemplo,
ele pode assumir um valor como um tempo (numérico), como um valor de elemento
DOM, que pode variar desde um valor de id de elemento ou um XPATH para dar mais
flexibilidade de busca e elementos. Na frente desse campo temos um botão de
“procurar”, que é muito útil quando estamos desenvolvendo o teste, pois nele podemos, por exemplo, verificar se uma busca por um elemento XPATH está
correta e estamos validando o campo certo. O Terceiro campo de entrada é
chamado de “valor” e serve para quando uma ação tem mais de um parâmetro, normalmente serve para setar algum valor
em um campo, por exemplo preencher um input.
Por último, no final
da tela temos uma área que serve para acompanhar os logs de erros no teste, ou
ter uma referência de comandos do selenium, para caso esqueça quais parâmetros
são passados para algum comando ou saber o formato do tipo de entrada.
Caso tenha vários testes ao mesmo tempo, a tela pode ter uma diferença no lado
esquerdo, onde ficam todos os testes abertos ou uma suíte, que são conjuntos de
testes inteiros para um módulo ou sistema inteiro. A tela pode ficar como
esta:
O lado esquerdo da
tela está com dois testes abertos, a partir daí poderíamos salvar os dois testes
como uma suíte, criando assim um conjunto de testes com algo em comum.
Vou mostrar exemplos
de testes usando essa ferramenta com um site real no próximo artigo.