Шаблон плана выпрабаванняў

Шаблон плана тэсціравання прадукцыйнасці, які можна выкарыстоўваць як ёсць, альбо змяніць у адпаведнасці з патрэбамі вашага праекта з пункту гледжання патрабаванняў да прадукцыйнасці.



1. Мэта

Мэта гэтага раздзела - даць агляд высокага ўзроўню падыходу да тэставання прадукцыйнасці, якога варта прытрымлівацца праект. Гэта павінна быць прадстаўлена ўсім адпаведным зацікаўленым бакам і павінна быць абмеркавана для дасягнення кансенсусу.



2. Уводзіны

У рамках дастаўкі патрабуецца, каб рашэнне адпавядала крытэрам прыняцця як з пункту гледжання функцыянальных, так і нефункцыянальных абласцей. Мэта гэтага дакумента - даць план для нефункцыянальнага тэсціравання раствор.


Гэты дакумент ахоплівае наступнае:

  • Крытэрыі ўезду і выезду
  • Экалагічныя патрабаванні
  • Падыход да тэставання аб'ёму і прадукцыйнасці
  • Дзейнасць па тэсціраванні прадукцыйнасці


3. Крытэрыі ўезду

Наступныя працоўныя задачы павінны быць выкананы / узгоднены загадзя, каб перайсці да фактычных мерапрыемстваў па тэсціраванні прадукцыйнасці:


  • Дакумент аб функцыянальных патрабаваннях да выпрабаванняў, прадастаўлены , з колькаснымі паказчыкамі NFR, дзе гэта магчыма
  • Важныя выпадкі выкарыстання павінны быць функцыянальна пратэставаны і без якіх-небудзь крытычных памылак
  • Дызайнерскія архітэктурныя схемы зацверджаны і даступны
  • Ключавыя выпадкі выкарыстання былі вызначаны і разгледжаны
  • Тыпы выпрабаванняў прадукцыйнасці ўзгоднены
  • Настройка фарсунак
  • Патрэбна любая налада дадзеных - напр. Адпаведная колькасць карыстальнікаў, створаных у


4. Крытэрыі выхаду

Дзейнасць па тэсціраванні прадукцыйнасці будзе завершана, калі:



  • Паказчыкі NFR былі выкананы, а вынікі выпрабаванняў прадукцыйнасці прадстаўлены камандзе і зацверджаны.


5. Экалагічныя патрабаванні

Тэсты прадукцыйнасці будуць праводзіцца на стабільнай версіі рашэнне (якое ўжо прайшло функцыянальныя выпрабаванні) і выканана ў спецыяльнай вытворчай асяроддзі (папярэдняй прадукцыі?), прызначанай для тэсціравання прадукцыйнасці без разгортвання ў гэтым асяроддзі падчас тэставання прадукцыйнасці.

5.1 Інжэктары нагрузкі

Будзе створаны адзін або некалькі спецыяльных 'фарсунак', якія ствараюць неабходную нагрузку для тэставання прадукцыйнасці. Інжэктар нагрузкі можа быць віртуальнай машынай або некалькімі віртуальнымі машынамі, якія экземплярам JMeter працуе, ініцыюючы запыты.

5.2 Тэставыя інструменты

Тэставымі інструментамі, якія выкарыстоўваюцца для тэставання аб'ёму і прадукцыйнасці, будуць:


5.2.1 JMeter

Інструмент тэсціравання нагрузкі з адкрытым зыходным кодам. Пераважна выкарыстоўваецца для тэставання аб'ёмаў і прадукцыйнасці.

5.2.2 Выпадзенне

Splunk будзе выкарыстоўвацца для рэгістрацыі (Можаце выкарыстаць іншы інструмент - трэба пацвердзіць з камандай, якая правярае перф).



6. Падыход да тэставання аб'ёму і прадукцыйнасці

рашэнне павінна быць дастаткова эфектыўным для кіравання наступнымі крытэрыямі нагрузкі.

Н.Б. Лічбы ў наступнай табліцы прыведзены толькі для ўзору - рэальныя значэнні павінны быць устаўлены пасля ўвядзення Дакумент NFR.


6.1 Мэтавыя аб'ёмы абслугоўвання

Гадзінныя задачы выяўлены з бягучага рашэння на [Y2019]. Ачышчаны іншыя значэнні 'прыкладу' з шаблона плана.

Паколькі пагадзінныя пікавыя значэнні невысокія, яны будуць прыняты за заданне пры выпрабаванні з фіксаванай нагрузкай. Маштабавальны каэфіцыент - гэта TBD.

6.2 Колькасць карыстальнікаў

Тэсціраванне прадукцыйнасці будзе праводзіцца максімум з 1000 [?] Карыстальнікамі. Карыстальнікі будуць створаны ў загадзя і быць даступным праз API ўваходу. Кожны запыт будзе ўваходзіць з розным ідэнтыфікатарам карыстальніка.

6.3 Сцвярджэнні

Інструмент JMeter будзе выкарыстоўвацца для выканання сцэнарыяў тэсціравання прадукцыйнасці. Унутры сцэнарыяў будуць сфармуляваны сцвярджэнні для праверкі вышэйпаказаных паказчыкаў, а таксама некаторыя асноўныя функцыянальныя праверкі для забеспячэння атрымання правільных адказаў на кожны запыт.


6.4 Загрузка профіляў

Профілі нагрузкі павінны быць распрацаваны так, каб імітаваць тыповы сярэднесутачны трафік да сайт. Звярніце ўвагу, што трафік размеркаваны і абмежаваны толькі часткай сайта, якая тычыцца ідэнтычнасці кліента і кіравання доступам, г.зн.

  • Увайсці
  • Рэгістрацыя
  • Скід пароля
  • Забыліся на пароль
  • Набор кліентаў
  • Атрымаць кліента

