जेनकिंस - कैसे पता करें कि कौन से परीक्षण बार-बार विफल हुए?


13

मैं सीआई और जेनकिंस के लिए नया हूं। मेरे पास एक जावा परियोजना है जो वेब सेवा पर टेस्टींग आधारित स्वचालित परीक्षण चलाती है। स्वचालन परीक्षण नियमित रूप से जेनकिंस में नौकरी के रूप में चलते हैं। कभी-कभी, नौकरी लंबे समय तक बार-बार विफल हो जाती है। लेकिन, प्रत्येक रन में, परीक्षण विफलताओं की संख्या अलग है। मैं देखना चाहता हूं कि आखिरी 5 रन में कौन से टेस्ट बार-बार फेल हुए। इसके साथ, मैं परीक्षण विफलताओं की संख्या को कम कर सकता हूं जिनकी मुझे जांच करनी है। अंतिम 5 रनों में सभी असफलताओं को नहीं दोहराते हैं जिन्हें बाद में नजरअंदाज या जांच की जा सकती है।

क्या कोई कृपया सुझाव दे सकता है कि मैं यह कैसे पता लगा सकता हूं कि पिछले N रनों में कौन से परीक्षण बार-बार विफल हुए?


असफलताओं को देखने के लिए आपको परीक्षा परिणाम को आसान तरीके से सहेजने की आवश्यकता है। सिर्फ 'XEXX' के रूप में हो सकता है जहां E त्रुटि और सभी परीक्षणों के लिए पूरी पंक्ति के लिए खड़ा है। जैसे कि आप इसे बहुत जगह के बिना एक textfile में सहेज सकते हैं।
डेविड

सभी परीक्षणों के प्रत्येक रन के लिए आप एक नई लाइन बनाते हैं, फिर स्क्रिप्ट को देखना या विश्लेषण करना आसान है।
डेविड

आपके पास परीक्षण-एनजी प्लगइन उपलब्ध है और आप हर बार परिणाम प्रकाशित कर सकते हैं ... फिर आप प्रत्येक निर्माण की तुलना कर सकते हैं जो आपको बताएगा कि कौन सा परीक्षण विफल हुआ
रोहित

@rohitthomas - क्या आप मैन्युअली तुलना करने का सुझाव दे रहे हैं? मैं उससे बचना चाहता हूं।
एर्रान मोराद

आप 'बार-बार विफल' क्या मानते हैं? क्या आपका मतलब है कि सभी टेस्टकेस उदाहरण के लिए अंतिम 5 रन में विफल रहे या केवल प्रत्येक टेस्टकेस जो 5 में से 3 निष्पादन में विफल रहा?
माइकल केमर्ज़ेल

जवाबों:


7

आप किसी पाइपलाइन में बिल्ड की ऑब्जेक्ट से परीक्षण में विफल होने की संख्या ले सकते हैं: आप एक छोटी रिपोर्ट बना सकते हैं और इसे अपने बिल्ड के साथ संलग्न कर सकते हैं:

@NonCPS
def getRepeatedlyFailingTests(int timesFailedAtLeast = 2) {
  currentBuild.rawBuild.getAction(hudson.tasks.junit.TestResultAction.class)
    .getFailedTests()
    // Keep only tests that failed at least twice
    .findAll { it.age >= timesFailedAtLeast }
    .collect { [ "${it.className}.${it.name}".trim(), it.age ] }
}

def saveRepeatedlyFailingTestsReport() {
  def header = [ "test", "times-failed" ]
  def records = getRepeatedlyFailingTests()
  def report = "repeatedly-failing-tests.csv"
  writeCSV file: report, records: [ header ] + records, format: CSVFormat.EXCEL
  archiveArtifacts report
}

कॉल करने के saveRepeatedlyFailingTestsReportबाद आप अपने परीक्षा परिणाम प्राप्त करेंगे और आप अपनी नवीनतम बिल्ड कलाकृतियों की कड़ी में रिपोर्ट देखेंगे।


