டெவலப்பர்களுக்கான CI சேவையாக சுமை சோதனை

டெவலப்பர்களுக்கான CI சேவையாக சுமை சோதனை

பல தயாரிப்பு மென்பொருள் விற்பனையாளர்கள் அடிக்கடி எதிர்கொள்ளும் பிரச்சனைகளில் ஒன்று, கிட்டத்தட்ட ஒவ்வொரு குழுவிலும் உள்ள பொறியாளர்கள் - டெவலப்பர்கள், சோதனையாளர்கள் மற்றும் உள்கட்டமைப்பு நிர்வாகிகளின் திறன்களின் நகல் ஆகும். இது விலையுயர்ந்த பொறியாளர்களுக்கும் பொருந்தும் - சுமை சோதனை துறையில் நிபுணர்கள்.

தங்களுடைய நேரடிக் கடமைகளைச் செய்வதற்குப் பதிலாக, சுமை சோதனைச் செயல்முறையை உருவாக்க, தங்களின் தனித்துவமான அனுபவத்தைப் பயன்படுத்துவதற்குப் பதிலாக, ஒரு முறை, உகந்த அளவீடுகள் மற்றும் சுமை சுயவிவரங்களுக்கு ஏற்ப தன்னியக்க சோதனைகளை எழுதுதல், பொறியாளர்கள் பெரும்பாலும் சோதனை உள்கட்டமைப்பை புதிதாக வரிசைப்படுத்த வேண்டும், சுமை கருவிகளை உள்ளமைக்க வேண்டும் மற்றும் அவற்றை உட்பொதிக்க வேண்டும். CI அமைப்புகளில் தங்களைக் கண்காணித்து அறிக்கைகளை வெளியிடுகின்றனர்.

பாசிட்டிவ் டெக்னாலஜிஸ் இல் நாங்கள் பயன்படுத்தும் சோதனையில் சில நிறுவன சிக்கல்களுக்கான தீர்வுகளை நீங்கள் காணலாம் மற்றொரு கட்டுரை. மேலும் இதில், "ஒரு சேவையாக சுமை சோதனை" (ஒரு சேவையாக சுமை சோதனை) என்ற கருத்தைப் பயன்படுத்தி ஒரு பொதுவான CI பைப்லைனில் சுமை சோதனைகளை ஒருங்கிணைப்பதற்கான சாத்தியம் பற்றி பேசுவேன். CI பைப்லைனில் எப்படி, எந்த லோட் ஆதாரங்களின் டாக்கர் படங்களைப் பயன்படுத்தலாம் என்பதை நீங்கள் அறிந்து கொள்வீர்கள்; பில்ட் டெம்ப்ளேட்டைப் பயன்படுத்தி உங்கள் CI திட்டத்திற்கு ஏற்ற ஆதாரங்களை எவ்வாறு இணைப்பது; சுமை சோதனைகளை இயக்குவதற்கும் முடிவுகளை வெளியிடுவதற்கும் டெமோ பைப்லைன் எப்படி இருக்கும். CI இல் உள்ள மென்பொருள் சோதனை பொறியாளர்கள் மற்றும் ஆட்டோமேஷன் பொறியாளர்கள் தங்கள் சுமை அமைப்பின் கட்டமைப்பைப் பற்றி சிந்திக்கும் கட்டுரை பயனுள்ளதாக இருக்கும்.

கருத்தின் சாராம்சம்

ஒரு சேவையாக சுமை சோதனையின் கருத்து, சுமை கருவிகளான Apache JMeter, Yandex.Tank மற்றும் உங்கள் சொந்த கட்டமைப்புகளை தன்னிச்சையான தொடர்ச்சியான ஒருங்கிணைப்பு அமைப்பில் ஒருங்கிணைக்கும் திறனைக் குறிக்கிறது. டெமோ GitLab CIக்கானதாக இருக்கும், ஆனால் கொள்கைகள் அனைத்து CI அமைப்புகளுக்கும் பொதுவானவை.

ஒரு சேவையாக சுமை சோதனை என்பது சுமை சோதனைக்கான மையப்படுத்தப்பட்ட சேவையாகும். சுமை சோதனைகள் பிரத்யேக முகவர் குளங்களில் இயக்கப்படுகின்றன, முடிவுகள் தானாகவே GitLab பக்கங்கள், Influx DB மற்றும் Grafana அல்லது சோதனை அறிக்கையிடல் அமைப்புகளில் (TestRail, ReportPortal, முதலியன) வெளியிடப்படும். தன்னியக்கவாக்கம் மற்றும் அளவிடுதல் ஆகியவை முடிந்தவரை எளிமையாக செயல்படுத்தப்படுகின்றன - GitLab CI திட்டத்தில் வழக்கமான gitlab-ci.yml டெம்ப்ளேட்டைச் சேர்ப்பதன் மூலம் மற்றும் அளவுருவாக்குவதன் மூலம்.

