segunda-feira, fevereiro 08, 2010

Selenium IDE - Dicas para testar aplicações Ajax e Portal

Estou fazendo alguns trabalhos com o Selenium IDE para automação de testes funcionais de sites WEb. Aí vai uma dica muito interessante para quem trabalha com sites que usam pesadamente AJAX, portlets, javascripts e HTML dinâmico.

Podem-se encontrar em sites que usam AJAX, Portlets e DHTML alguns controles que possuem variação dinâmica em seu identificador. Veja, por exemplo, o ID desse controle gerado pela especificação de portlets Pluto:

id="Pluto_8A828179268FE1FD01268FE6FB8302AE__SELECTED_client_code"

Ao utilizar o Selenium IDE para gerar o script de teste automatizado, obtemos o seguinte comando em Selenese HTML:

type Pluto_8A828179268FE1FD01268FE6FB8302AE__SELECTED_client_code

O grande problema é que esse número muda de forma constante e aleatória. Como podemos tornar nosso teste no Selenium mais estável? Usando o comando contains dentro do XPath !

O comando modificado fica assim:

type //select[contains(@id,"Pluto_") and contains(@id, '_SELECTED_client_code')]

Fazendo essa pequena alteração obtemos scripts que conseguem trabalhar com identificadores dinâmicos que mudam aleatoriamente, algo comum em aplicações AJAX ou de portais . Uma dica fundamental para melhor uso do Selenium IDE.

1 Comentários:

At 11:01 AM, Anonymous Ayran disse...

Olá José, belo post! Um dos grandes problemas de automatizar apps web são esses ids dinamicos. Agora tô com um duvida, aqui na app q tô testando os links tem ids que são variaveis seguindo esse esquema: listaFormIndex:formLista:Detalhe:7:j_id91
listaFormIndex:formLista:Detalhe:7:j_id95

No comando selenium.click("id") como devo referenciar esse id, sabendo que só o que muda é o numero no final, neste caro : j_id95, 99, 98

 

Postar um comentário

Links para este artigo:

Criar um link

<< Home


Veja as Estatísticas