English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Elasticsearch fournit un fichier jar, qui peut être ajouté à n'importe quel IDE Java et utilisé pour tester le code lié à Elasticsearch. En utilisant le cadre fourni par Elasticsearch, une série de tests peut être exécutés. Dans ce chapitre, nous allons discuter en détail de ces tests-
Tests unitaires
Tests d'intégration
Test aléatoire
Pour commencer les tests, vous devez ajouter les dépendances de test Elasticsearch à votre programme. Vous pouvez utiliser Maven à cette fin et ajouter le contenu suivant à pom.xml.
<dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>2.1.0</version> </dependency>
EsSetup a été initialisé pour démarrer et arrêter les nœuds Elasticsearch et créer des indexes.
EsSetup esSetup = new EsSetup();
La fonction avec createIndex de esSetup.execute() créera un index, vous devez spécifier les paramètres, le type et les données.
Les tests unitaires sont effectués en utilisant JUnit et le cadre de test Elasticsearch. Vous pouvez utiliser la classe Elasticsearch pour créer des nœuds et des indexes, et exécuter des tests en utilisant la méthode test. Les classes ESTestCase et ESTokenStreamTestCase sont utilisées pour ce test.
Les tests d'intégration utilisent plusieurs nœuds dans le groupe. La classe ESIntegTestCase est utilisée pour ce test. Plusieurs méthodes peuvent simplifier le travail de préparation des cas de test.
Numéro | Méthodes et descriptions |
---|---|
1 | refresh() Rafraîchir tous les indexes du groupe |
2 | ensureGreen() Assurer l'état de cluster en vert et sain |
3 | ensureYellow() Assurer l'état de cluster en jaune |
4 | createIndex(name) Créer un index en utilisant le nom passé à cette méthode |
5 | flush() Rafraîchir tous les indexes du groupe |
6 | flushAndRefresh() flush() et refresh() |
7 | indexExists(name) Vérifier si l'index spécifié existe |
8 | clusterService() Retourner la classe java de service de cluster |
9 | cluster() Retourner la classe de test de cluster |
Numéro | Méthodes et descriptions |
---|---|
1 | ensureAtLeastNumNodes(n) Assurer que le nombre minimum maximum de nœuds dans le groupe est supérieur ou égal au nombre spécifié |
2 | ensureAtMostNumNodes(n) Assurer que le nombre maximum de nœuds dans le groupe est inférieur ou égal au nombre spécifié |
3 | stopRandomNode() Arrêter un nœud aléatoire du groupe |
4 | stopCurrentMasterNode() Arrêter le nœud principal |
5 | stopRandomNonMaster() Arrêt d'un noeud non principal au hasard du cluster |
6 | buildNode() Création d'un nouveau noeud |
7 | startNode(settings) Démarrage d'un nouveau noeud |
8 | nodeSettings() Redéfinissez cette méthode pour modifier les paramètres du noeud |
Les clients sont utilisés pour accéder aux différents nœuds du cluster et exécuter certaines opérations. La méthode ESIntegTestCase.client() est utilisée pour obtenir un client aléatoire. Elasticsearch propose également d'autres méthodes pour accéder aux clients, qui peuvent être utilisées via la méthode ESIntegTestCase.internalCluster().
Numéro | Méthodes et descriptions |
---|---|
1 | iterator() Cela aide à accéder à tous les clients disponibles |
2 | masterClient() Cela retournera un client qui communique avec le noeud principal |
3 | nonMasterClient() Cela retournera un client qui ne communique pas avec le noeud principal |
4 | clientNodeClient() Cela retournera le client actuel sur le noeud client |
Ce test est utilisé pour tester le code utilisateur avec tous les types possibles de données, afin que none des types de données échouent à l'avenir. Les données aléatoires sont le meilleur choix pour exécuter ce test.
Dans ce test, la classe Random est instanciée par l'instance fournie par RandomizedTest et propose de nombreuses méthodes pour obtenir différents types de données.
Méthode | Valeur de retour |
---|---|
getRandom() | Instance de la classe aléatoire |
randomBoolean() | Boolean aléatoire |
randomByte() | Octet aléatoire |
randomShort() | Short aléatoire |
randomInt() | Entier aléatoire |
randomLong() | Long aléatoire |
randomFloat() | Flottant aléatoire |
randomDouble() | Double aléatoire |
randomLocale() | Locale aléatoire |
randomTimeZone() | Zone horaire aléatoire |
randomFrom() | Élément aléatoire d'un tableau |
Les classes ElasticsearchAssertions et ElasticsearchGeoAssertions contiennent des assertions, qui sont utilisées pour effectuer des vérifications courantes lors des tests. Par exemple, observez le code fourni ici-
SearchResponse seearchResponse = client().prepareSearch(); assertHitCount(searchResponse, 6); assertFirstHit(searchResponse, hasId("6"); assertSearchHits(searchResponse, "123456