இந்த அணுகுமுறையின் நன்மை என்னவென்றால், முழு CI உள்கட்டமைப்பு, சுமை முகவர்கள், சுமை ஆதாரங்களின் டாக்கர் படங்கள், சோதனை குழாய்கள் மற்றும் வெளியீட்டு அறிக்கைகள் ஆகியவை மையப்படுத்தப்பட்ட ஆட்டோமேஷன் துறையால் (DevOps பொறியாளர்கள்) பராமரிக்கப்படுகின்றன, அதே நேரத்தில் சுமை சோதனை பொறியாளர்கள் தங்கள் முயற்சிகளை சோதனை மேம்பாட்டில் கவனம் செலுத்த முடியும். மற்றும் உள்கட்டமைப்பு சிக்கல்களைக் கையாளாமல், அவற்றின் முடிவுகளின் பகுப்பாய்வு.

விளக்கத்தின் எளிமைக்காக, சோதனையின் கீழ் உள்ள இலக்கு பயன்பாடு அல்லது சேவையகம் ஏற்கனவே வரிசைப்படுத்தப்பட்டு முன்கூட்டியே கட்டமைக்கப்பட்டுள்ளது என்று கருதுவோம் (பைதான், சால்ட்ஸ்டாக், அன்சிபிள் போன்றவற்றில் தானியங்கு ஸ்கிரிப்டுகள் இதற்குப் பயன்படுத்தப்படலாம்). ஒரு சேவையாக சுமை சோதனையின் முழு கருத்தும் மூன்று நிலைகளில் பொருந்துகிறது: தயாரித்தல், சோதனை செய்தல், அறிக்கைகளை வெளியிடுதல். வரைபடத்தில் மேலும் விவரங்கள் (அனைத்து படங்களும் கிளிக் செய்யக்கூடியவை):

டெவலப்பர்களுக்கான CI சேவையாக சுமை சோதனை

சுமை சோதனையில் அடிப்படை கருத்துகள் மற்றும் வரையறைகள்

சுமை சோதனைகளை மேற்கொள்ளும்போது, ​​நாங்கள் கடைபிடிக்க முயற்சிக்கிறோம் ISTQB தரநிலைகள் மற்றும் முறை, பொருத்தமான சொற்களஞ்சியம் மற்றும் பரிந்துரைக்கப்பட்ட அளவீடுகளைப் பயன்படுத்தவும். சுமை சோதனையின் முக்கிய கருத்துக்கள் மற்றும் வரையறைகளின் குறுகிய பட்டியலை நான் தருகிறேன்.

சுமை முகவர் - பயன்பாடு தொடங்கப்படும் ஒரு மெய்நிகர் இயந்திரம் - சுமை ஆதாரம் (Apache JMeter, Yandex.Tank அல்லது சுயமாக எழுதப்பட்ட சுமை தொகுதி).

சோதனை இலக்கு (இலக்கு) - சேவையகத்தில் நிறுவப்பட்ட சேவையகம் அல்லது பயன்பாடு ஏற்றப்படும்.

சோதனை காட்சி (சோதனை வழக்கு) - அளவுருப்படுத்தப்பட்ட படிகளின் தொகுப்பு: குறிப்பிட்ட அளவுருக்களைப் பொறுத்து நிலையான நெட்வொர்க் கோரிக்கைகள் மற்றும் பதில்களுடன், பயனர் செயல்கள் மற்றும் இந்த செயல்களுக்கான எதிர்பார்க்கப்படும் எதிர்வினைகள்.

சுயவிவரம் அல்லது ஏற்றத் திட்டம் (சுயவிவரம்) - இல் ISTQB முறை (பிரிவு 4.2.4, ப. 43) சுமை சுயவிவரங்கள் ஒரு குறிப்பிட்ட சோதனைக்கு முக்கியமான அளவீடுகள் மற்றும் சோதனையின் போது சுமை அளவுருக்களை மாற்றுவதற்கான விருப்பங்களை வரையறுக்கின்றன. சுயவிவரங்களின் எடுத்துக்காட்டுகளை படத்தில் காணலாம்.

டெவலப்பர்களுக்கான CI சேவையாக சுமை சோதனை

சோதனை — முன்னரே தீர்மானிக்கப்பட்ட அளவுருக்கள் கொண்ட ஸ்கிரிப்ட்.

சோதனைத் திட்டம் (சோதனைத் திட்டம்) - சோதனைகளின் தொகுப்பு மற்றும் சுமை சுயவிவரம்.

டெஸ்ட்ரான் (டெஸ்ட்ரன்) - முழுமையாக செயல்படுத்தப்பட்ட சுமை காட்சி மற்றும் பெறப்பட்ட அறிக்கையுடன் ஒரு சோதனையை இயக்குவதற்கான ஒரு மறு செய்கை.

நெட்வொர்க் கோரிக்கை (கோரிக்கை) - ஒரு முகவரிடமிருந்து இலக்குக்கு அனுப்பப்பட்ட HTTP கோரிக்கை.

நெட்வொர்க் பதில் (பதில்) - இலக்கிலிருந்து முகவருக்கு HTTP பதில் அனுப்பப்பட்டது.
HTTP மறுமொழி குறியீடு (HTTP பதில்களின் நிலை) - பயன்பாட்டு சேவையகத்திலிருந்து நிலையான மறுமொழி குறியீடு.
பரிவர்த்தனை என்பது ஒரு முழுமையான கோரிக்கை-பதில் சுழற்சி. ஒரு பரிவர்த்தனை ஒரு கோரிக்கையை (கோரிக்கை) அனுப்பும் தொடக்கத்திலிருந்து பதில் (பதில்) பெறும் வரை கணக்கிடப்படுகிறது.

