Elasticsearch - 测试

Elasticsearch提供了一个jar文件,可以将其添加到任何Java IDE中,并可用于测试与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.否方法&描述
1

刷新()

群集中的所有索引都会刷新

2

ensureGreen()

确保绿色健康群集状态

3

ensureYellow()

确保黄色健康群集状态

4

createIndex(name)

创建索引传递给此方法的名称

5

flush()

群集中的所有索引都已刷新

6

flushAndRefresh()

flush()和refresh()

7

indexExists(name)

验证是否存在指定的index

8

clusterService()

返回集群服务java类

9

cluster()

返回测试集群类

测试集群方法

Sr.No方法和说明
1

ensureAtLeastNumNodes(n)

确保群集中最小节点数大于或等于指定数量.

2

ensureAtMostNumNodes(n)

确保群集中最大节点数小于或等于指定数量.

3

stopRandomNode()

停止集群中的随机节点

4

stopCurrentMasterNode()

停止主节点

5

stopRandomNonMaster()

停止集群中的随机节点,它不是主节点

6

buildNode()

创建一个新节点

7

startNode(设置)

开始新节点

8

nodeSettings()

覆盖此项更改节点设置的方法

访问客户端

客户端用于访问集群中的不同节点并执行一些操作.ESIntegTestCase.client()方法用于获取随机客户端.Elasticsearch还提供其他方法来访问客户端,并且可以使用ESIntegTestCase.internalCluster()方法访问这些方法.

Sr.No方法和描述
1

iterator()

这有助于您访问所有可用的客户.

2

masterClient()

这将返回一个客户端,正在与主节点通信.

3

nonMasterClient()

这将返回一个客户端,没有与主节点通信.

4

clientNodeClient()

这会返回当前的客户端在客户端节点上.

随机化测试

此测试用于测试每个可能数据的用户代码,以便将来任何类型的数据都不会失败.随机数据是进行此测试的最佳选择.

生成随机数据

在此测试中,Random类由RandomizedTest提供的实例实例化,并提供了许多获取不同类型数据的方法.

方法返回值
getRandom()随机类的实例
randomBoolean()随机布尔值
randomByte()随机字节
randomShort()随机短
randomInt()随机整数
randomLong()随机长
randomFloat()随机浮动
randomDouble()随机双
randomLocale ()随机区域设置
randomTimeZone()随机时区
randomFrom()随机元素from array

断言

ElasticsearchAssertions和ElasticsearchGeoAssertions类包含断言,用于在测试时执行一些常见检查.例如,

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