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");