பரிவர்த்தனை நிலை - கோரிக்கை-பதில் சுழற்சியை வெற்றிகரமாக முடிக்க முடியுமா. இந்த சுழற்சியில் ஏதேனும் பிழை இருந்தால், முழு பரிவர்த்தனையும் தோல்வியுற்றதாகக் கருதப்படுகிறது.

மறுமொழி நேரம் (தாமதம்) - ஒரு கோரிக்கை (கோரிக்கை) அனுப்பும் முடிவில் இருந்து பதில் (பதில்) பெறுவதற்கான ஆரம்பம் வரையிலான நேரம்.

ஏற்ற அளவீடுகள் - ஏற்றப்பட்ட சேவையின் பண்புகள் மற்றும் சுமை சோதனையின் செயல்பாட்டில் தீர்மானிக்கப்படும் சுமை முகவர்.

சுமை அளவுருக்களை அளவிடுவதற்கான அடிப்படை அளவீடுகள்

முறையியலில் மிகவும் பொதுவாகப் பயன்படுத்தப்படும் மற்றும் பரிந்துரைக்கப்படும் சில ISTQB (பக்கம் 36, 52) அளவீடுகள் கீழே உள்ள அட்டவணையில் காட்டப்பட்டுள்ளன. முகவர் மற்றும் இலக்குக்கான ஒத்த அளவீடுகள் ஒரே வரியில் பட்டியலிடப்பட்டுள்ளன.

சுமை முகவருக்கான அளவீடுகள்
சுமையின் கீழ் சோதிக்கப்படும் இலக்கு அமைப்பு அல்லது பயன்பாட்டின் அளவீடுகள்

எண்ணிக்கை  vCPU மற்றும் நினைவகம் ரேம்,
வட்டு - சுமை முகவரின் "இரும்பு" பண்புகள்
சிபியு, நினைவகம், வட்டு பயன்பாடு - CPU, நினைவகம் மற்றும் வட்டு ஏற்றுதல் ஆகியவற்றின் இயக்கவியல்
சோதனை செயல்பாட்டில். பொதுவாக ஒரு சதவீதமாக அளவிடப்படுகிறது
கிடைக்கக்கூடிய அதிகபட்ச மதிப்புகள்

பிணைய செயல்திறன் (சுமை முகவர் மீது) - செயல்திறன்
சேவையகத்தில் பிணைய இடைமுகம்,
சுமை முகவர் நிறுவப்பட்ட இடத்தில்.
பொதுவாக வினாடிக்கு பைட்டுகளில் அளவிடப்படுகிறது (பிபிஎஸ்)
பிணைய செயல்திறன்(இலக்கு) - பிணைய இடைமுக அலைவரிசை
இலக்கு சேவையகத்தில். பொதுவாக வினாடிக்கு பைட்டுகளில் அளவிடப்படுகிறது (பிபிஎஸ்)

மெய்நிகர் பயனர்கள்- மெய்நிகர் பயனர்களின் எண்ணிக்கை,
சுமை காட்சிகளை செயல்படுத்துதல் மற்றும்
உண்மையான பயனர் செயல்களைப் பின்பற்றுகிறது
மெய்நிகர் பயனர்களின் நிலை, தேர்ச்சி/தோல்வி/மொத்தம் - வெற்றி பெற்றவர்களின் எண்ணிக்கை மற்றும்
மெய்நிகர் பயனர்களின் தோல்வியுற்ற நிலைகள்
சுமை காட்சிகள், அத்துடன் அவற்றின் மொத்த எண்ணிக்கை.

அனைத்து பயனர்களும் முடிக்க முடியும் என்று பொதுவாக எதிர்பார்க்கப்படுகிறது
உங்கள் அனைத்து பணிகளும் சுமை சுயவிவரத்தில் குறிப்பிடப்பட்டுள்ளன.
எந்தவொரு பிழையும் உண்மையான பயனரால் முடியாது என்று அர்த்தம்
கணினியுடன் பணிபுரியும் போது உங்கள் சிக்கலை தீர்க்கவும்

வினாடிக்கான கோரிக்கைகள் (நிமிடம்)- வினாடிக்கு நெட்வொர்க் கோரிக்கைகளின் எண்ணிக்கை (அல்லது நிமிடம்).

ஒரு லோட் ஏஜெண்டின் முக்கியமான பண்பு, அது எத்தனை கோரிக்கைகளை உருவாக்க முடியும் என்பதுதான்.
உண்மையில், இது மெய்நிகர் பயனர்களால் பயன்பாட்டிற்கான அணுகலைப் பின்பற்றுவதாகும்
வினாடிக்கான பதில்கள் (நிமிடம்)
- வினாடிக்கு (அல்லது நிமிடத்திற்கு) நெட்வொர்க் பதில்களின் எண்ணிக்கை.

இலக்கு சேவையின் ஒரு முக்கிய பண்பு: எவ்வளவு
உடன் வினவல்களுக்கு பதில்களை உருவாக்கி அனுப்பவும்
ஏற்றும் முகவர்

HTTP மறுமொழி நிலைவெவ்வேறு பதில் குறியீடுகளின் எண்ணிக்கை
சுமை முகவரால் பெறப்பட்ட பயன்பாட்டு சேவையகத்திலிருந்து.
எடுத்துக்காட்டாக, 200 சரி என்பது வெற்றிகரமான அழைப்பைக் குறிக்கிறது.
மற்றும் 404 - ஆதாரம் கிடைக்கவில்லை என்று

