Treinamento SIKULI

Transcrição

Treinamento SIKULI
Uso do SIKULI para automação
Sikuli é uma ferramenta visual para automatizar e testar interfaces
gráficas (GUI), utilizando imagens (screenshots).
A solução Sikuli inclui:
Sikuli Script, um script visual API para Python e Sikuli IDE, um
ambiente de desenvolvimento integrado para escrever scripts com
imagens visuais.
Sikuli script automatiza qualquer coisa que você vê na tela, sem a API
de suporte interno. Você pode controlar programaticamente uma página
web, uma aplicação de desktop que executam o Windows / Linux / Mac
OS X, ou mesmo um aplicativo para iPhone rodando em um emulador.
O que é Sikuli?

O Sikuli possibilita colocar diretamente a
imagem da GUI (interface gráfica do usuário) de
seu computador ao invés de comandos,
simplificando enormemente sua codificação.
 Nele
você poderá, a partir de agora, criar um
script através da imagem. Por exemplo:
3
O que é Sikuli?
 Outro
exemplo:
Um comando “WinWaitActive” que serve para
esperar o processamento de uma determinada
janela em outras ferramentas de automação
geraria uma linha de código, já no Sikuli, o
comando é bem mais amigável:
4
O que é o Sikuli?
http://groups.csail.mit.edu/uid/projects/sikuli/sikuli-chi2010.pdf
•
•
•
5
•
Reprodutor de ações em interface
Algoritmo de similaridade de imagens
Open Source
Interface Clean
Página Oficial: www.sikuli.org
http://sikuli.org/guide
http://sikuli.org/documentation.shtml
Por onde começar ???
TRANSFORMANDO
QUALIDADE EM RESULTADOS
 GUI - Graphical User Interfaces
 Ferramentas de CR – Capture-and-Replay
• Módulo de Captura
Interações do usuário com a aplicação
Reconhecimento dos elementos GUI \ propriedades \
Processo de Automação
8
Apoio ao processo
1. Manual de Uso do SIKULI – Ferramenta inovadora
2. Padrões de desenvolvimento de scripts - Procedimentos
3. Manual de configuração do arquivo de entrada de dados –
Criação de procedimentos para entrada de dados
9
Instalação via Instalador
10
10
Instalação via versão portável
 Para
utilizar a versão portável, seguir os seguinte
passos:http://launchpad.net/sikuli/sikuli-x/x1.0rc1/+download/Sikuli-X-1.0rc1-win32.zip
 Download
do arquivo Sikuli-X-1.0rc1-win32 no site
 Descompacte
 Execute
11
11
o arquivo Sikuli-X-1.0rc1-win32.zip
o arquivo Sikuli-IDE.exe
Funções Básicas
 Sikuli-IDE,
na tela principal como mostra a figura
são exibidos alguns botões/funcionalidades.
12
12
Principais funcionalidades
 As
13
13
principais funcionalidades são:

Capturar a Tela: Captura um screenshot
para usar no script;

Inserir uma Imagem do Computador:
Carregar uma imagem local para usar nos
scripts;
Principais funcionalidades



14
14
Restringir Região: Serve para restringir
uma região para comparação de tela;
Executar: Serve para executar os scripts;
Executar visualizando as ações: Ver o
passo a passo das ações sendo executadas.
Classes e métodos comuns
15
15
Classe App
openApp( “aplicativo” )
Abre o aplicativo em questão e traz sua janela para
frente. Pode mudar para um aplicativo que já esteja
aberto ou abrir uma nova instância desse mesmo
aplicativo, dependendo do aplicativo chamado.
16
16
Exemplo prático
openApp( ), Wait ( ) e Click ( )
Depois de gravar:
1. Selecione clicando na figura para ter acesso a área
de configuração da imagem
2. Na tela de configuração você pode:
1. Alterar a similaridade
2. Desviar o alvo
Classe App
 closeApp(
“aplicativo”)
Fecha o aplicativo em questão, encerrando seu
processo. Esse método não faz nada se o
aplicativo em questão não está aberto.
 focusedWindow()
