27. Tutorial do Amostrador JUnit

Este tutorial tenta explicar o design básico, a funcionalidade e o uso do novo JUnit Sampler for JMeter. O amostrador foi introduzido na versão 2.1.2 do JMeter. As versões anteriores não têm o sampler.

27.1 Projeto

A implementação atual suporta convenções e extensões JUnit padrão, como oneTimeSetUp e oneTimeTearDown . Outros recursos podem ser adicionados mediante solicitação. O amostrador funciona como o JavaSampler com algumas diferenças.

  • Em vez de usar a interface de teste do JMeter, ele verifica os arquivos jar em busca de classes que estendem a classe TestCase do JUnit . Isso significa qualquer classe ou subclasse.
  • Os arquivos jar de teste JUnit são copiados para jmeter/lib/junit em vez de jmeter/lib
  • O amostrador JUnit não usa pares de nome/valor para configuração. O amostrador assume que setUp e tearDown configurarão o teste corretamente.
    Nota: os métodos setUp e tearDown devem ser declarados como public , para que o JMeter possa usá-los.
  • O amostrador mede o tempo decorrido apenas para o método de teste e não inclui setUp e tearDown .
  • Cada vez que o método de teste é chamado, o JMeter passará o resultado para os ouvintes.
  • O suporte para oneTimeSetUp e oneTimeTearDown é feito como um método. Como o JMeter é multi-thread, não podemos chamar oneTimeSetUp / oneTimeTearDown da mesma forma que o maven o faz.
  • O amostrador relata exceções inesperadas como erros.

27.2 Funcionalidade

Aqui está uma descrição da funcionalidade.

Nome
nome para a amostra. Este é o mesmo que todos os amostradores JMeter.
Filtro de pacote
fornece uma maneira de filtrar as classes pelo nome do pacote.
Nome da classe
o nome da classe a ser testada. O sampler irá varrer os arquivos jar em jmeter/lib/ext e jmeter/lib/junit para classes que estendem o TestCase do JUnit .
Cadeia Construtora
uma string para passar para o construtor de strings da classe de teste.
Método de teste
o nome do método a testar no amostrador.
Mensagem de sucesso
uma mensagem descritiva indicando o que significa sucesso.
Código de sucesso
um código exclusivo indicando que o teste foi bem-sucedido.
Mensagem de falha
uma mensagem descritiva indicando o que significa falha.
Código de falha
um código único indicando que o teste falhou
Mensagem de erro
uma descrição para erros
Erro de código
algum código para erros. Não precisa ser único
Não chame setUp e tearDown
defina o amostrador para não chamar setUp e tearDown . Por padrão, setUp e tearDown devem ser chamados. Não chamar esses métodos pode afetar o teste e torná-lo impreciso. Esta opção deve ser usada com cautela.
Se o método selecionado for oneTimeSetUp ou oneTimeTearDown , esta opção deve ser marcada.
Anexar erro de declaração
Por padrão, o amostrador não anexará as falhas de declaração à mensagem de falha. Para ver a mensagem na árvore de resultados, marque a opção.
Anexar exceção de tempo de execução
Por padrão, o amostrador não anexará as exceções à mensagem de falha. Para ver o stacktrace, marque a opção
Solicitação de JUnit
Solicitação de JUnit

A implementação atual do amostrador tentará criar uma instância usando primeiro o construtor de string. Se a classe de teste não declarar um construtor de string, o amostrador procurará um construtor vazio. Exemplo abaixo:

Exemplos de Construtores
Construtor vazio:
classe pública meuTestCase {
  public myTestCase() {}
}
Construtor de strings:
classe pública meuTestCase {
  public myTestCase(String texto) {
    super(texto);
  }
}

Por padrão, o JMeter fornecerá alguns valores padrão para o código e a mensagem de sucesso/falha. Os usuários devem definir um conjunto exclusivo de códigos de sucesso e falha e usá-los uniformemente em todos os testes.

27.3 Uso

Aqui está um pequeno passo-a-passo.

  1. Escreva seu teste JUnit e jar as classes
  2. Copie e cole os arquivos jar no diretório jmeter/lib/ junit
  3. Iniciar JMeter
  4. Selecione o plano de teste
  5. Clique com o botão direito do mouse em Adicionar  →  Grupo de tópicos
  6. Selecionar grupo de tópicos
  7. Clique com o botão direito em Adicionar  →  Amostrador  →  Solicitação JUnit
  8. Digite meu teste de unidade no nome
  9. Insira o pacote do seu teste JUnit
  10. Selecione a turma que deseja testar
  11. Selecione um método para testar
  12. Insira o teste bem-sucedido na mensagem de sucesso
  13. Digite 1000 no código de sucesso
  14. Digite o teste falhou na mensagem de falha
  15. Digite 0001 no código de falha
  16. Selecione o grupo de tópicos
  17. Clique com o botão direito em Adicionar  →  Ouvinte  →  Exibir Árvore de Resultados

Um benefício do amostrador JUnit é que ele permite que o usuário selecione qualquer método de uma variedade de testes de unidade para criar um plano de teste. Isso deve reduzir a quantidade de código que um usuário precisa escrever para criar uma variedade de cenários de teste. A partir de um conjunto básico de métodos de teste, diferentes sequências e testes podem ser criados usando a GUI do JMeter.

Por exemplo:

Plano de teste 1

TestCase1.testImportCustomer
TestCase2.testUpdateRandomCustomer
TestCase1.testSelect100
TestCase2.testUpdateOrder
TestCase1.testSelect1000

TestPlan2

TestCase1.testImportCustomer
TestCase1.testSelect100
TestCase1.testSelect1000
TestCase2.testAdd100Clientes

27.4 Diretrizes Gerais

Aqui estão algumas diretrizes gerais para escrever testes JUnit para que funcionem bem com o JMeter. Como o JMeter é executado em vários segmentos, é importante manter algumas coisas em mente.

  • Escreva os métodos setUp e tearDown para que sejam thread-safe. Isso geralmente significa evitar o uso de membros estáticos.
  • Faça dos métodos de teste unidades de trabalho discretas e não longas sequências de ações. Ao manter o método de teste em uma operação discreta, fica mais fácil combinar métodos de teste para criar novos planos de teste.
  • Evite fazer com que os métodos de teste dependam uns dos outros. Como o JMeter permite o sequenciamento arbitrário de métodos de teste, o comportamento do tempo de execução é diferente do comportamento padrão do JUnit.
  • Se um método de teste for configurável, tenha cuidado com o local onde as propriedades são armazenadas. A leitura das propriedades do arquivo Jar é recomendada.
  • Cada amostrador cria uma instância da classe de teste, portanto, escreva seu teste para que a configuração ocorra em oneTimeSetUp e oneTimeTearDown .
  • Se você selecionar uma classe e nenhum método aparecer, significa que o amostrador teve um problema ao criar uma instância da classe de teste. A melhor maneira de depurar isso é adicionar algum System.out ao seu construtor de classe e ver o que está acontecendo.
Go to top