• Nenhum resultado encontrado

Análise do suporte a múltiplos Browsers

O propósito desta subsecção é a apresentar os resultados das sessões de ensaio que foram efectuadas para determinar se a ferramenta cumpria os requisitos de suporte a múltiplos

Browsers. São apresentadas sob a forma tabular todos os dados recolhidos ao longo das várias

sessões.

No final do anexo é apresentada a conclusão obtida após a experimentação tendo em conta simultaneamente, os requisitos do projecto e as estatísticas de utilização dos Browsers.

Informação adicional sobre o Selenium

92 Sessão de teste 1 Selenium RC: v1.0.3

Sistema Operativo: Linux Ubuntu 9.10 (64 bits)

Tabela 11 – Validação do suporte do Selenium a múltiplos Browsers (Sessão de teste 1).

Browser Versão Execução Comentário

Mozilla Firefox 3.5.8 Sim -

Opera 9.6 Não Selenium Core injectado correctamente. Não

executa teste.

Opera 9.5 Não Selenium Core injectado correctamente. Não

executa teste.

Konqueror 4.3.2 Sim -

Google Chrome 5.0 Não Só é lançado usando drivers padrão. Selenium

Core não é injectado.

Epiphany 2.28 Não Não existem drivers próprios. Selenium Core não

é injectado.

Sea Monkey - Não Não existem drivers próprios. Selenium Core não

é injectado.

Sessão de teste 2 Selenium RC: v1.0.3

Sistema Operativo: Linux Ubuntu 9.10 (32 bits)

Tabela 12 - Validação do suporte do Selenium a múltiplos Browsers (Sessão de teste 2).

Browser Versão Execução Comentário

Mozilla Firefox 3.5.8 Sim -

Opera 9.6 Não Selenium Core injectado correctamente. Não

executa teste.

Opera 9.5 Não Selenium Core injectado correctamente. Não

executa teste.

Konqueror 4.3.2 Sim -

Google Chrome 5.0 Não Só é lançado usando drivers padrão. Selenium

Core não é injectado.

Epiphany 2.28 Não Não existem drivers próprios. Selenium Core não

é injectado.

Sea Monkey - Não Não existem drivers próprios. Selenium Core não

Informação adicional sobre o Selenium

93 Sessão de teste 3 Selenium RC: v1.0.3

Sistema Operativo: Windows 7 (64 bits)

Tabela 13 - Validação do suporte do Selenium a múltiplos Browsers (Sessão de teste 3).

Browser Versão Execução Comentário

Internet Explorer 8.0 Sim Funciona usando os drivers para proxy.

Mozilla Firefox 3.6 Sim -

Safari 4.0.4 Sim -

Opera 9.6 Não Selenium Core injectado correctamente. Não

executa teste.

Opera 9.5 Não Selenium Core injectado correctamente. Não

executa teste.

Google Chrome 4.0.249 Sim -

Sessão de teste 4 Selenium RC: v1.0.3

Sistema Operativo: Windows Vista (32 bits)

Tabela 14 - Validação do suporte do Selenium a múltiplos Browsers (Sessão de teste 4).

Browser Versão Execução Comentário

Internet Explorer 7 Sim -

Internet Explorer 8 Sim Funciona usando os drivers para proxy.

Mozilla Firefox 3.6 Sim -

Safari 4.0.4 Sim É necessário desactivar o bloqueador de pop ups

na primeira execução.

Opera 9.6 Não Selenium Core injectado correctamente. Não

executa teste.

Opera 9.5 Não Selenium Core injectado correctamente. Não

executa teste.

Informação adicional sobre o Selenium

94 Sessão de teste 5 Selenium RC: v1.0.3

Sistema Operativo: Mac OS (64 bits)

Tabela 15 - Validação do suporte do Selenium a múltiplos Browsers (Sessão de teste 5).

Browser Versão Execução Comentário

Mozilla Firefox 3.6 Sim -

Safari 4.0.4 Sim É necessário desactivar o bloqueador de pop ups

na primeira execução.

Opera 9.6 Não Selenium Core injectado correctamente. Não

executa teste.

Opera 9.5 Não Selenium Core injectado correctamente. Não

executa teste.

Google Chrome 4.0.249 Sim É necessário especificar o caminho completo para

o executável.

Sessão de teste 6 Selenium RC: v1.0.3

Sistema Operativo: Windows XP sp3 (32 bits)

Tabela 16 -Validação do suporte do Selenium a múltiplos Browsers (Sessão de teste 6).

Browser Versão Execução Comentário

Internet Explorer 6 Sim -

Mozilla Firefox 3.6 Sim -

Safari 4.0.4 Sim É necessário desactivar o bloqueador de pop ups

na primeira execução.

Opera 9.6 Não Selenium Core injectado correctamente. Não

executa teste.

Opera 9.5 Não Selenium Core injectado correctamente. Não

executa teste.

Informação adicional sobre o Selenium

95 Sessão de teste 7 Selenium RC: v0.9.2

Sistema Operativo: Mac OS (32 bits)

Tabela 17 - Validação do suporte do Selenium a múltiplos Browsers (Sessão de teste 7).

Browser Versão Execução Comentário

Opera 8.54 Não Selenium Core não é injectado.

Opera 9.52 Não Selenium Core não é injectado.

Opera 9.6 Não Selenium Core não é injectado.

Sessão de teste 8 Selenium RC: v0.9.2

Sistema Operativo: Ubuntu 9.10 (32 bits)

