jmeter processors controllers
Огляд попередніх процесорів та контролерів у JMeter (Частина III):
=> Слідкуйте за вичерпною серією безкоштовних підручників JMeter тут
Ця стаття допоможе користувачам використовувати попередні процесори, постпроцесори та контролери в JMeter. Контролери дуже корисні, оскільки вони створюють сценарії тестування.
Можливо, ви захочете протестувати різні сценарії, в яких ви хочете налаштувати власну послідовність запиту, що надсилається на сервер, для моніторингу часу відгуку та інших факторів продуктивності.
Що ви дізнаєтесь:
- Попередні процесори
- Параметри користувача
- Час очікування зразка
- Контролери
- Приклад у реальному часі
- Шаблон запису JMeter
- Висновок
- Рекомендована література
Попередні процесори
Це елементи, які виконуються до виконання семплера. Ви можете підключити попередній процесор до пробника, для якого ви хочете внести деякі зміни у запит.
Найпростішим із випадків може бути додавання препроцесора “Sample Timeout” із запитом HTTP, щоб цей запит працював лише визначений проміжок часу. Він також гарантує, що ця модифікація зроблена лише для батьківського семплера.
Нижче наведено деякі попередні процесори, що використовуються в JMeter:
- Попередній процесор Bean Shell
- Синтаксичний аналізатор посилань HTML
- Перезапис URL-адреси HTTP
- Препроцесор JDBC
- Час очікування зразка
- Параметри користувача
Найпоширеніші з них пояснюються нижче на прикладах. У ваших проектах може знадобитися чи не знадобитися все. Спробуйте визначити сценарії, пов’язані з вашим проектом, і реалізуйте ті, які допоможуть вам охопити сценарії ефективності в реальному часі.
Параметри користувача
Параметри користувача використовуються для визначення значень для змінних до їх використання у Пробовідбірниках. Коли JMeter виконує цей елемент попереднього процесора, він зберігає значення у змінних, на які можуть посилатися будь-які пробовідбірники всередині тієї самої групи потоків.
програмне забезпечення для злому паролів для Windows 7
Якщо у вас є більше потоків, ніж кількість користувачів у “Параметрах користувача”, додаткові потоки знову повторять ці значення.
Наприклад, у вас є 5 користувачів у вашій групі потоків, але лише 3 у попередньому процесорі, тоді ваші 4гоі 5гопотік буде використовувати param1 і парам2 .
Час очікування зразка
Цей попередній процесор використовується для визначення часу очікування запитів.
Наприклад, якщо ви встановили час вибірки з 400 мілісекунд, тоді всі запити, що займають час> 400, матимуть невдалу відповідь. Будь ласка, дивіться нижче скріншоти.
Контролери
Контролери дуже важливі для побудови плану тестування JMeter у реальному часі. Він визначає послідовність відправлення запитів на сервер.
Наприклад, Якщо ви хочете протестувати веб-програму, в якій ви хочете, щоб вхід відбувся один раз і здійснив пошук, запити на вибір елементів проходять по одному для всіх ітерацій. Контролери роблять це можливим, керуючи потоком запитів, що надходить на тестований сервер.
Нижче наведені найбільш часто використовувані контролери в JMeter
- Простий контролер
- Контролер модуля
- Одного разу лише контролер
- Interleave Controller
- Контролер петлі
- Якщо контролер
- Для кожного контролера
- Контролер запису та ін.,
Простий контролер
Простий контролер не виконує жодної конкретної функції. Це лише свого роду контейнер, в якому ви можете зберігати свої подібні запити, щоб зробити ваш план тестування легко зрозумілим.
Контролер петлі
Якщо ви хочете, щоб якийсь конкретний запит запускав більше ітерацій, ніж зазначено в Thread Group, ви можете помістити їх під Loop Controller і ввести кількість циклів у налаштуваннях контролера.
Приклад: Якщо у вас є група потоків з 1 користувачем та 3 ітераціями, тоді всі ваші запити в цій групі будуть виконуватися 3 рази. Тепер, якщо у вас є два пробовідбірники HTTP під контролером циклу з кількістю циклів 2, обидва ці пробовідбірники запускатимуться 1 * 3 * 2 = 6 разів.
Будь ласка, перегляньте наведені нижче знімки екрана, які пояснюють це далі
Одного разу лише контролер
Цей контролер використовується, коли ви хочете запустити певний запит лише один раз, навіть якщо у вас є кілька потоків у групі потоків. Найпростіший приклад, який можна розглянути, - це «Отримання домашньої сторінки веб-сайту» або «Вхід у веб-програму». Сценарій реального часу хотів би, щоб це відбулося лише один раз, а інші запити, такі як пошук або редагування / видалення чогось, мали відбуватися кілька разів.
Запит, який повинен бути виконаний лише один раз, може бути розміщений під Контролером лише один раз. Зверніться до знімка екрана для довідки. Одного разу лише налаштування контролера обходять налаштування батьківської групи потоків.
Контролер запису
Як і Простий контролер, Контролер запису не змінює жодної послідовності запитів, що надсилаються на сервер. Він використовується з HTTP (S) Script Recorder. Усі запити, записані за допомогою цього нетестового елемента, зберігаються під контролером запису.
Вам потрібно вказати цільовий контролер, щоб зберегти записані запити, зроблені на сервер.
Контролер запису та реєстратор сценаріїв HTTP (s) з’являються, коли тестувальники не мають інформації про URL-адреси та параметри запитів. Вони можуть просто записувати та фіксувати всі запити, що потрапляють на їх сервери. Це працює як для мобільних, так і для веб-проектів.
Контролер пропускної здатності
Цей контролер також використовується для управління потоком виконання. Як видно з наведеного нижче відсікання, цей контролер додатково розділений на дві частини:
Відсоток виконання - Цей вибір змусить Jmeter виконувати лише певний відсоток від загальної кількості ітерацій для пробовідбірників, розміщених під цим контролером. Ви також можете встановити прапорець 'На користувача', щоб контролювати це на рівні користувача.
Наприклад, Група потоків налаштована на 10 користувачів, а кількість циклів - 5. Отже, загальна кількість ітерацій дорівнює 50. Якщо% виконання встановлено на 50%, то всі пробовідбірники під контролером пропускної здатності виконають лише 25 ітерацій (50% з 50).
Всього виконання - Це дозволяє користувачам визначати кількість ітерацій безпосередньо для пробовідбірників, що містяться під цим контролером.
Interleave Controller
Цей контролер дозволяє збільшити обсяг тестування продуктивності, змінюючи послідовність n-кількістю способів, щоб ви могли перевірити навантаження на сервері, коли програми потрапляють на запит із різними послідовностями. Interleave Controller робить альтернативний вибір із пробовідбірниками під ним.
Якщо під цим блоком містяться інші контролери, такі як Simple Controller, контролер чергування надає привілей вибрати один пробовідбірник з контейнера для кожної ітерації. Щоб пояснити це далі, розгляньте наведений нижче план тестування.
Отже, Jmeter буде повторювати по черзі між контролерами для кожної ітерації. Тому послідовність буде згадана нижче
Запит1 -> Запит3 -> Запит 5 - Запит2 -> Запит4 -> Запит6
Будь ласка, дивіться нижче результати JMeter з кількістю ниток = 2 і кількістю циклів = 2.
у функції main невизначене посилання на
У наведеному вище прикладі Jmeter є чергуванням із наступним циклом / ітерацією. У Interleave Controller є налаштування, які можуть змусити JMeter надсилати альтернативні запити з кожним новим потоком.
Будь ласка, дивіться результати нижче. Це корисно в сценаріях, коли потрібно послідовне або одночасне завантаження серверів із різною послідовністю запиту на одній машині.
Випадковий контролер
Він працює майже як контролер Interleave, але не підбирає пробовідбірники по порядку. Він просто довільно вибирає підконтролери та пробовідбірники всередині них.
Якщо контролер
Якщо Controller працює подібним чином, вираз IF обробляється будь-якою мовою програмування. Спочатку перевіряється умова, а потім компоненти під цим контейнером виконуються, якщо умова має значення TRUE, інакше виконуються елементи поза контролером IF.
Приклад : Продовжуючи один із попередніх прикладів, що стосується Interleave Controller, тепер один з двох Interleave контролера зберігається під IF Controller and Condition “$ (COUNT)<10 is added as a condition. Variable COUNT is defined in config element “User Defined Variables” and is given a value equal to 11. Configuration is described below
Визначення та присвоєння значення змінній COUNT.
Визначення стану в Якщо контролер налаштування. Jmeter перевірить цю умову, а якщо ІСТИНА, виконає блоки під цим контейнером.
Як видно з наведеного нижче плану випробувань, лише Request3, Request4 і Request5 будуть виконуватися у випадку, якщо умова IF оцінюється як помилковий .
Поки контролери
Цей контролер виконує компоненти під ним, поки умова не стане хибним.
Наприклад, скажімо, що у нас є умова while ($ (count)<10), it will execute the child elements until the condition is false. To test this, there should be a counter which gets increment or decrement on each iteration and then condition is evaluated. Config Element “Counter” can be used to serve this purpose.
Налаштуйте конфігураційний елемент “Counter” так, щоб він починався з 1, а потім збільшував на кожній ітерації. Дивіться нижче для отримання додаткових роз’яснень:
Ми торкнемося решти контролерів у наших відеоуроках.
Приклад у реальному часі
Давайте розглянемо сценарій, коли команда тестування не знає URL-адреси та параметри всіх запитів, що потрапляють на тестований сервер. Тепер, щоб перевірити навантаження сервера, їм потрібно записати запити, а потім модулювати навантаження послідовно або одночасно і створити з них сценарії для тестування продуктивності.
Кроки
qa запитання та відповіді на співбесіду для тестування
- Додайте шаблон у Jmeter для контролера запису
- Встановіть проксі-сервер у своєму браузері та оберіть той самий порт у HTTP (s) Script Recorder
- Запишіть запити
- Змініть план випробувань і збільште навантаження
- Групуйте операції відповідно
- Спробуйте різні комбінації запиту
Шаблон запису JMeter
JMeter також має деякі заздалегідь визначені шаблони. Виберіть опцію «Шаблон» у меню «Файл». Після вибору шаблону у вікні, що відкриється, виберіть опцію «Запис» та натисніть «Створити».
Як тільки ви оберете цей шаблон запису, ви побачите деякі компоненти, вже додані в план тестування.
- Записник сценаріїв HTTP (s) під робочим середовищем
- За замовчуванням HTTP-запит та менеджер файлів cookie HTTP
- Контролер запису під групою ниток.
Ви можете зробити налаштування проксі-сервера у своєму браузері, щоб поговорити з проксі-сервером JMeter, або використовувати розширення CHROME Blazemeter для запису запитів, а потім експортувати файл. jmx у Jmeter. Є багато інших розширень для запису сценарію, а потім експортування до JMeter. Інструмент BADBOY також добре працює з Jmeter для запису веб-і мобільних хітів.
Натисніть на. jmx опція експорту записаного запиту до Jmeter. Тепер з Jmeter відкрийте. jmx і перегляньте запити та параметри, пов'язані з кожним запитом.
Висновок
На сьогоднішній день передбачається, що ви всі повинні були добре ознайомитися з основною логікою JMeter, як вона імітує навантаження, як грати з різними типами пробників, як керувати потоком виконання за допомогою контролера та використання змінних і функції для запуску циклів через ітерації. Це, звичайно, не кінець серії навчальних посібників з JMeter.
Існує безліч відеоуроків щоб простежити, що допоможе тестувальникам з більшою кількістю рук розглядати різні сценарії в Jmeter та як найкращим чином використовувати кожен компонент JMeter.
=> Повний список відео-посібників JMeter можна переглянути тут
Будь ласка, поділіться з нами своїми коментарями чи питаннями.
Рекомендована література
- Контролери Jmeter Частина 1
- Контролери Jmeter Частина 2
- Як досягти кореляції JMeter на прикладі
- Робота з HTTP-запитами в JMeter
- Робота із запитом FTP у JMeter
- Використання постпроцесора в JMeter (екстрактор регулярних виразів)
- Топ 5 плагінів JMeter та як ними користуватися (із прикладами)
- Таймери JMeter: Постійний, BeanShell та випадковий таймер Guassian