தாமதத்தைத் (மறுமொழி நேரம்) - முடிவில் இருந்து நேரம்
பதில் (பதில்) பெறத் தொடங்கும் முன் கோரிக்கை (கோரிக்கை) அனுப்புதல்.
பொதுவாக மில்லி விநாடிகளில் (மி.வி) அளவிடப்படுகிறது

பரிவர்த்தனை மறுமொழி நேரம்- ஒரு முழுமையான பரிவர்த்தனை நேரம்,
கோரிக்கை-பதில் சுழற்சியை நிறைவு செய்தல்.
கோரிக்கையை (கோரிக்கை) அனுப்பும் தொடக்கத்திலிருந்து இதுவே நேரம்
பதில் (பதில்) பெறும் வரை.

பரிவர்த்தனை நேரத்தை வினாடிகளில் (அல்லது நிமிடங்களில்) அளவிடலாம்
பல வழிகளில்: குறைந்தபட்சம் கருதுங்கள்,
அதிகபட்சம், சராசரி மற்றும், எடுத்துக்காட்டாக, 90வது சதவீதம்.
குறைந்தபட்ச மற்றும் அதிகபட்ச அளவீடுகள் தீவிரமானவை
கணினி செயல்திறன் நிலை.
தொண்ணூறு சதவிகிதம் பொதுவாகப் பயன்படுத்தப்படுகிறது,
இது பெரும்பாலான பயனர்களைக் காட்டுகிறது,
கணினி செயல்திறனின் வாசலில் வசதியாக இயங்குகிறது

வினாடிக்கான பரிவர்த்தனைகள் (நிமிடம்) - முழுமையான எண்ணிக்கை
வினாடிக்கு பரிவர்த்தனைகள் (நிமிடம்),
அதாவது, விண்ணப்பத்தை எவ்வளவு ஏற்றுக்கொள்ள முடிந்தது மற்றும்
செயல்முறை கோரிக்கைகள் மற்றும் பதில்களை வழங்குதல்.
உண்மையில், இது அமைப்பின் செயல்திறன் ஆகும்

பரிவர்த்தனை நிலை , தேர்ச்சி / தோல்வி / மொத்தம் - எண்
வெற்றிகரமான, தோல்வியுற்ற மற்றும் பரிவர்த்தனைகளின் மொத்த எண்ணிக்கை.

உண்மையான பயனர்களுக்கு தோல்வி
பரிவர்த்தனை உண்மையில் அர்த்தம்
சுமையின் கீழ் கணினியுடன் வேலை செய்ய இயலாமை

சுமை சோதனை திட்ட வரைபடம்

சுமை சோதனையின் கருத்து மிகவும் எளிமையானது மற்றும் நான் ஏற்கனவே குறிப்பிட்டுள்ள மூன்று முக்கிய நிலைகளைக் கொண்டுள்ளது: தயார்-சோதனை-அறிக்கை, அதாவது, சோதனை இலக்குகளைத் தயாரித்தல் மற்றும் சுமை ஆதாரங்களுக்கான அளவுருக்களை அமைத்தல், பின்னர் சுமை சோதனைகளை செயல்படுத்துதல் மற்றும் இறுதியில், ஒரு சோதனை அறிக்கையை உருவாக்குதல் மற்றும் வெளியிடுதல்.

டெவலப்பர்களுக்கான CI சேவையாக சுமை சோதனை

திட்ட குறிப்புகள்:

  • QA.Tester சுமை சோதனையில் நிபுணர்,
  • Target என்பது இலக்கு பயன்பாடாகும், அதற்கான சுமையின் கீழ் அதன் நடத்தையை நீங்கள் அறிய விரும்புகிறீர்கள்.

வரைபடத்தில் உள்ள நிறுவனங்கள், நிலைகள் மற்றும் படிகளின் வகைப்படுத்தி

நிலைகள் மற்றும் படிகள்
என்ன நடக்கிறது
நுழைவாயிலில் என்ன இருக்கிறது
வெளியீடு என்ன

தயார்: சோதனைக்கான தயாரிப்பு நிலை

ஏற்ற அளவுருக்கள்
அமைத்தல் மற்றும் துவக்குதல்
பயனர்
ஏற்ற அளவுருக்கள்,
அளவீடுகளின் தேர்வு மற்றும்
சோதனை திட்டம் தயாரித்தல்
(சுயவிவரத்தை ஏற்றவும்)
விருப்ப விருப்பங்கள்
சுமை முகவர் துவக்கம்
சோதனை திட்டம்
சோதனையின் நோக்கம்

VM
கிளவுட் வரிசைப்படுத்தல்
மெய்நிகர் இயந்திரத்துடன்
தேவையான பண்புகள்
சுமை முகவருக்கான VM அமைப்புகள்
ஆட்டோமேஷன் ஸ்கிரிப்ட்கள்
VM உருவாக்கம்
VM உள்ளமைக்கப்பட்டது
மேகம்

