English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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
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à 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 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 serie | Metodo 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 |
Numero di serie | Metodo 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 |
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 serie | Metodo 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 |
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.
In questo test, la classe Random viene istanziata dall'istanza fornita da RandomizedTest e fornisce molti metodi per ottenere diversi tipi di dati.
Metodo | Valore 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 |
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");