亚洲区国产区激情区无码区,国产成人mv视频在线观看,国产A毛片AAAAAA,亚洲精品国产首次亮相在线

Elasticsearch 測試

Elasticsearch提供了一個jar文件,可以將其添加到任何Java IDE中,并可以用于測試與Elasticsearch相關的代碼。使用Elasticsearch提供的框架可以執(zhí)行一系列測試。在本章中,我們將詳細討論這些測試-

  • 單元測試

  • 整合測試

  • 隨機測試

先決條件

要開始測試,您需要將Elasticsearch測試依賴項添加到您的程序中。您可以將maven用于此目的,并可以在pom.xml中添加以下內容。

<dependency>
   <groupId>org.elasticsearch</groupId>
   <artifactId>elasticsearch</artifactId>
   <version>2.1.0</version>
</dependency>

EsSetup已被初始化,以啟動和停止Elasticsearch節(jié)點并創(chuàng)建索引。

EsSetup esSetup = new EsSetup();

esSetup.execute() 帶有createIndex的函數將創(chuàng)建索引,您需要指定設置,類型和數據。

單元測試

單元測試是通過使用JUnit和Elasticsearch測試框架進行的。可以使用Elasticsearch類創(chuàng)建節(jié)點和索引,并且可以使用test方法執(zhí)行測試。ESTestCase和ESTokenStreamTestCase類用于此測試。

整合測試

集成測試使用群集中的多個節(jié)點。ESIntegTestCase類用于此測試。有多種方法可以簡化準備測試用例的工作。

序號方法與說明
1

refresh()

將刷新群集中的所有索引

2

ensureGreen()

確保綠色健康集群狀態(tài)

3

ensureYellow()

確保黃色運行狀況群集狀態(tài)

4

createIndex(name)

使用傳遞給此方法的名稱創(chuàng)建索引

5

flush()

將刷新群集中的所有索引
6

flushAndRefresh()

flush() 和 refresh()

7

indexExists(name)

驗證指定索引是否存在

8

clusterService()

返回集群服務 java 類

9

cluster()

返回測試群集類

測試集群方法

序號方法與說明
1

ensureAtLeastNumNodes(n)

確保群集中最多的最小節(jié)點數大于或等于指定的數目

2

ensureAtMostNumNodes(n)

確保群集中最多的節(jié)點數小于或等于指定的數目

3

stopRandomNode()

停止群集中的隨機節(jié)點

4

stopCurrentMasterNode()

停止主節(jié)點

5

stopRandomNonMaster()

停止群集中不是主節(jié)點的隨機節(jié)點

6

buildNode()

創(chuàng)建新節(jié)點

7

startNode(settings)

啟動新節(jié)點

8

nodeSettings()

重寫此方法以更改節(jié)點設置

訪問客戶端

客戶機用于訪問集群中的不同節(jié)點并執(zhí)行某些操作。ESIntegTestCase.client()方法用于獲取隨機客戶端。Elasticsearch還提供了訪問客戶端的其他方法,這些方法可以使用ESIntegTestCase.internalCluster()方法。

序號方法與說明
1

iterator()

這有助于您訪問所有可用的客戶端

2

masterClient()

這將返回一個與主節(jié)點通信的客戶機

3

nonMasterClient()

這將返回一個客戶端,該客戶端不與主節(jié)點通信

4

clientNodeClient()

這將返回當前處于客戶端節(jié)點上的客戶端

隨機測試

此測試用于測試用戶代碼與所有可能的數據,以便將來不會出現任何類型的數據失敗。隨機數據是執(zhí)行此測試的最佳選擇。

生成隨機數據

在此測試中,Random類由RandomizedTest提供的實例實例化,并提供了許多用于獲取不同類型數據的方法。

方法返回值
getRandom()Instance of random class
randomBoolean()Random boolean
randomByte()Random byte
randomShort()Random short
randomInt()Random integer
randomLong()Random long
randomFloat()Random float
randomDouble()Random double
randomLocale()Random locale
randomTimeZone()Random time zone
randomFrom()Random element from array

斷言

ElasticsearchAssertions和ElasticsearchGeoAssertions類包含斷言,這些斷言用于在測試時執(zhí)行一些常規(guī)檢查。例如,觀察此處給出的代碼-

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