என்.வி.
OS அமைப்பு மற்றும் தயாரிப்பு
சூழல்
சுமை முகவர் வேலை
சுற்றுச்சூழல் அமைப்புகள்
சுமை முகவர்
ஆட்டோமேஷன் ஸ்கிரிப்ட்கள்
சுற்றுச்சூழல் அமைப்புகள்
தயாரிக்கப்பட்ட சூழல்:
OS, சேவைகள் மற்றும் பயன்பாடுகள்,
வேலைக்கு அவசியம்
சுமை முகவர்

LoadAgents
நிறுவல், கட்டமைப்பு மற்றும் அளவுருவாக்கம்
ஏற்றுதல் முகவர்.
அல்லது டோக்கர் படத்தைப் பதிவிறக்குகிறது
முன்பே கட்டமைக்கப்பட்ட சுமை ஆதாரம்
மூல டோக்கர் படத்தை ஏற்றவும்
(YAT, JM அல்லது சுயமாக எழுதப்பட்ட கட்டமைப்பு)
அமைப்புகள்
சுமை முகவர்
அமைத்து தயார்
சுமை முகவர் வேலை செய்ய

சோதனை: சுமை சோதனைகளை நிறைவேற்றும் நிலை. ஆதாரங்கள் என்பது GitLab CIக்கான பிரத்யேக முகவர் குளங்களில் பயன்படுத்தப்படும் சுமை முகவர்கள்

சுமை
சுமை முகவரைத் தொடங்குதல்
தேர்ந்தெடுக்கப்பட்ட சோதனைத் திட்டத்துடன்
மற்றும் ஏற்ற அளவுருக்கள்
பயனர் விருப்பங்கள்
துவக்கத்திற்காக
சுமை முகவர்
சோதனை திட்டம்
சோதனையின் நோக்கம்
செயல்படுத்தல் பதிவுகள்
சுமை சோதனைகள்
கணினி பதிவுகள்
இலக்கு அளவீடுகள் மற்றும் சுமை முகவர் மாற்றங்களின் இயக்கவியல்

முகவர்களை இயக்கவும்
முகவர் செயல்படுத்தல்
நிறைய சோதனை ஸ்கிரிப்ட்கள்
இணங்க
சுயவிவரத்தை ஏற்றவும்
சுமை முகவர் தொடர்பு
சோதனை நோக்கத்திற்காக
சோதனை திட்டம்
சோதனையின் நோக்கம்

பதிவுகள்
"பச்சை" பதிவுகள் சேகரிப்பு
சுமை சோதனையின் போது:
சுமை முகவர் செயல்பாடு பதிவுகள்,
சோதனை இலக்கின் நிலை
மற்றும் முகவரை இயக்கும் VM

செயல்படுத்தல் பதிவுகள்
சுமை சோதனைகள்
கணினி பதிவுகள்

மெட்ரிக்ஸ்
சோதனையின் போது "மூல" அளவீடுகளை சேகரித்தல்

இலக்கு அளவீடுகளில் ஏற்படும் மாற்றங்களின் இயக்கவியல்
மற்றும் சுமை முகவர்

அறிக்கை: சோதனை அறிக்கை தயாரிப்பு நிலை

ஜெனரேட்டர்
செயலாக்கம் சேகரிக்கப்பட்டது
ஏற்றுதல் அமைப்பு மற்றும்
கண்காணிப்பு அமைப்பு "பச்சை"
அளவீடுகள் மற்றும் பதிவுகள்
ஒரு அறிக்கையை உருவாக்குதல்
மனிதனால் படிக்கக்கூடிய வடிவம்
உறுப்புகளுடன் சாத்தியம்
ஆய்வாளர்கள்
செயல்படுத்தல் பதிவுகள்
சுமை சோதனைகள்
கணினி பதிவுகள்
அளவீடுகளில் ஏற்படும் மாற்றங்களின் இயக்கவியல்
இலக்கு மற்றும் சுமை முகவர்
செயலாக்கப்பட்ட "மூல" பதிவுகள்
பொருத்தமான வடிவத்தில்
வெளிப்புற சேமிப்பகத்திற்கு பதிவேற்றுகிறது
நிலையான சுமை அறிக்கை,
மனிதனால் படிக்கக்கூடியது

வெளியிடு
அறிக்கை வெளியீடு
சுமை பற்றி
வெளிப்புற சோதனை
சேவை
பதப்படுத்தப்பட்ட "பச்சை"
பொருத்தமான வடிவத்தில் பதிவுகள்
வெளியில் இறக்குவதற்கு
பெட்டகங்கள்
வெளிப்புறத்தில் சேமிக்கப்பட்டது
சேமிப்பக அறிக்கைகள்
ஏற்ற, பொருத்தமானது
மனித பகுப்பாய்வுக்காக

CI டெம்ப்ளேட்டில் சுமை ஆதாரங்களை இணைக்கிறது

நடைமுறை பகுதிக்கு செல்லலாம். நிறுவனத்தின் சில திட்டப்பணிகள் எப்படி என்பதை நான் காட்ட விரும்புகிறேன் நேர்மறை தொழில்நுட்பங்கள் சுமை சோதனை என்ற கருத்தை ஒரு சேவையாக செயல்படுத்தியுள்ளோம்.

