Санҷишро ҳамчун хидмати CI барои таҳиягарон бор кунед

Санҷишро ҳамчун хидмати CI барои таҳиягарон бор кунед

Яке аз мушкилоте, ки фурӯшандагони нармафзори бисёрсоҳавӣ аксар вақт дучор мешаванд, такрори салоҳиятҳои муҳандисон - таҳиягарон, озмоишгарон ва маъмурони инфрасохтор - тақрибан дар ҳар як даста мебошад. Ин ба муҳандисони гаронбаҳо - мутахассисони соҳаи санҷиши сарборӣ низ дахл дорад.

Ба ҷои иҷрои вазифаҳои мустақими худ ва истифодаи таҷрибаи беназири худ барои сохтани раванди санҷиши сарборӣ, интихоб кардани методология, ченакҳои оптималӣ ва навиштани автотестҳо мувофиқи профилҳои бор, муҳандисон аксар вақт маҷбур мешаванд, ки инфрасохтори санҷиширо аз сифр ҷойгир кунанд, асбобҳои боркуниро танзим кунанд ва онҳоро ҷойгир кунанд. худро дар системаҳои CI ташкил намуда, мониторинг ва нашри ҳисоботҳоро таъсис медиҳанд.

Шумо метавонед роҳҳои ҳалли баъзе мушкилоти ташкилиро дар озмоише, ки мо дар Positive Technologies истифода мебарем, пайдо кунед мақолаи дигар. Ва дар ин бора, ман дар бораи имкони ҳамгироии санҷишҳои сарборӣ ба лӯлаи умумии CI бо истифода аз мафҳуми "озмоиши сарборӣ ҳамчун хидмат" (озмоиши сарборӣ ҳамчун хидмат) сӯҳбат мекунам. Шумо мефаҳмед, ки чӣ гуна ва кадом тасвирҳои докери манбаъҳои боркуниро дар лӯлаи CI истифода бурдан мумкин аст; чӣ гуна пайваст кардани манбаъҳои сарборӣ ба лоиҳаи CI-и худ бо истифода аз қолаби сохтмон; лӯлаи намоишӣ барои гузаронидани санҷишҳои сарборӣ ва нашри натиҷаҳо чӣ гуна аст. Мақола метавонад барои муҳандисони санҷиши нармафзор ва муҳандисони автоматикунонии CI, ки дар бораи меъмории системаи сарбории худ фикр мекунанд, муфид бошад.

Моҳияти консепсия

Консепсияи санҷиши сарборӣ ҳамчун хидмат қобилияти ҳамгиро кардани асбобҳои боркунии Apache JMeter, Yandex.Tank ва чаҳорчӯбаи шахсии шуморо ба системаи ҳамгироии бефосилаи худсарона дар назар дорад. Намоиш барои GitLab CI хоҳад буд, аммо принсипҳо барои ҳама системаҳои CI умумӣ мебошанд.

Санҷиши сарборӣ ҳамчун хидмат хидмати мутамарказ барои санҷиши сарборӣ мебошад. Санҷишҳои сарборӣ дар ҳавзҳои агентҳои махсус гузаронида мешаванд, натиҷаҳо ба таври худкор дар GitLab Pages, Influx DB ва Grafana ё дар системаҳои гузоришдиҳии санҷишӣ (TestRail, ReportPortal ва ғайра) нашр мешаванд. Автоматизатсия ва миқёс ба қадри имкон содда иҷро карда мешаванд - бо илова кардан ва параметризатсия кардани қолаби муқаррарии gitlab-ci.yml дар лоиҳаи GitLab CI.

Бартарии ин равиш дар он аст, ки тамоми инфрасохтори CI, агентҳои сарборӣ, тасвирҳои докери манбаъҳои сарборӣ, қубурҳои санҷишӣ ва гузоришҳои нашрӣ аз ҷониби шӯъбаи автоматикунонии мутамарказ (муҳандисони DevOps) нигоҳ дошта мешаванд, дар ҳоле ки муҳандисони санҷиши сарборӣ метавонанд кӯшишҳои худро ба таҳияи озмоиш равона кунанд. ва тахлили натичахои онхо, бе машгул шудан бо масъалахои инфраструктура.

