விரிவான அறிக்கையிடல் ஒருங்கிணைப்பு பற்றிய கண்ணோட்டம்
தானியங்கு ஜாவா திட்டங்களுக்கு ஜென்கின்ஸுடன் விரிவான அறிக்கையிடலை ஒருங்கிணைப்பது, தொடர்ச்சியான ஒருங்கிணைப்பு சூழல்களுக்கு முக்கியமான சோதனை முடிவுகளின் தெரிவுநிலையை மேம்படுத்துகிறது. இந்த அமைப்பில் பொதுவாக TestNG, Maven மற்றும் Extent Reporter ஆகியவை அடங்கும், இது SureFire மூலம் நிர்வகிக்கப்படுகிறது, இது இரவுநேர உருவாக்கம் மற்றும் விரிவான அறிக்கையிடலை அனுமதிக்கிறது.
இருப்பினும், ஜென்கின்ஸ் மின்னஞ்சல் அறிவிப்புகளில் சேர்ப்பதற்காக எக்ஸ்டென்ட் ரிப்போர்ட்டர் HTML டாஷ்போர்டிலிருந்து சோதனை எண்ணிக்கைகள் மற்றும் தேர்ச்சி/தோல்வி விகிதங்கள் போன்ற குறிப்பிட்ட தரவைப் பிரித்தெடுப்பது பொதுவான சவாலாகும். தானியங்கு பரப்புதலுக்கான HTML உள்ளடக்கத்திலிருந்து இந்த விவரங்களை திறம்பட அலசுவதற்கு இதற்கு ஒரு ஸ்கிரிப்ட் அல்லது முறை தேவைப்படுகிறது.
| கட்டளை | விளக்கம் |
|---|---|
| groovy.json.JsonSlurper | JSON வடிவமைத்த தரவை அலச, JSON கோப்புகள் அல்லது பதில்களிலிருந்து தரவு கையாளுதலை எளிதாக்க க்ரூவியில் பயன்படுத்தப்படுகிறது. |
| new URL().text | ஒரு புதிய URL பொருளை உருவாக்குகிறது மற்றும் உள்ளடக்கத்தை உரையாகப் பெறுகிறது, பொதுவாக இணைய ஆதாரங்களில் இருந்து தரவை நேரடியாகப் படிக்கப் பயன்படுகிறது. |
| jenkins.model.Jenkins.instance | ஜென்கின்ஸ் தற்போதைய இயங்கும் நிகழ்வை அணுகுவதற்கு சிங்கிள்டன் பேட்டர்ன், வேலை உள்ளமைவுகள் மற்றும் அமைப்புகளை கையாள அனுமதிக்கிறது. |
| Thread.currentThread().executable | ஜென்கின்ஸ் ஸ்கிரிப்ட் பைப்லைனில் தற்போது இயங்கும் உருவாக்கம் அல்லது வேலையைப் பற்றிய குறிப்பைப் பெற, பெரும்பாலும் டைனமிக் கையாளுதலுக்காகப் பயன்படுத்தப்படுகிறது. |
| hudson.util.RemotingDiagnostics | ரிமோட் ஜென்கின்ஸ் நோட்களில் க்ரூவி ஸ்கிரிப்ட்களை செயல்படுத்த அனுமதிக்கிறது, முதன்மையாக ஸ்கிரிப்ட்டுகளுக்குள் கண்டறியும் நோக்கங்களுக்காகப் பயன்படுத்தப்படுகிறது. |
| Transport.send(message) | JavaMail API இன் ஒரு பகுதியானது ஸ்கிரிப்ட்டில் தயாரிக்கப்பட்ட மின்னஞ்சல் செய்தியை அனுப்ப பயன்படுகிறது, இது அறிவிப்பு அமைப்புகளுக்கு அவசியம். |
ஸ்கிரிப்ட் செயல்படுத்தல் விளக்கம்
வழங்கப்பட்ட ஸ்கிரிப்டுகள், ஜென்கின்ஸில் உள்ள விரிவான அறிக்கைகளிலிருந்து சோதனைத் தரவைத் தானாகப் பிரித்தெடுக்கும் வகையில் வடிவமைக்கப்பட்டுள்ளன மற்றும் தொடர்ச்சியான ஒருங்கிணைப்பு பின்னூட்ட சுழற்சியின் ஒரு பகுதியாக இந்தத் தரவை மின்னஞ்சல் வழியாக அனுப்புகிறது. முதல் முக்கியமான கட்டளை , ஜென்கின்ஸ் சூழலில் JSON தரவைப் பாகுபடுத்துவதற்கு இது அவசியம். இது JSON பதில்கள் அல்லது கோப்புகளை திறமையாக கையாள ஸ்கிரிப்டை அனுமதிக்கிறது, JSON இல் வடிவமைக்கப்பட்ட சோதனை முடிவுகளை விரிவான அறிக்கைகளிலிருந்து பிரித்தெடுப்பதற்கு இது முக்கியமானது. பயன்படுத்தப்படும் மற்றொரு முக்கிய கட்டளை , இது Jenkins இல் ஹோஸ்ட் செய்யப்பட்ட விரிவான அறிக்கைகளின் HTML அறிக்கையை அணுகுகிறது. இந்தக் கட்டளையானது HTML உள்ளடக்கத்தை எளிய உரையாகப் பெறுகிறது, மொத்த சோதனைகள், தேர்ச்சி பெற்ற மற்றும் தோல்வியுற்ற சோதனைகள் போன்ற தேவையான தரவை ஸ்க்ரிப் செய்ய ஸ்கிரிப்ட் உதவுகிறது.
தரவு பிரித்தெடுத்தல் HTML உரையில் குறிப்பிட்ட வடிவங்களைக் கண்டறிய வழக்கமான வெளிப்பாடுகளைப் பயன்படுத்துவதன் மூலம் மேலும் நிர்வகிக்கப்படுகிறது, மொத்த, தேர்ச்சி பெற்ற மற்றும் தோல்வியுற்ற சோதனைகளுடன் தொடர்புடைய எண்களைக் கண்டறிகிறது. தி கட்டளையானது தற்போதைய ஜென்கின்ஸ் நிகழ்வைக் குறிப்பிடப் பயன்படுகிறது, இது பல்வேறு வேலை விவரங்களைப் பெறவும், நிரல் முறையில் அமைப்புகளை உள்ளமைக்கவும் அவசியம். தரவு பிரித்தெடுத்த பிறகு, ஸ்கிரிப்ட் பயன்படுத்துகிறது கட்டமைக்கப்பட்ட மின்னஞ்சலை அனுப்ப JavaMail API இலிருந்து. பிரித்தெடுக்கப்பட்ட சோதனை முடிவுகளுடன் மின்னஞ்சல் அறிவிப்புகளை அனுப்புவதற்கு இந்தக் கட்டளை முக்கியமானது, பங்குதாரர்கள் நேரடியாக மின்னஞ்சல் வழியாக சமீபத்திய சோதனை முடிவுகளுடன் புதுப்பிக்கப்படுவதை உறுதிசெய்து, அதன் மூலம் வளர்ச்சி சுழற்சிகளில் தகவல் தொடர்பு மற்றும் பதில் நேரங்களை மேம்படுத்துகிறது.
ஜென்கின்ஸில் உள்ள விரிவான அறிக்கைகளிலிருந்து தரவைப் பிரித்தெடுத்தல்
ஜென்கின்ஸ் பைப்லைன்களுக்கான ஜாவா மற்றும் க்ரூவி ஸ்கிரிப்டிங்
import hudson.model.*import hudson.util.RemotingDiagnosticsimport groovy.json.JsonSlurperdef extractData() {def build = Thread.currentThread().executabledef reportUrl = "${build.getProject().url}${build.number}/HTML_20Report/index.html"def jenkinsConsole = new URL(reportUrl).textdef matcher = jenkinsConsole =~ "<span class=\\"param_name\\">\\s*Total Tests:\\s*</span>(\\d+)</br>"def totalTests = matcher ? Integer.parseInt(matcher[0][1]) : 0matcher = jenkinsConsole =~ "<span class=\\"param_name\\">\\s*Passed Tests:\\s*</span>(\\d+)</br>"def passedTests = matcher ? Integer.parseInt(matcher[0][1]) : 0matcher = jenkinsConsole =~ "<span class=\\"param_name\\">\\s*Failed Tests:\\s*</span>(\\d+)</br>"def failedTests = matcher ? Integer.parseInt(matcher[0][1]) : 0return [totalTests, passedTests, failedTests]}def sendEmail(testResults) {def emailExt = Jenkins.instance.getExtensionList('hudson.tasks.MailSender')[0]def emailBody = "Total Tests: ${testResults[0]}, Passed: ${testResults[1]}, Failed: ${testResults[2]}"emailExt.sendMail(emailBody, "jenkins@example.com", "Test Report Summary")}def results = extractData()sendEmail(results)
ஜென்கின்ஸ் மின்னஞ்சல் அறிவிப்புகளை மேம்படுத்த ஸ்கிரிப்ட்
ஜென்கின்ஸ் பிந்தைய உருவாக்க செயல்களில் க்ரூவியைப் பயன்படுத்துதல்
import groovy.json.JsonSlurperimport jenkins.model.Jenkinsimport javax.mail.Messageimport javax.mail.Transportimport javax.mail.internet.InternetAddressimport javax.mail.internet.MimeMessagedef fetchReportData() {def job = Jenkins.instance.getItemByFullName("YourJobName")def lastBuild = job.lastBuilddef reportUrl = "${lastBuild.url}HTML_20Report/index.html"new URL(reportUrl).withReader { reader ->def data = reader.textdef jsonSlurper = new JsonSlurper()def object = jsonSlurper.parseText(data)return object}}def sendNotification(buildData) {def session = Jenkins.instance.getMailSession()def message = new MimeMessage(session)message.setFrom(new InternetAddress("jenkins@example.com"))message.setRecipients(Message.RecipientType.TO, "developer@example.com")message.setSubject("Automated Test Results")message.setText("Test Results: ${buildData.totalTests} Total, ${buildData.passed} Passed, ${buildData.failed} Failed.")Transport.send(message)}def reportData = fetchReportData()sendNotification(reportData)
ஜென்கின்ஸ் மூலம் தானியங்கு அறிக்கையிடலில் மேம்பாடுகள்
விரிவான அறிக்கைகளைப் பயன்படுத்தி ஜென்கின்ஸில் தானியங்கி தரவு பிரித்தெடுத்தல் மற்றும் மின்னஞ்சல் அறிவிப்புகளை செயல்படுத்துவது தொடர்ச்சியான ஒருங்கிணைப்பு (CI) செயல்முறையை கணிசமாக மேம்படுத்துகிறது. இந்த முறையானது சரியான நேரத்தில் புதுப்பிப்புகளை உறுதி செய்வதோடு மட்டுமல்லாமல், உடனடி சோதனை முடிவுகளை பங்குதாரர்களுக்கு வழங்குவதன் மூலம் செயலில் சிக்கலைத் தீர்க்கவும் உதவுகிறது. இந்த செயல்முறையானது, ஒரே இரவில் தானியங்கு சோதனைகளை திட்டமிடுவதற்கும் இயக்குவதற்கும் ஜென்கின்ஸின் திறன்களைப் பயன்படுத்துகிறது, பின்னர் அவை எக்ஸ்டென்ட் ரிப்போர்ட்டரால் உருவாக்கப்பட்ட HTML அறிக்கைகளிலிருந்து நேரடியாக மொத்த சோதனைகள், பாஸ்கள் மற்றும் தோல்விகள் போன்ற முக்கிய அளவீடுகளைப் பிரித்தெடுக்க பாகுபடுத்தப்படுகின்றன.
இந்த தானியங்கி பிரித்தெடுத்தல் மற்றும் அறிக்கையிடல் சுறுசுறுப்பான வளர்ச்சி சூழல்களுக்கு அவசியமான பின்னூட்ட பொறிமுறையை நெறிப்படுத்துகிறது. Jenkins உடன் விரிவான அறிக்கைகளை ஒருங்கிணைப்பதன் மூலம், குழுக்கள் சோதனை முடிவுகளை சிறப்பாக நிர்வகிக்க முடியும் மற்றும் தொடர்ச்சியான கண்காணிப்பு மற்றும் மதிப்பீட்டின் மூலம் உயர் தரமான குறியீட்டு தரத்தை பராமரிக்க முடியும். இந்தச் செயல்பாடுகள் திறமையான மேம்பாட்டுக் குழாயைப் பராமரிப்பதிலும், அனைத்து குழு உறுப்பினர்களும் சமீபத்திய சோதனை முடிவுகள் மற்றும் திட்ட நிலைகளுடன் இணைந்திருப்பதை உறுதி செய்வதிலும் முக்கியமானவை.
- ஒரு கட்டத்திற்குப் பிறகு மின்னஞ்சலை அனுப்ப ஜென்கின்ஸை எவ்வாறு கட்டமைப்பது?
- மின்னஞ்சல் அறிவிப்பு விருப்பத்தைப் பயன்படுத்தி, உங்கள் வேலை உள்ளமைவின் பிந்தைய உருவாக்க நடவடிக்கைகளில் இதை உள்ளமைக்கலாம்.
- ஜென்கின்ஸ் சூழலில் விரிவான அறிக்கைகள் என்றால் என்ன?
- Extent Reports என்பது ஒரு திறந்த மூல அறிக்கையிடல் கருவியாகும், இது தன்னியக்க சோதனைகளில் ஊடாடும் மற்றும் விரிவான அறிக்கைகளை வழங்குகிறது, இது ஜென்கின்ஸ் பைப்லைன்களில் எளிதாக ஒருங்கிணைக்கப்படுகிறது.
- விரிவான அறிக்கைகள் தவிர மற்ற அறிக்கையிடல் கருவிகளுடன் ஜென்கின்ஸ் ஒருங்கிணைக்க முடியுமா?
- ஆம், JUnit, TestNG போன்ற பல அறிக்கையிடல் கருவிகளுடன் தொடர்புடைய செருகுநிரல்களைப் பயன்படுத்தி ஜென்கின்ஸ் ஒருங்கிணைப்பை ஆதரிக்கிறது.
- ஜென்கின்ஸில் உள்ள HTML அறிக்கையிலிருந்து சோதனைத் தரவை எவ்வாறு பிரித்தெடுப்பது?
- HTML உள்ளடக்கத்தை அலசுவதற்கும் தேவையான தரவைப் பிரித்தெடுப்பதற்கும் ஜென்கின்ஸில் உள்ள Groovy அல்லது Python ஸ்கிரிப்டிங்கைப் பயன்படுத்துகிறீர்கள்.
- Jenkins இல் தானியங்கி மின்னஞ்சல் அறிவிப்புகளின் நன்மைகள் என்ன?
- தானியங்கு மின்னஞ்சல்கள் உருவாக்கம் மற்றும் சோதனை நிலைகள் பற்றிய உடனடி கருத்துக்களை வழங்குகின்றன, குழுக்களுக்கு சிக்கல்களை விரைவாக தீர்க்கவும், தொடர்ச்சியான வரிசைப்படுத்தல் பணிப்பாய்வுகளை பராமரிக்கவும் உதவுகின்றன.
விரிவான அறிக்கைகளிலிருந்து சோதனை அளவீடுகளைப் பிரித்தெடுப்பதை தானியக்கமாக்குவது மற்றும் ஜென்கின்ஸ் மின்னஞ்சல் அறிவிப்புகளில் இவற்றை ஒருங்கிணைப்பது CI பைப்லைனுக்குள் கண்காணிப்பு திறன்களை கணிசமாக மேம்படுத்துகிறது. இந்த அணுகுமுறையானது சோதனை முடிவுகளைப் பற்றிய சரியான நேரத்தில் அறிவிப்புகளைப் பெறவும், தோல்விகளைச் சரிசெய்வதற்கும் குறியீட்டை மேம்படுத்துவதற்கும் விரைவான செயல்களை ஊக்குவிக்கும். நெறிப்படுத்தப்பட்ட செயல்முறையானது நேரத்தை மிச்சப்படுத்துவதோடு மட்டுமல்லாமல், அனைத்து பங்குதாரர்களும் இரவுநேர கட்டுமானத்தின் நிலையைப் பற்றி உடனடியாகத் தெரிவிக்கப்படுவதை உறுதி செய்வதன் மூலம் வள ஒதுக்கீட்டை மேம்படுத்துகிறது, இதனால் பின்னூட்டம் மற்றும் வளர்ச்சியின் தொடர்ச்சியான சுழற்சியைப் பராமரிக்கிறது.