18
18
Retorna a região, mesmo se não existe uma janela
aberta. Nos casos de não ter janela aberta será
mais provável retornar a região da barra de tarefas.
Faz referência para uso da janela em foco.
Criando uma suíte de testes
 Suite
de teste
 Agendamento de execução de testes
19
19
Interagindo com o Usuário

popup(“texto”)
Abre uma caixa de diálogo com o texto passado
como parâmetro e um botão de Ok. O script espera o
usuário pressionar o botão de Ok.

20
input(“texto”)
Abre uma caixa de diálogo com um campo de
preenchimento de texto, um botão de Ok e um botão
de Cancel. Se o botão Cancel é pressionado nada
será retornado para o script. Se o botão Ok é
pressionado, sem preenchimento, uma string vazia é
retornada para o script.
System Calls
 getOSVersion()
Retorna o número da versão do sistema em
que os seus scripts estão sendo executados.
 getClipboard()
Retorno o conteúdo do seu clipboard se for
texto, senão ele retorna uma string vazia.
21
21
Introdução a Biblioteca MyLib
O
objetivo da biblioteca myLib é suprir a
necessidade de estender métodos e funções,
que seriam de uso constante do processo de
automação de testes da Webb.
A descrição dessa biblioteca encontra-se no
item 11.1. do Manual de uso do Sikuli
22
22
Funções da Biblioteca MyLib

Tem como objetivo proporcionar a reutilização do código para
algumas rotinas, além de facilitar a manutenção do código.
Na atual versão possui as funções integradas:
1. Scroll na tela
5. Função para geração do log
2. Abre Browser
6. Função para envio de email
3. Função para montagem da
7. Função para login no sistema,
URL que ira ser utilizada
de acordo com o perfil
para cadastro do Jira
desejado
4. Abre Issue no JIRA
8. Função para fechar aplicação
Webb
23
23
Instanciando um método
 Um
objetivo comum de instanciar um método próprio
pode ser visto, conforme o exemplo abaixo:
browser=App("C:\\Program Files\\Internet Explorer\\iexplore.exe")
browser.open()
Sendo assim, para qualquer chamada do browser você
não precisará passar o caminho do executável mais de
uma vez. Uma vez definido, você fará apenas a chamada
ao método da seguinte forma: browser.open(), ou
browser.close()
24
24
Instanciando uma função da
Biblioteca - myLib
Com o mesmo objetivo de reutilização, as funções da
bibliotecas foram criadas para otimizar o
desenvolvimento do código. Tendo o mesmo objetivo
de abertura do browser, utilizando a myLib, deve ser
feito:
abreBrowser()
Ou para utilização do sistema xxx, já efetuando o
login, deve ser instanciada outra função, indicando
qual perfil será utilizado, e esta função chama a
abertura do browser:
loginSistema(xxx)
25
25
 Geração
de issue no Jira
Os códigos desenvolvidos que abordam
funcionalmente o sistema Webb seguem uma
estrutura de validações de teste. A cada teste
abordado no cenário proposto, caso um erro
seja identificado na aplicação, o script deve ser
preparado para chamar a função criada no
arquivo de biblioteca que irá cadastrar o defeito
no sistema Jira da empresa. (try/except)
26
26
Boas práticas da geração do Script
Possa ser mantido
Fácil atualização
Fácil de entender o que o script está fazendo:
Mantenha o script sempre pequeno
Foque o teste em apenas um objetivo
Confiável
Reutilizável
No futuro
Em outro projeto
Por outro testador
Design
Seqüencial
Modular
Segmental
Roundtrip
Exemplo prático
Type ( ) / keyDown(), e keyUp()
miscellanous keys
ENTER - TAB - ESC - BACKSPACE - DELETE - INSERT
function keys
F1 - F2 - F3 - F4 - F5 - F6 - F7 - F8 - F9 - F10 - F11 - F12 - F13 - F14 - F15
navigation keys
HOME - END - LEFT - RIGHT - DOWN - UP - PAGE_DOWN - PAGE_UP
key modifiers
ALT - CMD - CTRL - META - SHIFT - WIN
#limpa o campo para digitar o endereço
type(Key.HOME)
keyDown( Key.SHIFT+Key.END )
type(Key.DELETE)
29
29
[email protected] / [email protected]