Барои содда будани тавсиф, мо фарз мекунем, ки барномаи мавриди ҳадаф ё сервери мавриди санҷиш аллакай ҷойгир ва танзим шудааст (скриптҳои автоматӣ дар Python, SaltStack, Ansible ва ғайра барои ин истифода мешаванд). Пас тамоми консепсияи санҷиши сарборӣ ҳамчун хидмат ба се марҳила мувофиқат мекунад: тайёр кардан, санчиш, чоп кардани хисобот. Тафсилоти бештар дар бораи диаграмма (ҳамаи тасвирҳо клик карда мешаванд):

Санҷишро ҳамчун хидмати CI барои таҳиягарон бор кунед

Мафҳумҳо ва таърифҳои асосӣ дар озмоиши сарборӣ

Ҳангоми гузаронидани санҷишҳои сарборӣ, мо кӯшиш мекунем, ки риоя кунем Стандартҳо ва методологияи ISTQB, истилоҳоти мувофиқ ва нишондиҳандаҳои тавсияшударо истифода баред. Ман рӯйхати мухтасари мафҳумҳо ва таърифҳои асосиро дар санҷиши сарборӣ медиҳам.

Агентро бор кунед - мошини маҷозӣ, ки дар он барнома ба кор андохта мешавад - манбаи сарборӣ (Apache JMeter, Yandex.Tank ё модули боркунии худи навишташуда).

Ҳадафи санҷиш (ҳадаф) - сервер ё барномае, ки дар сервер насб карда шудааст, ки бояд бор карда шавад.

Сенарияи санҷиш (парвандаи санҷишӣ) - маҷмӯи қадамҳои параметрӣ: амалҳои корбар ва аксуламалҳои интизорӣ ба ин амалҳо бо дархостҳои шабакавӣ ва посухҳо вобаста ба параметрҳои муайяншуда.

Профил ё нақшаи боркунӣ (профил) - дар Методологияи ISTQB (Қисми 4.2.4, саҳ. 43) профилҳои сарборӣ нишондиҳандаҳоеро муайян мекунанд, ки барои санҷиши мушаххас муҳиманд ва имконоти тағир додани параметрҳои сарборӣ ҳангоми санҷиш. Шумо метавонед намунаҳои профилҳоро дар расм бинед.

Санҷишро ҳамчун хидмати CI барои таҳиягарон бор кунед

Санҷиш — скрипт бо маҷмӯи пешакии параметрҳо.

Нақшаи санҷиш (нақшаи санҷиш) - маҷмӯи санҷишҳо ва профили сарборӣ.

Тестран (озмоиш) - як такрори як санҷиш бо сенарияи пурра иҷрошуда ва ҳисоботи гирифташуда.

Дархости шабакавӣ (дархост) — Дархости HTTP, ки аз агент ба ҳадаф фиристода мешавад.

Ҷавоби шабака (ҷавоб) — Ҷавоби HTTP аз ҳадаф ба агент фиристода мешавад.
Рамзи посухи HTTP (status ҷавобҳои HTTP) - рамзи стандартии посух аз сервери барнома.
Муомилот як давраи мукаммали дархост ва посух аст. Амалиёт аз оғози ирсоли дархост (дархост) то анҷоми гирифтани ҷавоб (ҷавоб) ҳисоб карда мешавад.

Ҳолати транзаксия — оё имкони бомуваффакият анчом додани цикли дархосту чавоб. Агар дар ин давра ягон хатогӣ вуҷуд дошта бошад, пас тамоми транзаксия номуваффақ ҳисобида мешавад.

Вақти вокуниш (таҳия) - вақт аз анҷоми ирсоли дархост (дархост) то оғози гирифтани ҷавоб (ҷавоб).

Метрикҳоро бор кунед — хусусиятхои хизмати пурбор ва агенти сарборй, ки дар рафти озмоиши сарборй муайян карда мешаванд.

Метрикҳои асосӣ барои ченкунии параметрҳои сарборӣ

Баъзе аз маъмултарин истифода ва тавсия дар методология ISTQB (сах. 36, 52) ченакхо дар чадвали зер нишон дода шудаанд. Меъёрҳои шабеҳ барои агент ва ҳадаф дар як сатр номбар шудаанд.

