introduction sikuli gui automation tool sikuli tutorial 1
Como sempre, tentamos trazer coisas novas para aprender para nossos leitores. Hoje vamos explorar uma ferramenta de automação de GUI interessante - Sikuli.
“Automatize qualquer coisa que você vê” usando a ferramenta de automação da Interface Gráfica do Usuário (GUI) Sikuli - Guia completo para iniciantes para configurar rapidamente e comece a usar a ferramenta Sikuli Script com esses Tutoriais Sikuli detalhados.
O Sikuli automatiza tudo o que você vê na tela usando o método de reconhecimento de imagem para identificar os elementos da GUI. O script Sikuli permite aos usuários automatizar a interação da GUI usando capturas de tela.
Lista de tutoriais desta série Sikuli
Dividimos esta série em 3 partes:
Tutorial # 1: Como funciona, como criar um projeto Sikuli simples.
Tutorial # 2: Como o Sikuli pode ser usado com o Selenium Web Driver para automatizar páginas da web.
Tutorial nº 3: Automatizando aplicativos baseados em Flash usando a ferramenta Sikuli
O que você aprenderá:
Ferramenta de automação Sikuli GUI
Vamos começar com a primeira parte desta série.
Sikuli é uma ferramenta para automatizar interfaces gráficas de usuário (GUI) usando o método “Visual Image Match”. No Sikuli, todos os elementos da web devem ser tomados como uma imagem e armazenados dentro do projeto. O Sikuli acionará interações GUI com base na correspondência visual da imagem, a imagem que passamos como parâmetro junto com todos os métodos.
O Sikuli pode ser muito útil para automatizar objetos flash (que não possuem ID ou nome). Pode ser útil na situação em que temos uma GUI estável (ou seja, os componentes da GUI não mudam).
Mesmo os aplicativos baseados no Windows também podem ser automatizados usando o Sikuli. Sikuli fornece Sikuli-script.jar muito amigável, que pode ser facilmente usado junto com Selenium WebDriver. Podemos até automatizar Adobe Video / Audio player, Flash Games no site usando Sikuli. Com API simples, torna a codificação mais fácil.
Usos práticos
- O Sikuli pode ser usado para automatizar Objetos Flash / Sites Flash.
- Pode ser útil automatizar o aplicativo baseado no Windows. Podemos automatizar o que estamos vendo na tela.
- Ele fornece uma API simples. ou seja, todos os métodos podem ser acessados usando objetos de classe de tela.
- Pode ser facilmente integrado com Selenium e todas as outras ferramentas.
- Usando o Sikuli, podemos automatizar aplicativos de desktop.
- A maioria das ferramentas de teste de automação não oferece suporte à automação de objetos flash (por exemplo, Selenium). Sikuli fornece amplo suporte para automatizar objetos flash.
- Ele usa um poderoso mecanismo “Visual Match” para automatizar objetos de desktop e flash.
Benefícios
- Ferramenta de código aberto.
- Uma das maiores vantagens do Sikuli é que ele pode automatizar facilmente objetos Flash.
- Facilita a automatização de aplicativos do Windows.
- Quando você está testando um aplicativo em desenvolvimento e não sabe o ID / nome dos elementos, pode optar pelo Sikuli. Ele verificará a aparência da imagem e se a correspondência for encontrada, ele irá interagir com a imagem de acordo.
Pré-requisitos:
Antes de começar, precisamos baixar e instalar o seguinte software:
- Qualquer ferramenta de captura de tela ( Por exemplo, DuckCapture , ou qSnap )
- JDK
- Eclipse (etapas detalhadas Aqui para instalar o JDK e o Eclipse)
Etapas para criar o projeto Sikuli Java
Etapa 1: Download do Sikuli - Baixe o Sikuli de Aqui .
Passo 2: Extraia o arquivo zip que você baixou. Ele conterá o arquivo Sikuli-script.jar. Salve este arquivo extraído em seu sistema de arquivos local.
Etapa 3: Abra o Eclipse.
Passo 4: Criar um arquivo de projeto Java -> Novo -> Projeto Java
Etapa 5:
programas Java básicos perguntados em entrevistas
- Clique com o botão direito no projeto
- Vá para Build Path-> Configure Build Path
- Mudar para a guia Bibliotecas
- Clique no botão “Adicionar Jars externos” e adicione Sikuli-Script.jar no caminho de construção.
- Clique OK'
Sikuli-script.jar será adicionado ao caminho de construção do projeto. Você Terminou. Agora você pode começar a escrever scripts Sikuli dentro deste projeto.
Alguns métodos Sikuli
# 1) Criação de objeto para classe de tela
A tela é uma classe base fornecida pela Sikuli. Precisamos criar um objeto para esta classe de tela primeiro, só então podemos acessar todos os métodos fornecidos pelo Sikuli.
Sintaxe:
Tela s = nova Tela ();
# 2) Clique em um elemento
Este método é usado para clicar na imagem específica presente na tela.
Sintaxe:
s.click (“<>”);
Por exemplo,
s.click (“test.png”);
# 3) Clique com o botão direito em um elemento
Este método é usado para clicar com o botão direito do mouse na imagem específica presente na tela.
Sintaxe:
s.rightClick (“<>”);
Por exemplo,
s.rightClick (“test.png”);
# 4) Encontre um elemento
Este método é usado para localizar um elemento específico presente na tela.
Sintaxe:
s.find (“<>”);
Por exemplo,
s.find (“test.png”);
# 5) Clique duas vezes em um elemento
Este método é usado para acionar um evento de duplo clique em uma imagem específica presente na tela.
Sintaxe:
s.doubleClick (“<>”);
Por exemplo,
s.doubleClick (“test.png”);
# 6) Verifique se um elemento está presente na tela
Este método é usado para verificar se o elemento especificado está presente na tela.
Sintaxe:
s.exists (“<>”);
Por exemplo,
s.exists (“test.png”);
# 7) Digite uma string em uma caixa de texto
Este método é usado para inserir o texto especificado na caixa Texto.
Sintaxe:
s.type (“<>”,” String a ser digitada ”);
Por exemplo,
s.type (“test.png”, ”HI !!”);
# 8) Girando em uma imagem particular
Este método é usado para executar a ação de roda na imagem do elemento.
Sintaxe:
s.wheel (“<>”,<>,<>);
Por exemplo,
s.wheel (“test.png”, 25,0);
# 9) Arraste e solte uma imagem / elemento
Este método é usado para arrastar e soltar uma imagem especificada da posição de origem para a posição de destino.
Sintaxe:
s.dragDrop (“<>','<>”);
Por exemplo,
s.dragDrop (“test.png”, ”test1.png”);
# 10) Passe o mouse sobre uma imagem específica
Este método é usado para executar o evento roll hover na imagem especificada.
Sintaxe:
s.hover (“<>”);
Por exemplo,
s.hover (“test.png”);
# 11) Colar seqüência copiada
Este método é usado para colar texto na caixa de texto especificada.
Sintaxe:
s.paste (“<>','teste');
Por exemplo,
s.paste (“test.png”, “teste”);
Exemplos Sikuli
Nº 1) Vídeo do YouTube - Pausar e reproduzir um vídeo
Passo 1) Abra um link de vídeo do YouTube e capture imagens de elementos de reprodução e pausa usando a ferramenta de captura de tela.
Botão de pausa ( Observação: o nome do arquivo é pause.png)
Botão de reprodução ( Observação: o nome do arquivo é play.png)
Copie essas imagens dentro do projeto.
Passo 2) Crie um pacote dentro do projeto Sikuli java criado e dentro dele crie uma classe chamada “Youtube”.
Etapa 3) Digite o seguinte código dentro dessa classe.
package com.test; import org.sikuli.script.FindFailed; import org.sikuli.script.Screen; public class Youtube { public static void main(String[] args) throws FindFailed, InterruptedException { // TODO Auto-generated method stub Screen s=new Screen(); s.find('pause.png'); //identify pause button s.click('pause.png'); //click pause button System.out.println('pause button clicked'); s.find('play.png'); //identify play button s.click('play.png'); //click play button } }
Etapa # 4) Clique com o botão direito do mouse na classe e selecione Executar como -> Aplicativo Java.
# 2) Abra o bloco de notas e digite algum texto
Etapa # 1) Capture o ícone do bloco de notas na área de trabalho da tela.
notepad_icon.png
notepad.png
Etapa # dois) Copie essas imagens dentro do seu projeto.
Etapa 3) Crie uma classe chamada “NotepadExample” dentro de seu projeto e digite o código a seguir.
package com.test; import org.sikuli.script.FindFailed; import org.sikuli.script.Screen; public class NotepadExample { public static void main(String[] args) throws FindFailed { // TODO Auto-generated method stub Screen s=new Screen(); s.click('notepad_icon.png'); s.find('notepad.png'); s.type('notepad.png','This is Nice Sikuli Tutorial!!!!'); } }
Passo 4) Abra a tela a ser testada antes de executar o código.
Execute este arquivo clicando com o botão direito em Executar como -> Aplicativo Java.
# 3) Arrastar e soltar
Passo 1) Faça a captura de tela dos itens necessários na tela e coloque-a dentro do seu projeto Sikuli.
[ Observação: aqui, o ícone de download é “source.png” e a imagem da flor é “destination.png”]
Etapa # dois) Coloque essas fotos dentro do seu projeto.
como você abre arquivos json
Etapa # 3) Crie uma classe com o nome “DragAndDrop” e escreva o seguinte código.
package com.test; import org.sikuli.script.FindFailed; import org.sikuli.script.Screen; public class DragAndDrop { public static void main(String[] args) throws FindFailed, InterruptedException { // TODO Auto-generated method stub Screen s=new Screen(); s.find('source.png'); System.out.println('Source image found'); s.find('target.png'); System.out.println('target image found'); s.dragDrop('source.png', 'target.png'); } }
Etapa # 4) Execute este script clicando com o botão direito em Executar como -> Aplicativo Java.
Após a execução deste script, o ícone do download será arrastado e solto na imagem, indicada como alvo.
Antes da execução:
Após a execução:
Desvantagens desta ferramenta
- Não podemos garantir que a correspondência de imagens será sempre precisa. Às vezes, se duas ou mais imagens semelhantes estiverem disponíveis na tela, o Sikuli tentará selecionar a imagem errada.
- E se a aparência da imagem variar no tamanho do pixel, isso também resultará na exceção “Find Failed”.
- Sobrecarga de fazer muitas capturas de tela.
- Se alguma das imagens estiver faltando, isso afetará a execução do programa.
Mais recursos:
Conclusão
Sikuli é muito útil para automatizar objetos flash. Ele pode ser usado para automatizar aplicativos baseados em janela. É uma ótima ferramenta para brincar com elementos em uma tela, com base em seus visuais.
Sobre o autor: Este é um post convidado de Anitha Eswari. Ela está atualmente trabalhando como engenheira de teste sênior, com sólidos conhecimentos de testes manuais e de automação e várias ferramentas de gerenciamento de teste.
Próximo tutorial : Na próxima parte desta série, vamos dar uma olhada profunda na criação do projeto maven Sikuli e como integrar o Selenium com o Sikuli.
Já está usando esta ferramenta? Por favor, compartilhe sua experiência e dicas. Se você deseja começar, mas tem dúvidas, informe-nos.
Leitura recomendada
- Sikuli GUI Automation Testing Tool - Guia do Iniciante Parte 2
- 30 melhores ferramentas de teste de GUI para automação de teste de GUI [2021 LIST]
- Tutorial SeeTest Automation: um guia de ferramenta de automação de teste móvel
- Learning Basics of Rational Robot - IBM Test Automation Tool
- Geb Tutorial - Teste de automação de navegador usando a ferramenta Geb
- Ferramenta gratuita útil de captura de tela e anotação para os testadores - revisão do qSnap
- Tutorial do Katalon Studio: uma ferramenta de automação de teste gratuita que você esperava
- Automatizando aplicativos baseados em Flash usando a ferramenta Sikuli