Elasticsearch - Teste

Elasticsearch fornece um arquivo jar, que pode ser adicionado a qualquer IDE Java e pode ser usado para testar o código relacionado ao Elasticsearch. Uma variedade de testes pode ser realizada usando a estrutura fornecida pelo Elasticsearch. Neste capítulo, discutiremos esses testes em detalhes -

  • Teste de unidade
  • Teste de integração
  • Teste Randomizado

Pré-requisitos

Para começar o teste, você precisa adicionar a dependência de teste Elasticsearch ao seu programa. Você pode usar o maven para essa finalidade e pode adicionar o seguinte em pom.xml.

<dependency>
   <groupId>org.elasticsearch</groupId>
   <artifactId>elasticsearch</artifactId>
   <version>2.1.0</version>
</dependency>

EsSetup foi inicializado para iniciar e parar o nó Elasticsearch e também para criar índices.

EsSetup esSetup = new EsSetup();

A função esSetup.execute () com createIndex irá criar os índices, você precisa especificar as configurações, tipo e dados.

Teste de Unidade

O teste de unidade é realizado usando a estrutura de teste JUnit e Elasticsearch. Nó e índices podem ser criados usando classes Elasticsearch e no método de teste podem ser usados ​​para realizar o teste. As classes ESTestCase e ESTokenStreamTestCase são usadas para este teste.

Teste de integração

O teste de integração usa vários nós em um cluster. A classe ESIntegTestCase é usada para este teste. Existem vários métodos que facilitam o trabalho de preparação de um caso de teste.

S.Não Método e Descrição
1

refresh()

Todos os índices em um cluster são atualizados

2

ensureGreen()

Garante um estado de cluster de integridade verde

3

ensureYellow()

Garante um estado de cluster de integridade amarelo

4

createIndex(name)

Crie um índice com o nome passado para este método

5

flush()

Todos os índices no cluster são liberados

6

flushAndRefresh()

limpar () e atualizar ()

7

indexExists(name)

Verifica a existência de índice especificado

8

clusterService()

Retorna a classe java do serviço de cluster

9

cluster()

Retorna a classe de cluster de teste

Métodos de cluster de teste

S.Não Método e Descrição
1

ensureAtLeastNumNodes(n)

Garante que o número mínimo de nós em um cluster seja maior ou igual ao número especificado.

2

ensureAtMostNumNodes(n)

Garante que o número máximo de nós em um cluster seja menor ou igual ao número especificado.

3

stopRandomNode()

Para parar um nó aleatório em um cluster

4

stopCurrentMasterNode()

Para parar o nó mestre

5

stopRandomNonMaster()

Para parar um nó aleatório em um cluster, que não é um nó mestre.

6

buildNode()

Crie um novo nó

7

startNode(settings)

Inicie um novo nó

8

nodeSettings()

Substitua este método para alterar as configurações do nó.

Acessando clientes

Um cliente é usado para acessar diferentes nós em um cluster e realizar alguma ação. O método ESIntegTestCase.client () é usado para obter um cliente aleatório. Elasticsearch oferece outros métodos também para acessar o cliente e esses métodos podem ser acessados ​​usando o método ESIntegTestCase.internalCluster ().

S.Não Método e Descrição
1

iterator()

Isso ajuda você a acessar todos os clientes disponíveis.

2

masterClient()

Isso retorna um cliente, que está se comunicando com o nó mestre.

3

nonMasterClient()

Isso retorna um cliente, que não está se comunicando com o nó mestre.

4

clientNodeClient()

Isso retorna um cliente atualmente ativo no nó cliente.

Teste Randomizado

Este teste é usado para testar o código do usuário com todos os dados possíveis, para que não haja falha no futuro com qualquer tipo de dado. Dados aleatórios são a melhor opção para realizar este teste.

Gerando Dados Aleatórios

Nesse teste, a classe Random é instanciada pela instância fornecida por RandomizedTest e oferece muitos métodos para obter diferentes tipos de dados.

Método Valor de retorno
getRandom () Instância de classe aleatória
randomBoolean () Booleano aleatório
randomByte () Byte aleatório
randomShort () Curto aleatório
randomInt () Inteiro aleatório
randomLong () Random long
randomFloat () Flutuação aleatória
randomDouble () Duplo aleatório
randomLocale () Local aleatório
randomTimeZone () Fuso horário aleatório
randomFrom () Elemento aleatório da matriz

Afirmações

As classes ElasticsearchAssertions e ElasticsearchGeoAssertions contêm asserções, que são usadas para realizar algumas verificações comuns no momento do teste. Por exemplo, observe o código fornecido aqui -

SearchResponse seearchResponse = client().prepareSearch();
assertHitCount(searchResponse, 6);
assertFirstHit(searchResponse, hasId("6"));
assertSearchHits(searchResponse, "1", "2", "3", "4",”5”,”6”);