Метрикҳо барои агенти сарборӣ
Метрикҳои система ё барномае, ки таҳти сарборӣ санҷида мешаванд

Шумораи  vCPU ва хотира RAM,
диск - хусусиятњои "оњан"-и агенти сарборї
ВПМ - Воҳиди Пардозиши Марказӣ, Хотира, истифодаи диск - динамикаи CPU, хотира ва боркунии диск
дар раванди санҷиш. Одатан бо фоиз чен карда мешавад
арзишҳои ҳадди дастрас

интиқоли шабака (оид ба агенти сарборӣ) - интиқол
интерфейси шабакавӣ дар сервер,
ки дар он чо агенти борбардор гузошта шудааст.
Одатан бо байт дар як сония чен карда мешавад (bps)
интиқоли шабака(аз рӯи ҳадаф) - маҷрои интерфейси шабака
дар сервери мақсаднок. Одатан бо байт дар як сония чен карда мешавад (bps)

Истифодабарандагони виртуалӣ- шумораи корбарони виртуалӣ,
татбиқи сенарияҳои сарборӣ ва
тақлид кардани амалҳои воқеии корбар
Ҳолати корбарони виртуалӣ, Гузаронида шуд/Муваффақият/Ҳамӣ — шумораи муваффақ ва
ҳолати номуваффақи корбарони виртуалӣ
барои сенарияҳои сарборӣ, инчунин шумораи умумии онҳо.

Одатан интизор меравад, ки ҳамаи корбарон тавонистанд анҷом диҳанд
ҳамаи вазифаҳои шумо, ки дар профили боркунӣ нишон дода шудаанд.
Ҳар як хато маънои онро дорад, ки корбари воқеӣ наметавонад
мушкилоти худро ҳангоми кор бо система ҳал кунед

Дархостҳо дар як сония (дақиқа)- шумораи дархостҳои шабакавӣ дар як сония (ё дақиқа).

Хусусияти муҳими агенти сарборӣ дар он аст, ки он метавонад чанд дархост эҷод кунад.
Дар асл, ин тақлид ба дастрасии корбарони виртуалӣ ба барнома аст
Ҷавобҳо дар як сония (дақиқа)
- шумораи посухҳои шабакавӣ дар як сония (ё дақиқа).

Хусусияти муҳими хидмати мақсаднок: чӣ қадар
тавлид ва ирсол ҷавобҳо ба дархостҳо бо
агенти боркунанда

Ҳолати посухи HTTP— шумораи рамзҳои ҷавобии гуногун
аз сервери барномае, ки агенти сарборӣ гирифтааст.
Масалан, 200 OK маънои занги муваффақро дорад,
ва 404 - ки манбаъ ёфт нашуд

Latitude (вақти ҷавоб) - вақт аз анҷом
фиристодани дархост (дархост) пеш аз оғози гирифтани ҷавоб (ҷавоб).
Одатан бо миллисонияҳо (мс) чен карда мешавад

Вақти вокуниш ба транзаксия- вақти анҷом додани як амалиёти мукаммал,
ба итмом расидани даври дархосту ҷавоб.
Ин вақт аз оғози ирсоли дархост (дархост) аст
то ба охир расидани гирифтани ҷавоб (ҷавоб).

Вақти транзаксияро дар сонияҳо (ё дақиқаҳо) чен кардан мумкин аст
бо якчанд роҳ: ҳадди ақалро баррасӣ кунед,
максимум, миёна ва масалан, фоизи 90-ум.
Хониши ҳадди ақал ва максималӣ аз ҳад зиёданд
ҳолати иҷрои система.
Фоизи навадум маъмултарин истифода мешавад,
тавре ки аксари корбарон нишон медиҳанд,
бароҳатӣ дар остонаи иҷрои система кор мекунанд

Амалиёт дар як сония (дақиқа) - шумораи пурра
транзаксияҳо дар як сония (дақиқа),
ки ариза чй кадар кабул карда тавонист ва
коркарди дархостҳо ва додани ҷавобҳо.
Дар асл, ин қобилияти интиқоли система аст

Ҳолати транзаксия , Гузаштанд / Ноком / Ҳамагӣ - рақам
бомуваффақият, номуваффақ ва шумораи умумии муомилот.

