testes automatizados para GUIs Java Swing [fechado]
-
01-07-2019 - |
Pergunta
Quais são as opções para a construção de testes automatizados para GUIs escritos em Java Swing?
Eu gostaria de testar algumas GUIs que foram escritos usando os NetBeans Construtor de GUIs Swing , então algo que funciona sem a necessidade de especial adulteração do código sob teste seria o ideal.
Solução
Recentemente me deparei com FEST que parecia promissor, exceto que o desenvolvedor anunciou em 2012 que o desenvolvimento não continuaria .
AssertJ é um fork do FEST que está funcionando muito bem para mim. Ele é mantido ativamente (no momento da escrita), suporta Java 8, tem afirmações para algumas bibliotecas populares, como goiaba e Joda Time, e é muito bem documentado. Também é livre e aberta.
Outras dicas
Atualmente estou usando FEST . Ele funciona com JUnit e também vai tirar screenshots de testes que falharam.
Tem métodos de caça de componentes padrão que olhar para o nome do ser componente testados (que precisam ser definidas manualmente), mas você também pode gerar os testadores para um determinado componente, passando-o componente.
Você pode tentar usar Pepino e Swinger para escrever testes de aceitação funcionais na planície Inglês para aplicações GUI swing. Swinger utiliza a biblioteca de Jemmy Netbeans' sob o capô para conduzir o aplicativo.
Pepino permite testes de escrita assim:
Scenario: Dialog manipulation
Given the frame "SwingSet" is visible
And the frame "SwingSet" is the container
When I click the menu "File/About"
Then I should see the dialog "About Swing!"
Given the dialog "About Swing!" is the container
When I click the button "OK"
Then I should not see the dialog "About Swing!"
Dê uma olhada neste Swinger vídeo de demonstração para vê-lo em ação.
Estamos considerando jemmy para automatizar alguns dos testes GUI. Parece promissor.
Eu uso java.awt.Robot
. Não é bom, não é fácil mas funciona cada vez.
Pros:
- Você está no controle
- Muito rápido
- construir o seu próprio FWK
- portátil
- Não há dependências externas
Contras:
- No GUI agradável para ensaio de aumento
- Você tem que deixar o GUI sozinho enquanto você teste
- construir o seu próprio FWK
- difícil mudar o código de teste e criar seu primeiro arnês
Agora, se você tiver o orçamento gostaria de ir para LoadRunner. Melhor da classe.
(Divulgação: relação com a empresa que possui LR, mas eu trabalhei com LR antes da relação)
Eu não usei pessoalmente, mas SwingUnit parece muito bom. Você pode usá-lo com jUnit, e não é baseado em "localização dos componentes" (ou seja x e coordena Y).
A única coisa que você pode ter a ver com o NetBeans GUI Builder é definido nomes exclusivos para os seus componentes.
Estamos usando QF-Test e estão bastante satisfeitos.
UISpec4J é bastante simples, unbloated e extensível. Ele se encaixa meus propósitos melhor do FEST.
Sikuli: a GUI-tester usando screenshots http://sikuli.org/
Você pode usar Marathon : "Marathon Integrated Testing Ambiente, MarathonITE, é um preço acessível, fácil de usar e multi-plataforma Java / Swing ™ estrutura de automação GUI teste. Você pode usar o gravador de script embutido de MarathonITE para criar scripts de teste limpas e legíveis tanto em Python ou apresenta ruby. avançadas como refatoração-método de extrair, criar-datadriven-testes e edição ObjectMap permite criar, conjuntos de testes resilientes sustentáveis. "
Você poderia tentar reteste , que é uma nova ferramenta que implementa uma abordagem inovadora para a regressão funcional testes e combina com testes de macaco baseada-ai. Ele está prestes a se tornar open source bem ...
Disclaimer: Eu sou um dos fundadores da empresa por trás reteste
.Para aqueles com uma mente aventureiros, há pegajosos https://github.com/robertoaflores/Gooey a (muito básico e subdesenvolvimento) ferramenta de teste de programação para aplicações de balanço.
Apenas fiz alguns exames rápidos. Squish foi o mais promissor. Não para que livre