Учебники

Elasticsearch — Тестирование

Elasticsearch предоставляет файл jar, который можно добавить в любую среду Java и можно использовать для тестирования кода, связанного с Elasticsearch. Диапазон тестов может быть выполнен с использованием платформы, предоставляемой Elasticsearch —

  • Модульное тестирование
  • Интеграционное тестирование
  • Рандомизированное тестирование

Чтобы начать тестирование, вам нужно добавить в программу зависимость тестирования Elasticsearch. Вы можете использовать maven для этой цели и добавить следующее в pom.xml.

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

EsSetup был инициализирован для запуска и остановки узла Elasticsearch, а также для создания индексов.

EsSetup esSetup = new EsSetup ();

Функция esSetup.execute () с createIndex создаст индексы, вам нужно указать настройки, тип и данные.

Модульное тестирование

Модульное тестирование выполняется с использованием среды тестирования JUnit и Elasticsearch. Узлы и индексы могут быть созданы с использованием классов Elasticsearch и в тестовом методе могут использоваться для выполнения тестирования. Для этого тестирования используются классы ESTestCase и ESTokenStreamTestCase.

Интеграционное тестирование

Интеграционное тестирование использует несколько узлов в кластере. Класс ESIntegTestCase используется для этого тестирования. Существуют различные методы, облегчающие подготовку теста.

Sr.No Метод и описание
1

обновить ()

Все индексы в кластере обновлены

2

ensureGreen ()

Обеспечивает состояние кластера зеленого здоровья

3

ensureYellow ()

Гарантирует состояние желтого кластера здоровья

4

CreateIndex (имя)

Создать индекс с именем, переданным этому методу

5

промывать()

Все индексы в кластере сброшены

6

flushAndRefresh ()

flush () и refresh ()

7

indexExists (имя)

Проверяет существование указанного индекса

8

clusterService ()

Возвращает кластерный сервисный Java-класс

9

Кластер ()

Возвращает класс тестового кластера.

обновить ()

Все индексы в кластере обновлены

ensureGreen ()

Обеспечивает состояние кластера зеленого здоровья

ensureYellow ()

Гарантирует состояние желтого кластера здоровья

CreateIndex (имя)

Создать индекс с именем, переданным этому методу

промывать()

Все индексы в кластере сброшены

flushAndRefresh ()

flush () и refresh ()

indexExists (имя)

Проверяет существование указанного индекса

clusterService ()

Возвращает кластерный сервисный Java-класс

Кластер ()

Возвращает класс тестового кластера.

Методы тестового кластера

Sr.No Метод и описание
1

ensureAtLeastNumNodes (п)

Гарантирует, что минимальное количество узлов в кластере больше или равно указанному количеству.

2

ensureAtMostNumNodes (п)

Гарантирует, что максимальное количество узлов в кластере меньше или равно указанному количеству.

3

stopRandomNode ()

Чтобы остановить случайный узел в кластере

4

stopCurrentMasterNode ()

Чтобы остановить мастер-узел

5

stopRandomNonMaster ()

Чтобы остановить случайный узел в кластере, который не является главным узлом

6

buildNode ()

Создать новый узел

7

startNode (настройки)

Начать новый узел

8

nodeSettings ()

Переопределите этот метод для изменения настроек узла

ensureAtLeastNumNodes (п)

Гарантирует, что минимальное количество узлов в кластере больше или равно указанному количеству.

ensureAtMostNumNodes (п)

Гарантирует, что максимальное количество узлов в кластере меньше или равно указанному количеству.

stopRandomNode ()

Чтобы остановить случайный узел в кластере

stopCurrentMasterNode ()

Чтобы остановить мастер-узел

stopRandomNonMaster ()

Чтобы остановить случайный узел в кластере, который не является главным узлом

buildNode ()

Создать новый узел

startNode (настройки)

Начать новый узел

nodeSettings ()

Переопределите этот метод для изменения настроек узла

Доступ к клиентам

Клиент используется для доступа к различным узлам в кластере и выполнения некоторых действий. Метод ESIntegTestCase.client () используется для получения случайного клиента. Elasticsearch предлагает другие методы также для доступа к клиенту, и эти методы могут быть доступны с помощью метода ESIntegTestCase.internalCluster ().

Sr.No Метод и описание
1

итератора ()

Это поможет вам получить доступ ко всем доступным клиентам.

2

masterClient ()

Это возвращает клиента, который связывается с главным узлом.

3

nonMasterClient ()

Это возвращает клиента, который не связывается с главным узлом.

4

clientNodeClient ()

Это возвращает клиента в данный момент на клиентском узле.

итератора ()

Это поможет вам получить доступ ко всем доступным клиентам.

masterClient ()

Это возвращает клиента, который связывается с главным узлом.

nonMasterClient ()

Это возвращает клиента, который не связывается с главным узлом.

clientNodeClient ()

Это возвращает клиента в данный момент на клиентском узле.

Рандомизированное тестирование

Это тестирование используется для проверки кода пользователя со всеми возможными данными, чтобы в будущем не было сбоев с данными любого типа. Случайные данные — лучший вариант для проведения этого тестирования.

Генерация случайных данных

В этом тестировании класс Random создается экземпляром, предоставленным RandomizedTest, и предлагает множество методов для получения различных типов данных.

метод Возвращаемое значение
getRandom () Экземпляр случайного класса
randomBoolean () Случайный логический
randomByte () Случайный байт
randomShort () Случайный короткий
randomInt () Случайное целое число
randomLong () Случайный длинный
randomFloat () Случайное плавание
randomDouble () Случайный двойной
randomLocale () Случайная локаль
randomTimeZone () Случайный часовой пояс
randomFrom () Случайный элемент из массива

Утверждения

Классы ElasticsearchAssertions и ElasticsearchGeoAssertions содержат утверждения, которые используются для выполнения некоторых общих проверок во время тестирования. Например,