Барои корбарони воқеӣ ноком
муомилот воқеан маънои онро дорад
натавонистани кор бо система дар зери сарборӣ

Диаграммаи схематикии санҷиши бор

Консепсияи санҷиши сарборӣ хеле содда аст ва аз се марҳилаи асосӣ иборат аст, ки ман аллакай зикр кардам: Омода-Санҷиш-Ҳисобот, яъне омода кардани ҳадафҳои санҷишӣ ва муқаррар кардани параметрҳо барои манбаъҳои сарборӣ, сипас иҷрои санҷишҳои сарборӣ ва дар охир тавлид ва нашр кардани гузориши санҷишӣ.

Санҷишро ҳамчун хидмати CI барои таҳиягарон бор кунед

Қайдҳои схематикӣ:

  • QA.Tester мутахассиси санҷиши сарборӣ мебошад,
  • Ҳадаф барномаи мавриди ҳадаф аст, ки шумо мехоҳед рафтори онро дар зери сарборӣ бидонед.

Таснифи объектҳо, марҳилаҳо ва қадамҳо дар диаграмма

Марҳилаҳо ва қадамҳо
Чӣ рӯй медиҳад?
Дар даромадгоҳ чӣ ҳаст
Натиҷа чӣ гуна аст

Омода: марҳилаи омодагӣ ба санҷиш

LoadParameters
Танзим ва оғозёбӣ
истифодабаранда
параметрҳои боркунӣ,
интихоби ченакҳо ва
омодасозии нақшаи санҷиш
(профили боркунӣ)
Имкониятҳои фармоишӣ барои
оғозкунии агенти сарборӣ
Нақшаи санҷиш
Мақсади санҷиш

VM
Ҷойгиркунии абр
мошини виртуалӣ бо
хусусиятҳои зарурӣ
Танзимоти VM барои агенти боркунӣ
Скриптҳои автоматизатсия барои
Эҷоди VM
VM дар
абр

Ҳай
Танзим ва омодасозии ОС
муҳити зист барои
кори агенти боркунанда
Танзимоти муҳити зист барои
агенти боркунанда
Скриптҳои автоматизатсия барои
танзимоти муҳити зист
Муҳити омодашуда:
OS, хидматҳо ва барномаҳо,
барои кор зарур аст
агенти боркунанда

LoadAgents
Насб, конфигуратсия ва параметризатсия
агенти боркунанда.
Ё зеркашии тасвири докер аз
манбаи сарбории пешакӣ танзимшуда
Тасвири манбаи докерро бор кунед
(YAT, JM ё чаҳорчӯбаи худнависӣ)
Танзимотҳо
агенти боркунанда
Танзим ва омода
ба агенти бори кор

Санҷиш: марҳилаи иҷрои санҷишҳои сарборӣ. Сарчашмаҳо агентҳои сарборӣ мебошанд, ки дар ҳавзҳои агентҳои махсус барои GitLab CI ҷойгир карда шудаанд

сарборӣ
Оғози агенти боркунӣ
бо нақшаи санҷиши интихобшуда
ва параметрҳои боркунӣ
Имконоти корбар
барои оғозёбӣ
агенти боркунанда
Нақшаи санҷиш
Мақсади санҷиш
Сабтҳои иҷро
санҷишҳои бор
Сабти система
Динамикаи тағирот дар ченакҳои ҳадаф ва агенти сарборӣ

Агентҳоро иҷро кунед
Иҷрои агент
як қатор скриптҳои санҷишӣ
дар асоси он
профили бор
Ҳамкории агентро бор кунед
бо мақсади санҷиш
Нақшаи санҷиш
Мақсади санҷиш

Гузоришҳо
Ҷамъоварии гузоришҳои "хом"
ҳангоми санҷиши сарборӣ:
сабтҳои фаъолияти агенти боркунӣ,
ҳолати ҳадафи санҷиш
ва VM агентро идора мекунад

Сабтҳои иҷро
санҷишҳои бор
Сабти система

Метрҳо
Ҷамъоварии нишондиҳандаҳои "хом" ҳангоми санҷиш

Динамикаи тағирот дар метрикаи ҳадафҳо
ва агенти боркунанда

