测试
ElasticSearch提供了一个jar文件,它可以添加到任何java集成开发环境中,并且可以用来测试与ElasticSearch相关的代码。通过使用ElasticSearch提供的框架,可以执行一系列测试。
- 单元测试
- 集成测试
随机测试
首先,您需要将ElasticSearch测试依赖项添加到您的程序中。为此,您可以使用maven,并可以在pom.xml中添加以下内容。
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>2.1.0</version>
</dependency>
EsSetup已被初始化以启动和停止弹性搜索节点,并创建索引。
EsSetup esSetup = new EsSetup();
esSetup.execute() 函数将创建索引,您需要指定设置、类型和数据。
单元测试
单元测试是使用JUnit和ElasticSearch测试框架进行的。节点和索引可以使用弹性搜索类创建,在测试方法中可以用来执行测试。ESTestCase和ESTokenStreamTestCase类用于此测试。
集成测试
集成测试在一个集群中使用多个节点。电子集成测试用例类用于此测试。有多种方法可以使准备测试用例的工作变得更加容易。
refresh():集群中的所有索引都会刷新
ensureGreen():确保绿色健康集群状态
ensureYellow():确保黄色健康群集状态
createIndex(name):使用传递给此方法的名称创建索引
flush():集群中的所有索引都会被刷新
flushAndRefresh():同时执行flush()和refresh()
indexExists(name):验证指定索引是否存在
clusterService():返回集群服务java类
cluster():返回测试集群类
测试集群方法
ensureAtLeastNumNodes(n):确保群集中的最小节点数大于或等于指定数量。
ensureAtMostNumNodes(n):确保群集中最多的节点数量小于或等于指定数量。
stopRandomNode():停止群集中的随机节点
stopCurrentMasterNode():停止主节点
stopRandomNonMaster():停止群集中不是主节点的随机节点
buildNode():创建新节点
startNode(settings):启动新节点
nodeSettings():覆盖此方法以更改节点设置
访问客户端
客户端用于访问群集中的不同节点并执行一些操作。方法用于获取随机客户端。ElasticSearch还提供了其他访问客户端的方法,这些方法可以使用esintegtESTscase . Internalcluster()方法来访问。
iterator():这有助于您访问所有可用的客户端。
masterClient():这将返回一个与主节点通信的客户端。
nonMasterClient():这将返回一个不与主节点通信的客户端。
clientNodeClient():这将返回当前在客户端节点上的客户端。
随机测试
这种测试用于用每一个可能的数据来测试用户的代码,以便将来任何类型的数据都不会失败。随机数据是执行该测试的最佳选择。
生成随机数据
在这个测试中,随机类由随机测试提供的实例进行实例化,并提供了许多获取不同类型数据的方法。
getRandom() 随机类的实例
randomBoolean() 随机Boolean
randomByte() 随机byte
randomShort() 随机short
randomInt() 随机integer
randomLong() 随机long
randomFloat() 随机float
randomDouble() 随机double
randomLocale() 随机locale
randomTimeZone() 随机time zone
randomFrom() 随机element from array
断言
ElasticsearchAssertions和ElasticsearchGeoAssertions类包含断言,用于在测试时执行一些常见的检查。例如,
SearchResponse seearchResponse = client().prepareSearch();
assertHitCount(searchResponse, 6);
assertFirstHit(searchResponse, hasId("6"));
assertSearchHits(searchResponse, "1", "2", "3", "4",”5”,”6”);