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]