Ҳисобот: марҳилаи омодасозии ҳисоботи санҷишӣ

Генератор
Коркарди ҷамъоварӣ
системаи боркунӣ ва
системаи мониторинги "хом"
метрика ва гузоришҳо
Ташаккули гузориш дар
шакли хондани инсон
бо элементҳо имконпазир аст
таҳлилгарон
Сабтҳои иҷро
санҷишҳои бор
Сабти система
Динамикаи тағирот дар метрика
агенти мақсаднок ва боркунанда
Гузоришҳои "хом" коркардшуда
дар формати муносиб барои
боргузорӣ ба нигаҳдории беруна
Ҳисоботи сарбории статикӣ,
ба одам хондан мумкин аст

Publish
Интишори гузориш
дар бораи бор
санҷиш дар берунӣ
хизматрасонӣ
Коркардшудаи "хом"
сабтҳо дар формати мувофиқ
барои фуровардан ба берун
анборхо
Дар берунӣ захира карда шудааст
ҳисобот оид ба нигоҳдорӣ
бор, мувофиқ
барои таҳлили инсон

Пайваст кардани манбаъҳои сарборӣ дар қолаби CI

Биёед ба қисми амалӣ гузарем. Ман мехоҳам нишон диҳам, ки чӣ гуна дар баъзе лоиҳаҳо дар ширкат Технологияҳои мусбӣ мо консепсияи санҷиши сарбориро ҳамчун хидмат амалӣ кардем.

Аввалан, бо кӯмаки муҳандисони DevOps мо, мо як ҳавзи махсуси агентҳоро дар GitLab CI барои гузаронидани санҷишҳои сарборӣ таъсис додем. Барои он ки онҳоро дар қолабҳо бо дигарон омехта накунем, ба монанди ҳавзҳои васлкунӣ, мо ба ин агентҳо тегҳо илова кардем, барчаспҳои: бор кардан. Шумо метавонед ҳама гуна барчаспҳои фаҳмо истифода баред. мепурсанд ҳангоми бақайдгирӣ Давандагони GitLab CI.

Қувваи заруриро тавассути таҷҳизот чӣ гуна бояд фаҳмид? Хусусиятҳои агентҳои сарборӣ - миқдори кофии vCPU, RAM ва Disk - метавонанд дар асоси он ҳисоб карда шаванд, ки Docker, Python (барои Yandex.Tank), GitLab CI агент, Java (барои Apache JMeter) бояд дар агент кор кунанд. . Барои Java зери JMeter, инчунин тавсия дода мешавад, ки ҳадди аққал 512 МБ хотираи оперативӣ истифода баред ва ҳамчун маҳдудияти боло, 80% хотираи дастрас.

Ҳамин тариқ, дар асоси таҷрибаи худ, мо тавсия медиҳем, ки ҳадди аққал 4 vCPU, 4 ГБ RAM, 60 ГБ SSD барои агентҳои боркунӣ истифода барем. Гузаронидани корти шабака дар асоси талаботи профили сарборӣ муайян карда мешавад.

Мо асосан ду манбаи боркуниро истифода мебарем - Apache JMeter ва Yandex.Tank тасвирҳои докер.

Яндекс.Танк як воситаи кушодаасос аз Яндекс барои санҷиши сарборӣ мебошад. Меъмории модулии он ба генератори дархости HTTP-и асинхронии асинхронӣ дар асоси Phantom асос ёфтааст. Танк дорои мониторинги дохилии захираҳои сервери озмоишшуда тавассути протоколи SSH мебошад, метавонад ба таври худкор санҷишро дар шароити муайян қатъ кунад, метавонад натиҷаҳоро ҳам дар консол ва ҳам дар шакли графикҳо нишон диҳад, шумо метавонед модулҳои худро пайваст кунед. ба он барои васеъ кардани функсия. Воқеан, мо Танкро дар ҳоле истифода мебурдем, ки он ҳанӯз дар сатҳи асосӣ набуд. Дар мақолаи "Яндекс.Танк ва автоматикунонии санҷиши бор» шумо метавонед ҳикояеро хонед, ки чӣ гуна мо дар соли 2013 озмоиши сарбориро бо он анҷом додем Сипари барномаи PT яке аз махсулоти корхонаи мо мебошад.

