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 содержат утверждения, которые используются для выполнения некоторых общих проверок во время тестирования. Например,