English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Teste do Elasticsearch

O Elasticsearch fornece um arquivo jar, que pode ser adicionado a qualquer IDE Java e usado para testar código relacionado ao Elasticsearch. Você pode executar uma série de testes usando o framework fornecido pelo Elasticsearch. Neste capítulo, discutiremos esses testes em detalhes.-

  • Testes unitários

  • Testes integrados

  • teste aleatório

Pré-requisitos

Para começar o teste, você precisa adicionar dependências de teste do Elasticsearch ao seu programa. Você pode usar Maven para esse propósito e pode adicionar o seguinte conteúdo ao seu pom.xml.

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

EsSetup foi inicializado para iniciar e parar nós do Elasticsearch e criar índices.

EsSetup esSetup = new EsSetup();

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

Testes unitários

Testes unitários são realizados usando JUnit e o framework de teste do Elasticsearch. Pode-se usar classes do Elasticsearch para criar nós e índices e executar testes usando o método test. As classes ESTestCase e ESTokenStreamTestCase são usadas para este teste.

Testes integrados

Testes integrados usam vários nós no cluster. A classe ESIntegTestCase é usada para este teste. Existem várias maneiras de simplificar o trabalho de preparação dos casos de teste.

número sequencialmétodos e descrições
1

refresh()

Atualizar todos os índices no cluster

2

ensureGreen()

Certificar o estado de cluster de saúde verde

3

ensureYellow()

Certificar o estado de cluster de status amarelo

4

createIndex(name)

Criar índice usando o nome passado para este método

5

flush()

Atualizar todos os índices no cluster
6

flushAndRefresh()

flush() e refresh()

7

indexExists(name)

Verificar se o índice especificado existe

8

clusterService()

Retornar classe de serviço de cluster java

9

cluster()

Retornar classe de teste de cluster

Método de teste de cluster

número sequencialmétodos e descrições
1

ensureAtLeastNumNodes(n)

Certificar que o número mínimo máximo de nós no cluster seja maior ou igual ao número especificado

2

ensureAtMostNumNodes(n)

Certificar que o número máximo de nós no cluster seja menor ou igual ao número especificado

3

stopRandomNode()

Parar nó aleatório no cluster

4

stopCurrentMasterNode()

Parar nó principal

5

stopRandomNonMaster()

parar um nó não mestre aleatório no cluster

6

buildNode()

criar um novo nó

7

startNode(settings)

iniciar um novo nó

8

nodeSettings()

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

acessar cliente

O cliente é usado para acessar diferentes nós no cluster e executar algumas operações. O método ESIntegTestCase.client() é usado para obter o cliente aleatório. O Elasticsearch também fornece outros métodos para acessar o cliente, que podem ser usados pelo método ESIntegTestCase.internalCluster().

número sequencialmétodos e descrições
1

iterator()

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

2

masterClient()

Isso retornará um cliente que se comunica com o nó mestre

3

nonMasterClient()

Isso retornará um cliente que não se comunica com o nó mestre

4

clientNodeClient()

Isso retornará o cliente atual no nó do cliente

teste aleatório

Este teste é usado para testar o código do usuário com todos os possíveis dados, para que não haja falha de tipo de dados em futuro. Os dados aleatórios são a melhor escolha para executar este teste.

gerar dados aleatórios

Neste teste, a classe Random é instanciada pelo RandomizedTest e fornece muitos métodos para obter diferentes tipos de dados.

métodovalor de retorno
getRandom()instância de classe aleatória
randomBoolean()booleano aleatório
randomByte()byte aleatório
randomShort()short aleatório
randomInt()inteiro aleatório
randomLong()long aleatório
randomFloat()float aleatório
randomDouble()double aleatório
randomLocale()região local aleatória
randomTimeZone()fuso horário aleatório
randomFrom()elemento aleatório do array

afirmação

As classes ElasticsearchAssertions e ElasticsearchGeoAssertions contêm afirmações, essas afirmações são usadas para executar algumas verificações comuns durante o 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");