Apache JMeter воситаи санҷиши сарбории кушодаи Apache мебошад. Он метавонад барои санҷиши ҳам веб-барномаҳои статикӣ ва динамикӣ баробар хуб истифода шавад. JMeter шумораи зиёди протоколҳо ва роҳҳои ҳамкорӣ бо барномаҳоро дастгирӣ мекунад: HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET ва ғайра), Webservices SOAP / REST, FTP, TCP, LDAP, SMTP(S), POP3( S) ) ва IMAP(S), пойгоҳи додаҳо тавассути JDBC, метавонанд фармонҳои қабатро иҷро кунанд ва бо объектҳои Java кор кунанд. JMeter дорои IDE барои эҷод, ислоҳ ва иҷрои нақшаҳои санҷишӣ мебошад. Инчунин CLI барои амалиёти сатри фармон дар ҳама гуна системаи оператсионии мувофиқи Java мавҷуд аст (Linux, Windows, Mac OS X). Восита метавонад ба таври динамикӣ гузориши санҷиши HTML эҷод кунад.

Барои осонии истифода дар дохили ширкати мо, барои қобилияти худи озмоишгарон дар тағир додан ва илова кардани муҳити зист, мо тасвирҳои докерии манбаҳои боркуниро дар GitLab CI бо нашри дохилӣ таҳия кардем. феҳристи докер дар Artifactory. Ин имкон медиҳад, ки онҳоро дар қубурҳо барои санҷиши сарборӣ пайваст кунед. Чӣ тавр docker push ба феҳрист тавассути GitLab CI - нигаред дастурҳо.

Мо ин файли асосии докерро барои Yandex.Tank гирифтем:

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

Ва барои Apache JMeter ин:

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

Шумо метавонед дар мақолаи "Системаи муттаҳидсозии пайвастаи мо чӣ гуна кор мекунад" хонед.Автоматикунонии равандҳои рушд: чӣ гуна мо ғояҳои DevOps-ро дар Positive Technologies амалӣ кардем".

Шаблон ва қубур

Намунаи қолаб барои гузаронидани санҷишҳои сарборӣ дар лоиҳа мавҷуд аст сарбории намоишӣ. Дар файли readme Шумо метавонед дастурҳоро оид ба истифодаи қолаб хонед. Дар худи шаблон (file .gitlab-ci.yml)^айдхое мавчуданд, ки хар як кадам барои чй чавобгар аст.

Шаблон хеле содда аст ва се марҳилаи санҷиши сарбориро, ки дар диаграммаи боло тавсиф шудааст, нишон медиҳад: омода кардан, санҷиш ва нашри гузоришҳо. Барои ин масъул аст марҳилаҳо: Омода, озмоиш ва гузориш диҳед.

  1. Давра Омодагӣ кунед бояд барои пешакӣ танзим кардани ҳадафҳои санҷишӣ ё тафтиши мавҷудияти онҳо истифода шавад. Муҳити сарчашмаҳои сарборӣ ба танзим даровардан лозим нест, онҳо ҳамчун тасвирҳои докер пешакӣ сохта шудаанд ва дар феҳристи докер ҷойгир карда шудаанд: танҳо дар марҳилаи санҷиш версияи дилхоҳро муайян кунед. Аммо шумо метавонед онҳоро аз нав созед ва тасвирҳои тағирёфтаи худро созед.
  2. Давра озмоиш барои муайян кардани манбаи сарборӣ, санҷишҳо ва нигоҳ доштани артефактҳои санҷишӣ истифода мешавад. Шумо метавонед ягон манбаи боркуниро интихоб кунед: Yandex.Tank, Apache JMeter, худатон ё ҳама якҷоя. Барои хомӯш кардани манбаъҳои нолозим, танҳо корро шарҳ диҳед ё нест кунед. Нуқтаҳои воридшавӣ барои манбаъҳои сарборӣ:
    • Параметрҳои оғози Yandex.Tank дар ./tests/yandextank.sh,
    • Параметрҳои оғози Apache JMeter дар файл нишон дода шудаанд ./tests/jmeter.sh.

    Эзоҳ: Шаблони конфигуратсияи васлкунӣ барои танзими ҳамкорӣ бо системаи CI истифода мешавад ва дар он ҷойгиркунии мантиқи санҷиширо дар назар надорад. Барои санҷишҳо нуқтаи воридшавӣ муайян карда мешавад, ки дар он скрипти назоратии bash ҷойгир аст. Усули гузаронидани санҷишҳо, тавлиди ҳисоботҳо ва худи скриптҳои санҷишӣ бояд аз ҷониби муҳандисони QA амалӣ карда шаванд. Дар намоиш, барои ҳарду манбаи сарборӣ, дархости саҳифаи асосии Yandex ҳамчун соддатарин санҷиш истифода мешавад. Скриптҳо ва параметрҳои санҷишӣ дар директория ҷойгиранд ./озмоишҳо.

  3. Дар сахна маърӯза шумо бояд шарҳ диҳед, ки чӣ гуна натиҷаҳои санҷиши дар марҳилаи санҷиш гирифташуда дар анборҳои беруна, масалан, дар GitLab Pages ё системаҳои махсуси гузоришдиҳӣ интишор карда шаванд. Саҳифаҳои GitLab талаб мекунанд, ки феҳристи ./public холӣ набошад ва пас аз анҷоми санҷишҳо ҳадди аққал як файли index.html дошта бошад. Шумо метавонед дар бораи нозукиҳои хидмати GitLab Pages хонед. пайванд.

    Намунаҳои тарзи содироти маълумот:

    Интишори дастурҳои танзим:

