= Трансакции, конкурентно извршување и заклучување на ресурсите со Apache JMeter ---- == Сценарио бр. 1 - Креирање на случајна нарачка '''Структура на тест'''\\ * Thread Group – конфигурација за број на нишки\\ * JDBC Connection Configuration – поврзување со база на податоци\\ * JDBC Request – productsResult – креирање на 3 случајни производи\\ * Transaction Controller – група во која имаме 3 JDBC Requests кои треба да се извршат во една трансакција\\ * JDBC Request – insertOrder – додавање на нарачка во база\\ * JDBC Request – insertOrderDetails – додавање на детали за нарачка во база\\ * JDBC Request – updateQuantity – промена на количина на производи\\ [[Image("Image1.JPG",80%,align=center)]]\\ ---- '''JDBC Request – productsResult'''\\ * Слика 1 – прашалник за генерирање на случајни производи\\ * Слика 2 – информации за барање (време на вчитување, извршување ..)\\ * Слика 3 – резултат од прашалникот\\ [[Image("Image2.JPG",80%,align=center)]]\\ [[Image("Image3.JPG",80%,align=center)]]\\ [[Image("Image4.JPG",80%,align=center)]]\\ ---- '''Transaction Controller'''\\ * Слика 1 – прашалник за додавање на нарачка (insertOrder JDBC Request)\\ * Слика 2 – прашалник за додавање детални на нарачка (insertOrderDetails JDBC Request)\\ * Слика 3 – прашалник за промена на количина на производи (updateQuantity JDBC Request)\\ [[Image("Image5.JPG",80%,align=center)]]\\ [[Image("Image6.JPG",80%,align=center)]]\\ [[Image("Image7.JPG",80%,align=center)]]\\ ---- '''Случај бр.1 – неуспешно додавање на нарачка (на сликите се гледаат и временските резултати од барањата)'''\\ * Слика 1 – успешно додавање на нарачка\\ * Слика 2 – неуспешно додавање на детали за нарачка (нема доволно количина за некој од производите)\\ * Слика 3 – Transaction Controller паѓа, односно сите претходни JDBC Requests се поништуваат (rollback)\\ [[Image("Image8.JPG",80%,align=center)]]\\ [[Image("Image9.JPG",80%,align=center)]]\\ [[Image("Image10.JPG",80%,align=center)]]\\ ---- '''Случај бр.2 – успешно додавање на нарачка (на сликите се гледаат и временските резултати од барањата)'''\\ * Слика 1 – додавање на нарачка\\ * Слика 2 – додавање на детали за нарачка\\ * Слика 3 – промена на количина на производи\\ * Слика 4 – Transaction Controller потврдува дека сите претходни 3 JDBC Requests се успешно извршени\\ [[Image("Image11.JPG",80%,align=center)]]\\ [[Image("Image12.JPG",80%,align=center)]]\\ [[Image("Image13.JPG",80%,align=center)]]\\ [[Image("Image14.JPG",80%,align=center)]]\\ == Сценарио бр. 2 - Креирање на случајна нарачка [[Image("Image15.JPG",80%,align=center)]]\\ ---- {{{#!html
Случај бр.1 - 5 нишки
}}} [[Image("Image16.JPG",80%,align=center)]]\\ ---- {{{#!html
Случај бр.2 - 20 нишки
}}} [[Image("Image17.JPG",80%,align=center)]]\\ ---- {{{#!html
Случај бр.3 - 100 нишки
}}} [[Image("Image18.JPG",80%,align=center)]]\\ ---- {{{#!html
Случај бр.4 - 500 нишки
}}} [[Image("Image19.JPG",80%,align=center)]]\\ == Сценарио бр. 3 - Повлекување на нарачки на случаен корисник [[Image("Image20.JPG",80%,align=center)]]\\ [[Image("Image21.JPG",80%,align=center)]]\\ [[Image("Image22.JPG",80%,align=center)]]\\ == Други сценарија за тестирање * Foreign Key Constraints * Да се избрише запис од табелата ‘users’ и да се пропагираниот ефект во табелата ‘address’ и табелата ‘orders’ * Да се ажурира ид на продукт и да се верифицира дали ќе се пропагира информацијата и во другите зависни табели * Трансакција * Да се симулира трансакција каде нова нарачка е креирана и да се внесат и соодветните детали за таа нарачка (кои продукти, колку количина итн.). Да се направи ‘rollback’ на трансакцијата за да се осигураме за конзистентност на податоците * Bulk операции * Да се додаде голем број на нови продукти * Да се променат цените на сите продукти * Справување со грешки * Да се додаде нов запис во табелата ‘users’ со веќе постоечка е-маил адреса за да се тестира уникатноста на ‘email’ колоната