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

Elasticsearch 测试

Elasticsearch fornisce un file jar che può essere aggiunto a qualsiasi IDE Java e utilizzato per testare il codice relativo a Elasticsearch. Utilizzando il framework fornito da Elasticsearch è possibile eseguire una serie di test. In questa sezione, discuteremo in dettaglio questi test-

  • test di unità

  • test di integrazione

  • Test casuale

prerequisiti

Per iniziare il test, è necessario aggiungere la dipendenza di test Elasticsearch al vostro programma. Puoi usare Maven per questo scopo e puoi aggiungere il seguente contenuto al tuo file pom.xml.

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

EsSetup è stato inizializzato per avviare e fermare i nodi Elasticsearch e creare indici.

EsSetup esSetup = new EsSetup();

esSetup.execute() con la funzione createIndex creerà l'indice, è necessario specificare le impostazioni, il tipo e i dati.

test di unità

test di unità vengono eseguiti utilizzando JUnit e il framework di test Elasticsearch. È possibile creare nodi e indici utilizzando le classi Elasticsearch e eseguire test utilizzando il metodo test. Le classi ESTestCase e ESTokenStreamTestCase vengono utilizzate per questo test.

test di integrazione

test di integrazione utilizzando più nodi nel cluster. La classe ESIntegTestCase viene utilizzata per questo test. Ci sono diversi metodi per semplificare la creazione dei casi di test.

Numero di serieMetodo e descrizione
1

refresh()

aggiornare tutti gli indici del cluster

2

ensureGreen()

assicurarsi dello stato del cluster verde e sano

3

ensureYellow()

assicurarsi dello stato del cluster giallo

4

createIndex(name)

creare un indice utilizzando il nome fornito a questo metodo

5

flush()

aggiornare tutti gli indici del cluster
6

flushAndRefresh()

flush() e refresh()

7

indexExists(name)

verificare l'esistenza dell'indice specificato

8

clusterService()

restituire la classe java del servizio cluster

9

cluster()

restituire la classe del cluster di test

metodo di test del cluster

Numero di serieMetodo e descrizione
1

ensureAtLeastNumNodes(n)

assicurarsi che il numero minimo massimo di nodi nel cluster sia maggiore o uguale al numero specificato

2

ensureAtMostNumNodes(n)

assicurarsi che il numero massimo di nodi nel cluster sia inferiore o uguale al numero specificato

3

stopRandomNode()

fermare un nodo casuale del cluster

4

stopCurrentMasterNode()

fermare il nodo principale

5

stopRandomNonMaster()

Ferma un nodo casuale non master del cluster

6

buildNode()

Crea un nuovo nodo

7

startNode(settings)

Avvia un nuovo nodo

8

nodeSettings()

Riscrivi questo metodo per modificare le impostazioni del nodo

Accesso ai client

Il client viene utilizzato per accedere ai diversi nodi del cluster e eseguire alcune operazioni. Il metodo ESIntegTestCase.client() viene utilizzato per ottenere un client casuale. Elasticsearch fornisce anche altri metodi per accedere ai client, che possono essere utilizzati attraverso il metodo ESIntegTestCase.internalCluster().

Numero di serieMetodo e descrizione
1

iterator()

Questo aiuta a accedere a tutti i client disponibili

2

masterClient()

Questo restituirà un client che comunica con il nodo master

3

nonMasterClient()

Questo restituirà un client che non comunica con il nodo master

4

clientNodeClient()

Questo restituirà il client attualmente presente sul nodo client

Test casuale

Questo test viene utilizzato per testare il codice dell'utente con tutti i possibili dati, in modo che non vi siano fallimenti di tipo di dati in futuro. I dati casuali sono la scelta migliore per eseguire questo test.

Generazione di dati casuali

In questo test, la classe Random viene istanziata dall'istanza fornita da RandomizedTest e fornisce molti metodi per ottenere diversi tipi di dati.

MetodoValore di ritorno
getRandom()Esempio di classe casuale
randomBoolean()Boolean casuale
randomByte()Byte casuale
randomShort()Short casuale
randomInt()Intero casuale
randomLong()Long casuale
randomFloat()Float casuale
randomDouble()Double casuale
randomLocale()Locale casuale
randomTimeZone()Fuso orario casuale
randomFrom()Elemento casuale dall'array

Affermazione

Le classi ElasticsearchAssertions e ElasticsearchGeoAssertions contengono affermazioni, che vengono utilizzate per eseguire alcune verifiche standard durante i test. Ad esempio, osservare il codice fornito qui -

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