Elasticsearch 測(cè)試

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

  • 單元測(cè)試

  • 整合測(cè)試

  • 隨機(jī)測(cè)試

先決條件

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

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

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

EsSetup esSetup = new EsSetup();

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

單元測(cè)試

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

整合測(cè)試

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

序號(hào)方法與說明
1

refresh()

將刷新群集中的所有索引

2

ensureGreen()

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

3

ensureYellow()

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

4

createIndex(name)

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

5

flush()

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

flushAndRefresh()

flush() 和 refresh()

7

indexExists(name)

驗(yàn)證指定索引是否存在

8

clusterService()

返回集群服務(wù) java 類

9

cluster()

返回測(cè)試群集類

測(cè)試集群方法

序號(hào)方法與說明
1

ensureAtLeastNumNodes(n)

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

2

ensureAtMostNumNodes(n)

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

3

stopRandomNode()

停止群集中的隨機(jī)節(jié)點(diǎn)

4

stopCurrentMasterNode()

停止主節(jié)點(diǎn)

5

stopRandomNonMaster()

停止群集中不是主節(jié)點(diǎn)的隨機(jī)節(jié)點(diǎn)

6

buildNode()

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

7

startNode(settings)

啟動(dòng)新節(jié)點(diǎn)

8

nodeSettings()

重寫此方法以更改節(jié)點(diǎn)設(shè)置

訪問客戶端

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

序號(hào)方法與說明
1

iterator()

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

2

masterClient()

這將返回一個(gè)與主節(jié)點(diǎn)通信的客戶機(jī)

3

nonMasterClient()

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

4

clientNodeClient()

這將返回當(dāng)前處于客戶端節(jié)點(diǎn)上的客戶端

隨機(jī)測(cè)試

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

生成隨機(jī)數(shù)據(jù)

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

方法返回值
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類包含斷言,這些斷言用于在測(cè)試時(shí)執(zhí)行一些常規(guī)檢查。例如,觀察此處給出的代碼-

SearchResponse seearchResponse = client().prepareSearch();
assertHitCount(searchResponse, 6);
assertFirstHit(searchResponse, hasId("6"));
assertSearchHits(searchResponse, "1", "2", "3", "4",”5”,”6”);
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清