1
यह कौनसी भाषा है ? क्या आप अधिक विवरण जोड़ सकते हैं? मैं उम्मीद करता हूँ कि इसे सार्थक बनाने के लिए मैं एक इनाम दूंगा। धन्यवाद।
एर्रान मोराद

1
@BoratSagdiyev यह Groovy DSL है जो जेनकिंस पाइपलाइन के भीतर उपयोग किया जाता है। यदि आपको केवल दृश्य सहायता की आवश्यकता है तो मैं सोराज के उत्तर के साथ जाऊंगा, क्योंकि इसके लिए पाइपलाइन ज्ञान की आवश्यकता नहीं है। एक पूर्ण पाइपलाइन बनाने के लिए मुझे आपकी फ्रीस्टाइल नौकरी जानने की आवश्यकता होगी, लेकिन यह सवाल के दायरे से बाहर है।
तौलिया

2

आप परीक्षणों के रुझानों का विश्लेषण करने के लिए जेनकिन्स से टेस्ट रिजल्ट एनालाइज़र प्लगइन का उपयोग कर सकते हैं।

टेस्ट रिजल्ट एनालाइजर प्लगइन

यूट्यूब से वीडियो ट्यूटोरियल

स्थापना :

  1. जेनकिंस डैशबोर्ड में, मैनेज जेनकींस पर क्लिक करें
  2. मेनू से प्लगइन्स प्रबंधित करें का चयन करें
  3. फ़िल्टर खोज बॉक्स में उपलब्ध टैब और इनपुट विश्लेषक पर क्लिक करें
  4. परीक्षण परिणाम विश्लेषक के बाईं ओर स्थित चेक बॉक्स पर क्लिक करें और पुनः आरंभ बटन के बिना इंस्टॉल पर क्लिक करें

उपयोग :

  1. प्रोजेक्ट पर जाएं और कॉन्फ़िगर पर क्लिक करें
  2. गोटो पोस्ट-बिल्ड एक्शन सेक्शन और ऐड पोस्ट-बिल्ड एक्शन ड्रॉपडाउन से प्रकाशित ज्यूनिट परीक्षा परिणाम रिपोर्ट का चयन करें
  3. टेस्ट रिपोर्ट में XMLs फ़ील्ड प्रोजेक्ट में TestNg / JUnit xml का पथ प्रदान करती है। उदाहरण के लिए - **/target/test-results/*.xmlमेरे मामले में
  4. कॉन्फ़िगरेशन सहेजें
  5. फिर एक सफल निर्माण के बाद, अपने प्रोजेक्ट को मिलाएं, और बाईं ओर मेनू में टेस्ट परिणाम विश्लेषक पर क्लिक करें

लिंक के लिए धन्यवाद। लेकिन, लिंक केवल जवाब ज्यादा मदद नहीं करता है। क्या आप कृपया इस बात का एक संक्षिप्त विवरण जोड़ सकते हैं कि मुझे जिस चीज़ की आवश्यकता है उसे प्राप्त करने के लिए मैं प्लगइन का उपयोग कैसे कर सकता हूं?
एर्रान मोराद

प्लगइन स्थापित करें और प्लगइन को वांछित प्रोजेक्ट के पोस्ट-बिल्ड एक्शन के लिए कॉन्फ़िगर करें । फिर एक सफल निर्माण के बाद आप अपनी परियोजना के बाईं ओर मेनू पर टेस्ट रिजल्ट विश्लेषक पर क्लिक करके परिणाम देख सकते हैं
सोरज

@Borat Sagdiyev, मैंने टेस्ट परिणाम विश्लेषक प्लगइन को कॉन्फ़िगर करने के लिए विस्तृत चरणों और एक वीडियो के साथ उत्तर को अपडेट किया है । आशा है कि यह मदद करता है;)
सोरज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.