முதலில், எங்கள் DevOps இன்ஜினியர்களின் உதவியுடன், GitLab CI இல் சுமை சோதனைகளை இயக்குவதற்கு பிரத்யேக முகவர்களின் குழுவை உருவாக்கினோம். அசெம்பிளி பூல்கள் போன்ற பிறவற்றுடன் டெம்ப்ளேட்டுகளில் அவற்றைக் குழப்பாமல் இருக்க, இந்த ஏஜெண்டுகளுக்கு குறிச்சொற்களைச் சேர்த்துள்ளோம், குறிச்சொற்களை: சுமை. நீங்கள் வேறு எந்த புரிந்துகொள்ளக்கூடிய குறிச்சொற்களையும் பயன்படுத்தலாம். அவர்கள் கேட்கிறார்கள் பதிவின் போது GitLab CI ரன்னர்ஸ்.

வன்பொருள் மூலம் தேவையான சக்தியை எவ்வாறு கண்டுபிடிப்பது? லோட் ஏஜெண்டுகளின் பண்புகள் - போதுமான எண்ணிக்கையிலான vCPU, RAM மற்றும் Disk - டோக்கர், பைதான் (Yandex.Tank க்கு), GitLab CI ஏஜென்ட், Java (Apache JMeter க்கு) ஆகியவை ஏஜெண்டில் இயங்க வேண்டும் என்பதன் அடிப்படையில் கணக்கிடலாம். . JMeter இன் கீழ் Java க்கு, குறைந்தபட்சம் 512 MB RAM ஐப் பயன்படுத்தவும், மேல் வரம்பாகவும் பரிந்துரைக்கப்படுகிறது. 80% கிடைக்கும் நினைவகம்.

எனவே, எங்கள் அனுபவத்தின் அடிப்படையில், சுமை முகவர்களுக்காக குறைந்தபட்சம் 4 vCPUகள், 4 GB RAM, 60 GB SSD ஆகியவற்றைப் பயன்படுத்த பரிந்துரைக்கிறோம். பிணைய அட்டையின் செயல்திறன் சுமை சுயவிவரத்தின் தேவைகளின் அடிப்படையில் தீர்மானிக்கப்படுகிறது.

நாங்கள் முக்கியமாக இரண்டு சுமை ஆதாரங்களைப் பயன்படுத்துகிறோம் - Apache JMeter மற்றும் Yandex.Tank டாக்கர் படங்கள்.

Yandex.Tank சுமை சோதனைக்கான Yandex இலிருந்து ஒரு திறந்த மூல கருவியாகும். அதன் மட்டு கட்டமைப்பு, Phantom இன் உயர்-செயல்திறன் ஒத்திசைவற்ற ஹிட்-அடிப்படையிலான HTTP கோரிக்கை ஜெனரேட்டரை அடிப்படையாகக் கொண்டது. SSH நெறிமுறை மூலம் சோதனையின் கீழ் உள்ள சேவையகத்தின் வளங்களை தொட்டியில் உள்ளமைக்கப்பட்ட கண்காணிப்பு உள்ளது, குறிப்பிட்ட நிபந்தனைகளின் கீழ் தானாகவே சோதனையை நிறுத்தலாம், முடிவுகளை கன்சோலிலும் வரைபட வடிவத்திலும் காண்பிக்கலாம், உங்கள் தொகுதிகளை இணைக்கலாம். அதன் செயல்பாட்டை விரிவாக்க. சொல்லப்போனால், டேங்க் இன்னும் முக்கிய நீரோட்டத்தில் இல்லாதபோது அதைப் பயன்படுத்தினோம். கட்டுரையில் "Yandex.Tank மற்றும் சுமை சோதனை ஆட்டோமேஷன்» 2013 இல் நாங்கள் சுமை சோதனையை எவ்வாறு செய்தோம் என்ற கதையை நீங்கள் படிக்கலாம் PT பயன்பாட்டு ஃபயர்வால் எங்கள் நிறுவனத்தின் தயாரிப்புகளில் ஒன்றாகும்.

அப்பாச்சி ஜேமீட்டர் Apache இலிருந்து ஒரு திறந்த மூல சுமை சோதனை கருவியாகும். நிலையான மற்றும் டைனமிக் இணைய பயன்பாடுகளை சோதிக்க இது சமமாக பயன்படுத்தப்படலாம். JMeter ஏராளமான நெறிமுறைகள் மற்றும் பயன்பாடுகளுடன் தொடர்புகொள்வதற்கான வழிகளை ஆதரிக்கிறது: HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, முதலியன), SOAP / REST Webservices, FTP, TCP, LDAP, SMTP(S), POP3( S) ) மற்றும் IMAP(S), JDBC வழியாக தரவுத்தளங்கள், ஷெல் கட்டளைகளை இயக்கலாம் மற்றும் ஜாவா பொருள்களுடன் வேலை செய்யலாம். சோதனைத் திட்டங்களை உருவாக்குவதற்கும், பிழைத்திருத்தம் செய்வதற்கும், செயல்படுத்துவதற்கும் JMeter ஐடிஇ கொண்டுள்ளது. எந்த ஜாவா இணக்கமான இயக்க முறைமையிலும் (லினக்ஸ், விண்டோஸ், மேக் ஓஎஸ் எக்ஸ்) கட்டளை வரி செயல்பாட்டிற்கான சிஎல்ஐ உள்ளது. கருவி ஒரு HTML சோதனை அறிக்கையை மாறும் வகையில் உருவாக்க முடியும்.