Ніжэй прыведзены прыклад профілю за дзень:

6.4.1 Асноўная база

Першы курс дзеянняў - знайсці зыходную лінію. Выкарыстоўваючы толькі 1 карыстальніка, мы запусцім мадэляванне на працягу пэўнага перыяду часу (напрыклад, 5 хвілін), каб атрымаць сярэдні час водгуку для кожнай канчатковай кропкі. Гэта гарантуе, што толькі з 1 карыстальнікам мы сапраўды можам дасягнуць пікавых запытаў у секунду.


6.4.2 Праверка нагрузкі

Пасля збору паказчыкаў зыходнага ўзроўню запускаецца тая ж мадэляцыя, якая імітуе профіль нагрузкі, з павялічанай колькасцю карыстальнікаў для тэставання на мэтавыя аб'ёмы. Ідэя гэтага выпрабавання нагрузкі складаецца ў тым, каб праверыць сістэму на тыповую дзённую нагрузку, мадэлюючы нарошчванне, пікі дня і падзенне.

6.4.3 Стрэс-тэставанне

Мэта стрэс-тэставання - знайсці кропку разбурэння сістэмы, гэта значыць, у які момант сістэма не рэагуе. Калі ўстаноўлена аўтаматычнае маштабаванне, стрэс-тэст таксама стане добрым паказчыкам, пасля чаго дадаюцца маштабы сістэмы і новыя рэсурсы. Для стрэс-тэсціравання выкарыстоўваецца тое ж мадэляванне, якое выкарыстоўваецца для выпрабаванняў нагрузкі, але з нагрузкай, большай за чаканую.

6.4.4 Тэставанне шыпоў

Выпрабаванне шыпамі ўносіць значную нагрузку на сістэму за адносна кароткі прамежак часу. Мэтай гэтага тэсту з'яўляецца мадэляванне падзеі продажаў, напрыклад, калі вялікая колькасць карыстальнікаў адначасова атрымлівае доступ да свайго ўліковага запісу за адносна кароткі прамежак часу.

6.4.5 Тэставанне замочвання

Тэставанне на замочванне будзе праводзіць тэст нагрузкі на працягу доўгага перыяду часу. Мэта складаецца ў тым, каб выявіць уцечку памяці і адсутнасць рэакцыі альбо памылкі падчас праверкі замочвання. Мы звычайна выкарыстоўваем 80% нагрузкі (выкарыстоўваецца для выпрабаванняў нагрузкі) на працягу 24 гадзін і / або 60% нагрузкі на працягу 48 гадзін.

6.4.6 Тэставанне кропкі насычэння

Пры тэставанні кропкі насычэння мы працягваем пастаянна павялічваць нагрузку, каб вызначыць, у які момант сістэма не рэагуе, гэта значыць знайсці кропку разбурэння сістэмы з пункту гледжання нагрузкі.



7. Дзейнасць па праверцы працаздольнасці

Для завяршэння тэсціравання прадукцыйнасці прапануецца правесці наступныя мерапрыемствы:

7.1 Пабудова асяроддзя тэставання прадукцыйнасці

  • Інжэктары нагрузкі павінны мець дастатковую ёмістасць і кіраваць імі трэба дыстанцыйна. Таксама трэба ўзгадніць месцазнаходжанне фарсунак
  • Механізм маніторынгу і абвесткі ў рэжыме рэальнага часу павінен дзейнічаць і ахопліваць прыкладанне, серверы, а таксама інжэктары нагрузкі.
  • Журналы прыкладанняў павінны быць даступныя.

7.2 Сцэнарыі выкарыстання

  • Інструментам тэсціравання прадукцыйнасці, які будзе выкарыстоўвацца, з'яўляецца JMeter
  • Любыя патрабаванні да дадзеных былі абмеркаваны для сцэнарыяў выкарыстання

7.3 Пабудова сцэнарыя тэсту

  • Тып тэсту, які трэба выканаць (нагрузка / стрэс і г.д.)
  • Профіль нагрузкі / мадэль нагрузкі павінны быць узгоднены для кожнага тыпу выпрабаванняў (нарошчванне / зніжэнне, прыступкі і г.д.)
  • Уключыце час для разважанняў у сцэнарыі

7.4 Выкананне і аналіз тэстаў

Наступныя тэсты павінны быць выкананы ў наступным парадку:

  • Базавы тэст
  • Тэст нагрузкі
  • Стрэс-тэст
  • Тэст на шып
  • Тэст замочвання
  • Тэст на насычэнне

У ідэале будзе праведзена 2 выпрабавальныя прагоны для кожнага тыпу выпрабаванняў. Пасля кожнага тэставага запуску прыкладанне можа быць дакладна наладжана для павышэння яго прадукцыйнасці, і тады пачнецца яшчэ адзін тэставы цыкл.

7.5 Аналіз і справаздачнасць пасля выпрабаванняў

  • Захоп і рэзервовае капіраванне ўсіх адпаведных справаздач дадзеных і архівавання.
  • Вызначце поспех альбо няўдачу, параўноўваючы вынікі тэстаў з мэтавымі паказчыкамі. Калі мэты не выкананы, трэба ўнесці адпаведныя змены, і тады пачнецца іншы цыкл выканання тэсту. Невядома, колькі цыклаў выканання спатрэбіцца для выканання ўзгодненых мэтаў.
  • Дакументуйце і прадстаўляйце камандзе вынікі тэстаў.