开发学院

您的位置:首页>教程>正文

教程正文

ElasticSearch 7 测试

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