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.

Foi útil?

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.

Você pode usuário Sikuli ou Automa para testar sua parte GUI, estes são bem documentadas e testadas ferramentas

Apenas fiz alguns exames rápidos. Squish foi o mais promissor. Não para que livre

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top