Tabela 18 - Validação do suporte do Selenium a múltiplos Browsers (Sessão de teste 8).

Browser Versão Execução Comentário

Opera 9.52 Sim Deve ser utilizado o modo Single Window

Sessão de teste 9 Selenium RC: v0.9.2

Sistema Operativo: Windows xp sp3 (32 bits)

Tabela 19 - Validação do suporte do Selenium a múltiplos Browsers (Sessão de teste 9).

Browser Versão Execução Comentário

Informação adicional sobre o Selenium

96 Conclusão

Para qualquer Browser existe pelo menos uma configuração com a qual é possível realizar testes de Interface, e consequentemente teste de Fuzz, utilizando o Selenium.

O Browser que se revelou mais problemático, o Opera, é aquele que, estatisticamente é menos utilizado.

O Mozzila Firefox e o Microsoft Internet Explorer, que representam em conjunto mais de 50 % da utilização, funcionam sem qualquer problema. Tanto o Google Chrome como o

Safari, embora com pouca projecção estatística a nível de utilização, podem também ser

utilizados pelo Selenium.

Esta experiência permitiu detectar, que é ainda possível controlar um Browser adicional aos requisitos, o Konqueror [42,43].

A.2 Operações de teste suportadas

O que se pretende com esta subsecção não é especificar todas as funcionalidades do

Selenium, pois para isso deve ser consultada a documentação relativa á sua API. O objectivo

aqui é especificar de um ponto de vista mais alto nível, as operações que estão disponíveis para a realização de testes.

Um ficheiro de teste é composto por um conjunto de instruções de programação executadas de forma sequencial, exactamente como no modelo clássico de Von Neumann. Estas instruções são denominadas no contexto do Selenium por comandos.

Estes são sempre constituídos por três elementos:

Informação adicional sobre o Selenium

97

Os comandos podem ser de três tipos:

Actions (acções): são comandos que levam à realização de algum procedimento sobre a

aplicação em teste como por exemplo "seleccionar uma opção" ou "clicar numa determinada hiperligação". Se uma acção falha (ou se possui) um erro, o teste para e um erro é retornado. Às acções pode ser adicionado o sufixo "AndWait". Neste caso a acção é executada, e o Selenium esperará que o pedido HTTP seja concluído antes de prosseguir para a próxima acção.

Acessors: são no fundo, verificadores (sem realização de juízo de valor) sobre os

elementos ou estados da aplicação. O seu valor de retorno é guardado em variáveis que devem ser previamente definidas para o efeito. Podem ser usados para gerar asserções.

Assertions (asserções): correspondem às asserções descritas de um ponto de vista

teórico, no capítulo 2 deste documento. Avaliam o estado do sistema, comparando-o com o estado esperado. Na definição clássica de uma asserção, quando esta falha, o teste deve ser abortado e deve ser dado como falhado. No entanto, o Selenium permite a utilização de asserções em três formas distintas:

o assert: modo clássico. Quando falha o teste é abortado e dado como falhado;

o verify : Efectua apenas uma verificação. Quando a condição não é verificada, o teste

não é abortado, continua sendo o erro registado;

o waitFor : levam à suspensão do teste até uma determinada condição se verificar. A

esta forma deve estar associado um contador de tempo, após o qual o teste deve continuar registando o erro ou o teste deve simplesmente falhar.

Para se perceber correctamente como funciona um teste com o Selenium é necessário perceber-se essencialmente dois pontos:

1. Quais as acções que o Selenium pode executar?

Informação adicional sobre o Selenium

98 1. Acções que o Selenium pode executar

De uma forma muito sucinta, as acções disponíveis são aquelas que um utilizador humano poderia efectuar sobre um Browser. Não se fará aqui uma descrição funcionalidade a funcionalidade, porque isso seria descrever a API correspondente às Client Libraries e esta é bastante extensiva estando inclusivamente devidamente documentada na página Web oficial.

Apresenta-se então as acções associadas por tipo:

 Localização de elementos numa página: o HTML id; HTML name; Xpath;

 Inserção de conteúdo numa página:

o Injecção de um novo Javascript ou código HTML;

 Acções sobre o rato:

o Pressionar sem libertar qualquer um dos botões do rato:  Numa posição específica (coordenadas x,y);

Num determinado elemento qualquer da página ou Browser. o Libertar um botão do rato;

o Simulação de seleccionar, arrastar e largar; o Efectuar clique, duplos cliques; etc.

 Acções sobre o teclado

o Pressionar e libertar teclas.

 Acções sobre a janela:

o Abrir, fechar; redimensionar; actualizar;

 Acções sobre cookies:

o Verificar a existência de uma determinada cookie; o Criar uma cookie e apagar uma determinada cookie; o Apagar todas as cookies;

Informação adicional sobre o Selenium

99

2. Quais os elementos possíveis para efectuar uma asserção

As asserções podem ser definidas sobre:

 Qualquer comando, esperando a sua correcta ou incorrecta execução;  A existência (ou não) de uma cookie;

 A existência (ou não) de um elemento;  O valor de um elemento;

 O tempo de carregamento da página;  O tempo de execução de qualquer acção.

O Selenium possui ainda uma serie de funcionalidades de captura e gravação de elementos da página Web, tendo a cada método do tipo store (gravação), associados todos os três tipos de asserções.

É então possível guardar imagens, conteúdo HTML (como títulos, cabeçalhos, etc.), resultados de execução de scripts, as posições de determinados elementos, entre outros constituintes de páginas Web [16].