எங்கள் நிறுவனத்தில் எளிதாகப் பயன்படுத்துவதற்கு, சோதனையாளர்கள் தங்களை மாற்றுவதற்கும் சூழலைச் சேர்ப்பதற்கும் திறனுக்காக, GitLab CI இல் உள்ள சுமை ஆதாரங்களின் டோக்கர் படங்களை உருவாக்கி உள்நாட்டில் வெளியிடுகிறோம். ஆர்டிஃபாக்டரியில் டாக்கர் பதிவு. இது சுமை சோதனைகளுக்காக அவற்றை பைப்லைன்களில் இணைப்பதை விரைவாகவும் எளிதாகவும் செய்கிறது. GitLab CI வழியாக பதிவேட்டில் டோக்கர் புஷ் செய்வது எப்படி - பார்க்கவும் அறிவுறுத்தல்கள்.

Yandex.Tank க்கான இந்த அடிப்படை டோக்கர் கோப்பை எடுத்தோம்:

Dockerfile 
1 | FROM direvius/yandex-tank
2 | ENTRYPOINT [""]

அப்பாச்சி ஜேமீட்டருக்கு இது:

Dockerfile 
1 | FROM vmarrazzo/jmeter
2 | ENTRYPOINT [""]

எங்கள் தொடர்ச்சியான ஒருங்கிணைப்பு அமைப்பு எவ்வாறு செயல்படுகிறது என்பதை நீங்கள் கட்டுரையில் படிக்கலாம் "வளர்ச்சி செயல்முறைகளின் ஆட்டோமேஷன்: நேர்மறை தொழில்நுட்பங்களில் DevOps ஐடியாக்களை எவ்வாறு செயல்படுத்தினோம்".

டெம்ப்ளேட் மற்றும் பைப்லைன்

சுமை சோதனைகளை நடத்துவதற்கான டெம்ப்ளேட்டின் எடுத்துக்காட்டு திட்டத்தில் கிடைக்கிறது டெமோ சுமை. தி readme கோப்பு டெம்ப்ளேட்டைப் பயன்படுத்துவதற்கான வழிமுறைகளை நீங்கள் படிக்கலாம். டெம்ப்ளேட்டிலேயே (கோப்பு .gitlab-ci.yml) ஒவ்வொரு அடிக்கும் என்ன பொறுப்பு என்பது பற்றிய குறிப்புகள் உள்ளன.

டெம்ப்ளேட் மிகவும் எளிமையானது மற்றும் மேலே உள்ள வரைபடத்தில் விவரிக்கப்பட்டுள்ள சுமை சோதனையின் மூன்று நிலைகளை நிரூபிக்கிறது: அறிக்கைகளைத் தயாரித்தல், சோதனை செய்தல் மற்றும் வெளியிடுதல். இதற்குப் பொறுப்பு வேலைவாய்ப்பு: தயார், சோதனை மற்றும் அறிக்கை.

  1. மேடை தயார் சோதனை இலக்குகளை முன்கூட்டியே கட்டமைக்க அல்லது அவற்றின் இருப்பை சரிபார்க்க பயன்படுத்த வேண்டும். சுமை ஆதாரங்களுக்கான சூழலை உள்ளமைக்க வேண்டிய அவசியமில்லை, அவை டோக்கர் படங்களாக முன்பே கட்டமைக்கப்பட்டு, டோக்கர் பதிவேட்டில் இடுகையிடப்படுகின்றன: சோதனை கட்டத்தில் விரும்பிய பதிப்பைக் குறிப்பிடவும். ஆனால் நீங்கள் அவற்றை மீண்டும் உருவாக்கலாம் மற்றும் உங்கள் சொந்த மாற்றியமைக்கப்பட்ட படங்களை உருவாக்கலாம்.
  2. மேடை சோதனை சுமை மூலத்தைக் குறிப்பிடவும், சோதனைகளை இயக்கவும், சோதனைக் கலைப்பொருட்களைச் சேமிக்கவும் பயன்படுகிறது. நீங்கள் எந்த சுமை மூலத்தையும் தேர்வு செய்யலாம்: Yandex.Tank, Apache JMeter, உங்களுடையது அல்லது அனைத்தும் ஒன்றாக. தேவையற்ற ஆதாரங்களை முடக்க, கருத்து தெரிவிக்கவும் அல்லது வேலையை நீக்கவும். சுமை ஆதாரங்களுக்கான நுழைவு புள்ளிகள்:
    • Yandex.Tank க்கான வெளியீட்டு அளவுருக்கள் இல் குறிப்பிடப்பட்டுள்ளன./tests/yandextank.sh,
    • Apache JMeter தொடக்க அளவுருக்கள் கோப்பில் குறிப்பிடப்பட்டுள்ளன ./tests/jmeter.sh.

    குறிப்பு: அசெம்பிளி உள்ளமைவு டெம்ப்ளேட் CI அமைப்புடன் தொடர்புகளை அமைக்கப் பயன்படுகிறது மற்றும் சோதனை தர்க்கத்தை அதில் வைக்கவில்லை. சோதனைகளுக்கு, கட்டுப்பாட்டு பாஷ் ஸ்கிரிப்ட் அமைந்துள்ள நுழைவுப் புள்ளி குறிப்பிடப்பட்டுள்ளது. சோதனைகளை இயக்கும் முறை, அறிக்கைகளை உருவாக்குதல் மற்றும் சோதனை ஸ்கிரிப்ட்கள் ஆகியவை QA பொறியாளர்களால் செயல்படுத்தப்பட வேண்டும். டெமோவில், இரண்டு சுமை ஆதாரங்களுக்கும், Yandex பிரதான பக்க கோரிக்கை எளிமையான சோதனையாகப் பயன்படுத்தப்படுகிறது. ஸ்கிரிப்டுகள் மற்றும் சோதனை அளவுருக்கள் கோப்பகத்தில் உள்ளன ./சோதனைகள்.

  3. மேடையில் அறிக்கை சோதனை கட்டத்தில் பெறப்பட்ட சோதனை முடிவுகளை வெளிப்புற சேமிப்பகங்களில் எவ்வாறு வெளியிடுவது என்பதை நீங்கள் விவரிக்க வேண்டும், எடுத்துக்காட்டாக, GitLab பக்கங்கள் அல்லது சிறப்பு அறிக்கையிடல் அமைப்புகளுக்கு. GitLab பக்கங்களுக்கு ./public கோப்பகம் காலியாக இருக்க வேண்டும் மற்றும் சோதனைகள் முடிந்த பிறகு குறைந்தபட்சம் index.html கோப்பைக் கொண்டிருக்க வேண்டும். GitLab Pages சேவையின் நுணுக்கங்களைப் பற்றி நீங்கள் படிக்கலாம். இணைப்பு.

    தரவை எவ்வாறு ஏற்றுமதி செய்வது என்பதற்கான எடுத்துக்காட்டுகள்:

    அமைவு வழிமுறைகளை இடுகையிடுதல்:

டெமோ எடுத்துக்காட்டில், சுமை சோதனைகள் மற்றும் இரண்டு சுமை ஆதாரங்களைக் கொண்ட பைப்லைன் (நீங்கள் தேவையற்ற ஒன்றை முடக்கலாம்) இதுபோல் தெரிகிறது:

டெவலப்பர்களுக்கான CI சேவையாக சுமை சோதனை

Apache JMeter ஒரு HTML அறிக்கையை உருவாக்க முடியும், எனவே நிலையான கருவிகளைப் பயன்படுத்தி அதை GitLab பக்கங்களில் சேமிப்பது அதிக லாபம் தரும். Apache JMeter அறிக்கை இப்படி இருக்கும்:

டெவலப்பர்களுக்கான CI சேவையாக சுமை சோதனை

Yandex.Tank க்கான டெமோ எடுத்துக்காட்டில், நீங்கள் மட்டுமே பார்ப்பீர்கள் போலி உரை அறிக்கை GitLab பக்கங்களுக்கான பிரிவில். சோதனையின் போது, ​​டேங்க் முடிவுகளை InfluxDB தரவுத்தளத்தில் சேமிக்க முடியும், மேலும் அங்கிருந்து அவை காட்டப்படும், எடுத்துக்காட்டாக, கிராஃபானாவில் (கோப்பில் உள்ளமைவு செய்யப்படுகிறது. ./tests/example-yandextank-test.yml) கிராஃபானாவில் டேங்கின் அறிக்கை இப்படித்தான் இருக்கிறது:

டெவலப்பர்களுக்கான CI சேவையாக சுமை சோதனை

சுருக்கம்

கட்டுரையில், "சுமை சோதனை ஒரு சேவையாக" (ஒரு சேவையாக சுமை சோதனை) என்ற கருத்தைப் பற்றி பேசினேன். லோட் ஏஜெண்டுகளின் முன் கட்டமைக்கப்பட்ட பூல்களின் உள்கட்டமைப்பு, சுமை ஆதாரங்களின் டாக்கர் படங்கள், அறிக்கையிடல் அமைப்புகள் மற்றும் ஒரு எளிய .gitlab-ci.yml டெம்ப்ளேட்டின் அடிப்படையில் அவற்றை GitLab CI இல் இணைக்கும் பைப்லைனைப் பயன்படுத்துவதே முக்கிய யோசனையாகும் (எடுத்துக்காட்டு இணைப்பு) இவை அனைத்தும் ஆட்டோமேஷன் பொறியாளர்களின் ஒரு சிறிய குழுவால் ஆதரிக்கப்படுகின்றன மற்றும் தயாரிப்பு குழுக்களின் வேண்டுகோளின்படி நகலெடுக்கப்படுகின்றன. உங்கள் நிறுவனத்தில் இதேபோன்ற திட்டத்தைத் தயாரித்து செயல்படுத்த இது உங்களுக்கு உதவும் என்று நம்புகிறேன். கவனித்தமைக்கு நன்றி!

PS எங்கள் நிறுவனத்தில் ஒரு சேவையாக சுமை சோதனை என்ற கருத்தை செயல்படுத்துவதற்கான தொழில்நுட்ப உதவிக்காக எனது சகாக்களான செர்ஜி குர்பனோவ் மற்றும் நிகோலாய் யூசெவ் ஆகியோருக்கு நான் நன்றி கூற விரும்புகிறேன்.

ஆசிரியர்: திமூர் கில்முலின் - துணை பாசிட்டிவ் டெக்னாலஜிஸில் தொழில்நுட்பம் மற்றும் மேம்பாட்டு செயல்முறைகளின் தலைவர் (DevOps)

ஆதாரம்: www.habr.com

கருத்தைச் சேர்