Elasticsearch - Pengujian

Elasticsearch menyediakan file jar, yang dapat ditambahkan ke setiap IDE java dan dapat digunakan untuk menguji kode yang terkait dengan Elasticsearch. Berbagai pengujian dapat dilakukan dengan menggunakan kerangka kerja yang disediakan oleh Elasticsearch. Dalam bab ini, kita akan membahas tes ini secara rinci -

  • Pengujian unit
  • Tes integrasi
  • Pengujian acak

Prasyarat

Untuk memulai pengujian, Anda perlu menambahkan dependensi pengujian Elasticsearch ke program Anda. Anda dapat menggunakan maven untuk tujuan ini dan dapat menambahkan yang berikut ini di pom.xml.

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

EsSetup telah diinisialisasi untuk memulai dan menghentikan node Elasticsearch dan juga untuk membuat indeks.

EsSetup esSetup = new EsSetup();

esSetup.execute () fungsi dengan createIndex akan membuat indeks, Anda perlu menentukan pengaturan, jenis dan datanya.

Pengujian Unit

Uji unit dilakukan dengan menggunakan framework uji JUnit dan Elasticsearch. Node dan indeks dapat dibuat dengan menggunakan kelas Elasticsearch dan metode pengujian dapat digunakan untuk melakukan pengujian. Kelas ESTestCase dan ESTokenStreamTestCase digunakan untuk pengujian ini.

Tes integrasi

Pengujian integrasi menggunakan banyak node dalam satu cluster. Kelas ESIntegTestCase digunakan untuk pengujian ini. Ada berbagai metode yang mempermudah pekerjaan mempersiapkan kasus uji.

S.No Metode & Deskripsi
1

refresh()

Semua indeks dalam cluster di-refresh

2

ensureGreen()

Memastikan status cluster kesehatan hijau

3

ensureYellow()

Memastikan status cluster kesehatan kuning

4

createIndex(name)

Buat indeks dengan nama yang diteruskan ke metode ini

5

flush()

Semua indeks dalam cluster di-flush

6

flushAndRefresh()

flush () dan refresh ()

7

indexExists(name)

Memverifikasi keberadaan indeks tertentu

8

clusterService()

Mengembalikan kelas java layanan cluster

9

cluster()

Mengembalikan kelas cluster pengujian

Metode Uji Cluster

S.No Metode & Deskripsi
1

ensureAtLeastNumNodes(n)

Memastikan jumlah minimum node di cluster lebih dari atau sama dengan jumlah yang ditentukan.

2

ensureAtMostNumNodes(n)

Memastikan jumlah maksimum node di cluster kurang dari atau sama dengan jumlah yang ditentukan.

3

stopRandomNode()

Untuk menghentikan node acak dalam sebuah cluster

4

stopCurrentMasterNode()

Untuk menghentikan node master

5

stopRandomNonMaster()

Untuk menghentikan node acak di cluster, yang bukan node master.

6

buildNode()

Buat node baru

7

startNode(settings)

Mulai node baru

8

nodeSettings()

Ganti metode ini untuk mengubah pengaturan node.

Mengakses Klien

Klien digunakan untuk mengakses node yang berbeda dalam sebuah cluster dan melakukan beberapa tindakan. Metode ESIntegTestCase.client () digunakan untuk mendapatkan klien acak. Elasticsearch juga menawarkan metode lain untuk mengakses klien dan metode tersebut dapat diakses menggunakan metode ESIntegTestCase.internalCluster ().

S.No Metode & Deskripsi
1

iterator()

Ini membantu Anda mengakses semua klien yang tersedia.

2

masterClient()

Ini mengembalikan klien, yang berkomunikasi dengan node master.

3

nonMasterClient()

Ini mengembalikan klien, yang tidak berkomunikasi dengan node master.

4

clientNodeClient()

Ini mengembalikan klien saat ini di node klien.

Pengujian Acak

Pengujian ini digunakan untuk menguji kode pengguna dengan setiap data yang memungkinkan, sehingga tidak akan ada kegagalan di masa mendatang dengan semua jenis data. Data acak adalah pilihan terbaik untuk melakukan pengujian ini.

Menghasilkan Data Acak

Dalam pengujian ini, kelas Random dibuat instance-nya oleh instance yang disediakan oleh RandomizedTest dan menawarkan banyak metode untuk mendapatkan berbagai jenis data.

metode Nilai kembali
getRandom () Contoh kelas acak
randomBoolean () Boolean acak
randomByte () Byte acak
randomShort () Pendek acak
randomInt () Bilangan bulat acak
randomLong () Panjang acak
randomFloat () Float acak
randomDouble () Ganda acak
randomLocale () Lokal acak
randomTimeZone () Zona waktu acak
randomFrom () Elemen acak dari array

Pernyataan

Kelas ElasticsearchAssertions dan ElasticsearchGeoAssertions berisi pernyataan, yang digunakan untuk melakukan beberapa pemeriksaan umum pada saat pengujian. Misalnya, perhatikan kode yang diberikan di sini -

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