इलास्टिसर्च - परीक्षण
इलास्टिक्सर्च एक जार फ़ाइल प्रदान करता है, जिसे किसी भी जावा आईडीई में जोड़ा जा सकता है और इसका उपयोग कोड का परीक्षण करने के लिए किया जा सकता है जो एलिटिक्स खोज से संबंधित है। इलास्टिसर्च द्वारा प्रदान की गई रूपरेखा का उपयोग करके परीक्षणों की एक श्रृंखला का प्रदर्शन किया जा सकता है। इस अध्याय में, हम इन परीक्षणों पर विस्तार से चर्चा करेंगे -
- इकाई का परीक्षण
- एकीकरण जांच
- यादृच्छिक परीक्षण
आवश्यक शर्तें
परीक्षण के साथ शुरू करने के लिए, आपको अपने कार्यक्रम के लिए एलेस्टिक्स खोज परीक्षण निर्भरता को जोड़ना होगा। आप इस उद्देश्य के लिए मावेन का उपयोग कर सकते हैं और pom.xml में निम्नलिखित जोड़ सकते हैं।
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>2.1.0</version>
</dependency>
एस्सेटअप को शुरू किया गया है ताकि एलिस्टिक्स खोज नोड को शुरू करने और रोकने के लिए और सूचकांक भी बनाया जा सके।
EsSetup esSetup = new EsSetup();
esSetup.execute () फ़ंक्शन के साथ createIndex इंडेक्स बनाएगा, आपको सेटिंग्स, प्रकार और डेटा निर्दिष्ट करने की आवश्यकता है।
इकाई का परीक्षण
यूनिट परीक्षण JUnit और Elasticsearch परीक्षण ढांचे का उपयोग करके किया जाता है। एलियोडेस खोज कक्षाओं का उपयोग करके नोड और सूचकांक बनाए जा सकते हैं और परीक्षण करने के लिए परीक्षण विधि का उपयोग किया जा सकता है। इस परीक्षण के लिए ESTestCase और ESTokenStreamTestCase कक्षाओं का उपयोग किया जाता है।
एकीकरण जांच
एकीकरण परीक्षण एक क्लस्टर में कई नोड्स का उपयोग करता है। इस परीक्षण के लिए ESIntegTestCase क्लास का उपयोग किया जाता है। विभिन्न तरीके हैं जो टेस्ट केस तैयार करने का काम आसान बनाते हैं।
S.No | विधि और विवरण |
---|---|
1 | refresh() एक क्लस्टर में सभी सूचकांक ताज़ा हैं |
2 | ensureGreen() हरित स्वास्थ्य क्लस्टर राज्य सुनिश्चित करता है |
3 | ensureYellow() एक पीला स्वास्थ्य क्लस्टर राज्य सुनिश्चित करता है |
4 | createIndex(name) इस विधि को दिए गए नाम के साथ इंडेक्स बनाएं |
5 | flush() क्लस्टर के सभी सूचकांक फ्लश हो गए हैं |
6 | flushAndRefresh() फ्लश () और ताज़ा () |
7 | indexExists(name) निर्दिष्ट सूचकांक के अस्तित्व की पुष्टि करता है |
8 | clusterService() क्लस्टर सेवा जावा वर्ग देता है |
9 | cluster() परीक्षण क्लस्टर वर्ग देता है |
टेस्ट क्लस्टर तरीके
S.No | विधि और विवरण |
---|---|
1 | ensureAtLeastNumNodes(n) निर्दिष्ट क्लस्टर में नोड्स की न्यूनतम संख्या निर्दिष्ट संख्या से अधिक या बराबर है। |
2 | ensureAtMostNumNodes(n) निर्दिष्ट क्लस्टर में अधिकतम नोड्स की संख्या निर्दिष्ट संख्या से कम या बराबर है। |
3 | stopRandomNode() एक क्लस्टर में एक यादृच्छिक नोड को रोकने के लिए |
4 | stopCurrentMasterNode() मास्टर नोड को रोकने के लिए |
5 | stopRandomNonMaster() एक क्लस्टर में एक यादृच्छिक नोड को रोकने के लिए, जो मास्टर नोड नहीं है। |
6 | buildNode() एक नया नोड बनाएं |
7 | startNode(settings) एक नया नोड शुरू करें |
8 | nodeSettings() नोड सेटिंग बदलने के लिए इस विधि को ओवरराइड करें। |
ग्राहकों तक पहुंच
एक क्लाइंट का उपयोग क्लस्टर में विभिन्न नोड्स तक पहुंचने और कुछ कार्रवाई करने के लिए किया जाता है। रैंडम क्लाइंट पाने के लिए ESIntegTestCase.client () विधि का उपयोग किया जाता है। Elasticsearch ग्राहक तक पहुँचने के लिए अन्य तरीके भी प्रदान करता है और उन तरीकों को ESIntegTestCase.internalCluster () विधि का उपयोग करके पहुँचा जा सकता है।
S.No | विधि और विवरण |
---|---|
1 | iterator() यह आपको सभी उपलब्ध क्लाइंट तक पहुंचने में मदद करता है। |
2 | masterClient() यह एक क्लाइंट देता है, जो मास्टर नोड के साथ संचार कर रहा है। |
3 | nonMasterClient() यह एक क्लाइंट देता है, जो मास्टर नोड के साथ संचार नहीं कर रहा है। |
4 | clientNodeClient() यह क्लाइंट क्लायंट नोड पर वर्तमान में देता है। |
यादृच्छिक परीक्षण
इस परीक्षण का उपयोग उपयोगकर्ता के हर संभावित डेटा के कोड का परीक्षण करने के लिए किया जाता है, ताकि भविष्य में किसी भी प्रकार के डेटा के साथ कोई विफलता न हो। इस परीक्षण को करने के लिए रैंडम डेटा सबसे अच्छा विकल्प है।
रैंडम डेटा उत्पन्न करना
इस परीक्षण में, रेंडम क्लास को रैंडमाइंडटेस्ट द्वारा उपलब्ध कराए गए इंस्टेंट द्वारा त्वरित किया जाता है और विभिन्न प्रकार के डेटा प्राप्त करने के लिए कई तरीके प्रदान करता है।
तरीका | प्रतिलाभ की मात्रा |
---|---|
getRandom () | यादृच्छिक वर्ग का उदाहरण |
randomBoolean () | बेतरतीब बूलियन |
randomByte () | रैंडम बाइट |
randomShort () | यादृच्छिक छोटा |
randomInt () | रैंडम पूर्णांक |
randomLong () | यादृच्छिक लंबे |
randomFloat () | रैंडम फ्लोट |
randomDouble () | यादृच्छिक डबल |
randomLocale () | बेतरतीब लोकेल |
randomTimeZone () | यादृच्छिक समय क्षेत्र |
randomFrom () | सरणी से यादृच्छिक तत्व |
इस प्रकार के दावे
एलीस्टेक्टसएरेसॉरेन्स और एलीस्टेकेरेसेगिओसॉर्सियन क्लासेज में एश्योरेंस होते हैं, जिनका उपयोग परीक्षण के समय कुछ सामान्य जाँच करने के लिए किया जाता है। उदाहरण के लिए, यहां दिए गए कोड को देखें -
SearchResponse seearchResponse = client().prepareSearch();
assertHitCount(searchResponse, 6);
assertFirstHit(searchResponse, hasId("6"));
assertSearchHits(searchResponse, "1", "2", "3", "4",”5”,”6”);