Elasticsearch - การทดสอบ

Elasticsearch มีไฟล์ jar ซึ่งสามารถเพิ่มลงใน java IDE ใด ๆ และสามารถใช้เพื่อทดสอบโค้ดที่เกี่ยวข้องกับ Elasticsearch การทดสอบต่างๆสามารถทำได้โดยใช้กรอบการทำงานที่ Elasticsearch จัดเตรียมไว้ให้ ในบทนี้เราจะพูดถึงการทดสอบเหล่านี้โดยละเอียด -

  • การทดสอบหน่วย
  • การทดสอบการผสานรวม
  • การทดสอบแบบสุ่ม

ข้อกำหนดเบื้องต้น

ในการเริ่มต้นการทดสอบคุณต้องเพิ่มการพึ่งพาการทดสอบ Elasticsearch ในโปรแกรมของคุณ คุณสามารถใช้ maven เพื่อจุดประสงค์นี้และสามารถเพิ่มสิ่งต่อไปนี้ใน pom.xml

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

EsSetup ได้รับการเตรียมใช้งานเพื่อเริ่มต้นและหยุดโหนด Elasticsearch และเพื่อสร้างดัชนี

EsSetup esSetup = new EsSetup();

esSetup.execute () ฟังก์ชันด้วย createIndex จะสร้างดัชนีคุณต้องระบุการตั้งค่าประเภทและข้อมูล

การทดสอบหน่วย

การทดสอบหน่วยดำเนินการโดยใช้กรอบการทดสอบ JUnit และ Elasticsearch โหนดและดัชนีสามารถสร้างได้โดยใช้คลาส Elasticsearch และในวิธีการทดสอบสามารถใช้เพื่อทำการทดสอบได้ ใช้คลาส ESTestCase และ ESTokenStreamTestCase สำหรับการทดสอบนี้

การทดสอบการผสานรวม

การทดสอบการรวมใช้หลายโหนดในคลัสเตอร์ คลาส ESIntegTestCase ใช้สำหรับการทดสอบนี้ มีวิธีการต่างๆที่ทำให้งานเตรียมกรณีทดสอบง่ายขึ้น

ส. เลขที่ วิธีการและคำอธิบาย
1

refresh()

ดัชนีทั้งหมดในคลัสเตอร์จะถูกรีเฟรช

2

ensureGreen()

ตรวจสอบสถานะคลัสเตอร์สุขภาพสีเขียว

3

ensureYellow()

ตรวจสอบสถานะคลัสเตอร์สุขภาพสีเหลือง

4

createIndex(name)

สร้างดัชนีด้วยชื่อที่ส่งไปยังเมธอดนี้

5

flush()

ดัชนีทั้งหมดในคลัสเตอร์จะถูกล้าง

6

flushAndRefresh()

ล้าง () และรีเฟรช ()

7

indexExists(name)

ตรวจสอบการมีอยู่ของดัชนีที่ระบุ

8

clusterService()

ส่งคืนคลาส Java ของคลัสเตอร์เซอร์วิส

9

cluster()

ส่งคืนคลาสคลัสเตอร์ทดสอบ

วิธีการทดสอบคลัสเตอร์

ส. เลขที่ วิธีการและคำอธิบาย
1

ensureAtLeastNumNodes(n)

ตรวจสอบให้แน่ใจว่าจำนวนโหนดขั้นต่ำในคลัสเตอร์มากกว่าหรือเท่ากับจำนวนที่ระบุ

2

ensureAtMostNumNodes(n)

ตรวจสอบให้แน่ใจว่าจำนวนโหนดสูงสุดในคลัสเตอร์น้อยกว่าหรือเท่ากับจำนวนที่ระบุ

3

stopRandomNode()

เพื่อหยุดโหนดสุ่มในคลัสเตอร์

4

stopCurrentMasterNode()

เพื่อหยุดโหนดหลัก

5

stopRandomNonMaster()

เพื่อหยุดโหนดสุ่มในคลัสเตอร์ซึ่งไม่ใช่โหนดหลัก

6

buildNode()

สร้างโหนดใหม่

7

startNode(settings)

เริ่มโหนดใหม่

8

nodeSettings()

แทนที่วิธีนี้สำหรับการเปลี่ยนการตั้งค่าโหนด

การเข้าถึงลูกค้า

ไคลเอ็นต์ใช้เพื่อเข้าถึงโหนดต่างๆในคลัสเตอร์และดำเนินการบางอย่าง วิธี ESIntegTestCase.client () ใช้สำหรับรับไคลเอ็นต์แบบสุ่ม Elasticsearch เสนอวิธีการอื่น ๆ ในการเข้าถึงไคลเอนต์และวิธีการเหล่านั้นสามารถเข้าถึงได้โดยใช้เมธอด ESIntegTestCase.internalCluster ()

ส. เลขที่ วิธีการและคำอธิบาย
1

iterator()

สิ่งนี้ช่วยให้คุณเข้าถึงไคลเอนต์ที่มีอยู่ทั้งหมด

2

masterClient()

ส่งคืนไคลเอ็นต์ซึ่งกำลังสื่อสารกับโหนดหลัก

3

nonMasterClient()

ส่งคืนไคลเอ็นต์ซึ่งไม่ได้สื่อสารกับโหนดหลัก

4

clientNodeClient()

ส่งคืนไคลเอ็นต์ที่อยู่บนโหนดไคลเอ็นต์

การทดสอบแบบสุ่ม

การทดสอบนี้ใช้เพื่อทดสอบโค้ดของผู้ใช้กับข้อมูลที่เป็นไปได้ทั้งหมดเพื่อไม่ให้เกิดความล้มเหลวในอนาคตกับข้อมูลประเภทใด ๆ ข้อมูลแบบสุ่มเป็นตัวเลือกที่ดีที่สุดในการทดสอบนี้

การสร้างข้อมูลแบบสุ่ม

ในการทดสอบนี้คลาส Random ถูกสร้างอินสแตนซ์โดยอินสแตนซ์ที่ RandomizedTest จัดเตรียมไว้และมีวิธีการมากมายในการรับข้อมูลประเภทต่างๆ

วิธี ส่งคืนค่า
getRandom () อินสแตนซ์ของคลาสสุ่ม
สุ่มบูลีน () บูลีนแบบสุ่ม
randomByte () ไบต์สุ่ม
สุ่มสั้น () สุ่มสั้น
randomInt () จำนวนเต็มสุ่ม
สุ่มลอง () สุ่มยาว
สุ่มลอย () ลอยแบบสุ่ม
สุ่มคู่ () สุ่มสองครั้ง
randomLocale () สถานที่สุ่ม
randomTimeZone () โซนเวลาแบบสุ่ม
สุ่มจาก () องค์ประกอบสุ่มจากอาร์เรย์

การยืนยัน

คลาส ElasticsearchAssertions และ ElasticsearchGeoAssertions มีการยืนยันซึ่งใช้สำหรับการตรวจสอบทั่วไปในขณะที่ทำการทดสอบ ตัวอย่างเช่นสังเกตรหัสที่ระบุที่นี่ -

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