Дар мисоли намоишӣ, қубур бо озмоишҳои сарборӣ ва ду манбаи сарборӣ (шумо метавонед яки нолозимро хомӯш кунед) чунин менамояд:

Санҷишро ҳамчун хидмати CI барои таҳиягарон бор кунед

Apache JMeter метавонад худи ҳисоботи HTML эҷод кунад, аз ин рӯ захира кардани он дар GitLab Pages бо истифода аз абзорҳои стандартӣ фоидаовартар аст. Гузориши Apache JMeter чунин аст:

Санҷишро ҳамчун хидмати CI барои таҳиягарон бор кунед

Дар мисоли намоишӣ барои Yandex.Tank, шумо танҳо хоҳед дид гузориши матнии қалбакӣ дар қисмат барои саҳифаҳои GitLab. Ҳангоми санҷиш, Танк метавонад натиҷаҳоро дар пойгоҳи додаҳои InfluxDB захира кунад ва аз он ҷо онҳо метавонанд, масалан, дар Grafana намоиш дода шаванд (конфигуратсия дар файл анҷом дода мешавад) ./tests/example-yandextank-test.yml). Гузориши Танк дар Графана чунин аст:

Санҷишро ҳамчун хидмати CI барои таҳиягарон бор кунед

Натиҷа

Дар мақола, ман дар бораи мафҳуми "озмоиши сарборӣ ҳамчун хидмат" (озмоиши бор ҳамчун хидмат) сӯҳбат кардам. Идеяи асосӣ ин истифодаи инфрасохтори ҳавзҳои қаблан танзимшудаи агентҳои сарборӣ, тасвирҳои докерии манбаъҳои сарборӣ, системаҳои гузоришдиҳӣ ва лӯлаест, ки онҳоро дар GitLab CI дар асоси қолаби оддии .gitlab-ci.yml муттаҳид мекунад (мисол пайванд). Ҳамаи ин аз ҷониби як гурӯҳи хурди муҳандисони автоматика дастгирӣ карда мешавад ва бо дархости гурӯҳҳои маҳсулот такрор карда мешавад. Умедворам, ки ин ба шумо дар таҳия ва татбиқи нақшаи шабеҳ дар ширкати шумо кӯмак хоҳад кард. Ташаккур барои таваҷҷӯҳ!

PS Ман мехоҳам ба ҳамкасбонам Сергей Курбонов ва Николай Юсев барои кӯмаки техникӣ дар татбиқи консепсияи санҷиши сарборӣ ҳамчун хидмат дар ширкати мо ташаккури зиёд баён намоям.

муаллиф: Тимур Гилмуллин — Муовини Сардори Технологияҳо ва равандҳои рушд (DevOps) дар Positive Technologies

Манбаъ: will.com

Илова Эзоҳ