Za pomocą JMeter można wykonywać zarówno testy obciążeniowe, jak i funkcjonalne. Testy funkcjonalne z reguły wymagają wykonania ciągu czynności testowych - istotnie bardziej skomplikowanego niż Test Plan który przed chwilą udało nam się stworzyć. W tworzeniu ''zaawansowanych logicznie'' scenariuszy będziemy wykorzysytwać dwa aspekty JMeter: Logic Controllers oraz wykorzystania JMeter jako proxy do nagrywania scenariuszy.
Gdy nasz scenariusz wymaga jakiejś logiki, powinniśmy wykorzystać komponenty Logic Controllers. Pozwalają one na warunkowe wykonywanie żądań, modyfikację samych żądań, powtarzanie ich, etc.
Komponenty Logic Controllers są w swej idei podobne do konstrukcji takich jak if-then-else czy pętli, występujących w wielu językach programowania. Komponenty mogą posiadać zagnieżdżone elementy: Samplers, Configuration Elements, oraz inne Logic Controllers.
Przykładowe Controllery to:
Aby zrozumieć ideę stojącą za elementami Logic Controllers, przyjrzyjmy się następującemu scenariuszowi.
Jaki wpływ na scenariusz mają poszczególne elementy?
Web Test Plany, które będziemy tworzyć, mogą wymagać wywoływania wielu stron, podawania parametrów i innych czynności występujących przy okazji poruszania się po aplikacji webowej. Ręczne tworzenie akich scenariuszy jest czasochłonne - lepiej wykorzystać funkcje ''nagrywania tesów'' przez JMeter.
Wspomniana funkcja jest możliwa dzięki wykorzystaniu JMeter jako proxy HTTP. Po wykonaniu odpowiednich czynności w przeglądarce i w JMeter włączamy w JMeter HTTP Proxy Server i wykonujemy poprzez przeglądarkę ciąg akcji, który ma być wykonywany w scenariuszu. Spowoduje to stworzenie odpowiednich kroków w naszym Test Planie.
Aby nagrać scenariusz:
Jeśli poprawnie określilimy proxy w przeglądarce, po wykonaniu powyższych czynności w naszym Test Planie powinien się pojawić ciąg elementów HTTP Request.
A oto przykładowy test, wyklikany w opisany powyżej sposób.