jmeter processors controllers
Преглед на предварителните процесори и контролери в JMeter (Част III):
=> Следвайте изчерпателна поредица от безплатни уроци за JMeter тук
Тази статия ще насочи потребителите към използването на предварителни процесори, пост-процесори и контролери в JMeter. Контролерите са много полезни, тъй като те правят вашите тестови сценарии.
Може да искате да тествате различни сценарии, в които искате да конфигурирате вашата собствена последователност на заявка, изпратена до сървър, за да следите времето за реакция и други фактори за ефективност.
Какво ще научите:
- Предпроцесори
- Потребителски параметри
- Примерно изчакване
- Контролери
- Пример в реално време
- Шаблон за запис на JMeter
- Заключение
- Препоръчително четене
Предпроцесори
Това са елементите, които се изпълняват преди изпълнението на семплер. Можете да прикачите Pre-Processor към семплера, за който искате да направите някои промени в заявката.
Най-простият от случаите може да бъде добавяне на препроцесор „Sample Timeout“ с HTTP заявка, така че тази заявка да се изпълнява само за определен период от време. Той също така гарантира, че тази модификация се извършва само за родителския семплер.
По-долу са някои от предварителните процесори, използвани в JMeter:
- Предварителен процесор на Bean Shell
- Анализатор на HTML връзка
- Пренаписване на HTTP URL адрес
- JDBC препроцесор
- Примерно изчакване
- Потребителски параметри
Най-често използваните са обяснени по-долу с примери. Може да имате нужда от всичко във вашите проекти. Опитайте се да идентифицирате сценариите, свързани с вашия проект, и да внедрите тези, които ви помагат да покриете сценарии за изпълнение в реално време.
Потребителски параметри
Потребителските параметри се използват за дефиниране на стойности за променливите, преди да бъдат използвани в Samplers. Когато JMeter изпълнява този елемент Предпроцесор, той съхранява стойностите в променливите, които могат да бъдат препращани от всякакви проби в рамките на една и съща група нишки.
java направи копие на масив
Ако имате повече нишки от броя на потребителите в „Потребителски параметри“, допълнителните нишки ще повторят отново през стойностите.
Например, имате 5 потребители във вашата група нишки, но само 3 в предварителния процесор, след това вашият 4тии 5тинишка ще използва param1 и param2 .
Примерно изчакване
Този предварително обработващ процесор се използва за определяне на времето за изчакване на заявките.
Например, ако сте поставили време за проба от 400 милисекунди, тогава всички заявки, които отнемат време> 400, ще имат неуспешен отговор. Моля, вижте скрийншота по-долу.
Контролери
Контролерите са много важни за изграждането на план за тестване на JMeter в реално време. Той определя последователността, в която заявките се изпращат до сървъра.
Например, Ако искате да тествате уеб приложение, в което искате да влезете веднъж и да търсите, заявките за избор на артикули се подават една по една за всички итерации. Контролерите правят възможно, като управляват потока от заявки, преминаващи към тествания сървър.
По-долу са най-често използваните контролери в JMeter
- Обикновен контролер
- Модулен контролер
- Веднъж само контролер
- Interleave контролер
- Контролер на контура
- Ако контролер
- За всеки контролер
- Контролер за запис и др.,
Обикновен контролер
Обикновеният контролер не изпълнява никаква специфична функция. Това е просто един вид контейнер, в който можете да съхранявате вашите подобни заявки, за да направите вашия план за тестване лесно разбираем.
Контролер на контура
Ако искате някаква конкретна заявка да изпълнява повече итерации, отколкото е посочена в Thread Group, можете да ги поставите под Loop Controller и да въведете броя на контурите в настройките на контролера.
Пример: Ако имате група нишки с 1 потребител и 3 итерации, тогава всичките ви заявки в тази група ще се изпълняват 3 пъти. Сега, ако имате два HTTP Sampler под контролер на цикъл с цикъл 2, и двата тези Samplers ще работят 1 * 3 * 2 = 6 пъти.
Моля, вижте снимките на екрана по-долу, които го обясняват допълнително
Веднъж само контролер
Този контролер се използва, когато искате да изпълните някаква конкретна заявка само веднъж, дори ако имате няколко нишки в групата нишки. Най-простият пример, който може да се разгледа, е „Извличане на начална страница на уебсайт“ или „Влизане в уеб приложение“. Сценарият в реално време би искал това да се случи само веднъж, а други заявки като търсене или редактиране / изтриване на нещо да се случват многократно.
Искане, което трябва да бъде изпълнено само веднъж, може да бъде поставено под Контролер само веднъж. Вижте скрийншота по-долу за справка. Веднъж само настройките на контролера заобикалят настройките на групата родителски нишки.
Контролер за запис
Подобно на Simple Controller, Recording Controller не променя нито една последователност от заявките, които се изпращат до сървъра. Използва се с HTTP (S) Script Recorder. Всички заявки, които са записани с този нетестов елемент, се записват в контролера за запис.
Трябва да посочите целевия контролер, за да запишете записаните заявки, направени на сървъра.
Контролерът за запис и записващият скрипт за HTTP (s) се появяват, когато тестерите нямат информация за URL адресите и параметрите на заявките. Те могат просто да записват и улавят всички заявки, удрящи техните сървъри. Това работи както за мобилни, така и за уеб проекти.
Контролер за пропускателна способност
Този контролер се използва и за управление на потока на изпълнение. Както се вижда в изрезката по-долу, този контролер е допълнително разделен на две части:
Процент на изпълнение - Този избор ще накара Jmeter да изпълнява само определен процент от общите итерации за Samplers, поставени под този контролер. Можете също да поставите отметка в квадратчето „На потребител“, за да контролирате това на ниво потребител.
Например, Thread Group е конфигуриран да има 10 потребители, а броят на цикъла е 5. Следователно, общите итерации са 50. Ако% изпълнение е зададено на 50%, тогава всички Samplers под контролера на пропускателната способност ще направят само 25 итерации (50% от 50).
Общо изпълнение - Това позволява на потребителите да определят броя итерации директно за семплерите, съдържащи се под този контролер.
Interleave контролер
Този контролер ви позволява да увеличите обхвата на вашето тестване на производителността, като промените последователността по n броя начини, така че да можете да тествате натоварването на сървъра, когато приложенията удрят заявка с различни последователности. Interleave Controller прави алтернативни селекции със семплерите под него.
В случай, че под този блок има други контролери като Simple Controller, interleave controller дава привилегията да избере по един семплер от контейнер за всяка итерация. За да го обясните допълнително, помислете по-долу за тестовия план.
Така че, Jmeter ще итерира алтернативно между контролерите за всяка итерация. Следователно последователността ще бъде спомената по-долу
Заявка1 -> Заявка3 -> Заявка 5 - Заявка2 -> Заявка4 -> Заявка6
Моля, вижте по-долу резултатите от JMeter с брой нишки = 2 и брой контури = 2.
какво е ключът за мрежова сигурност?
В горния пример Jmeter е Interleaving със следващ цикъл / итерация. В Interleave Controller има настройки, които могат да накарат JMeter да изпраща алтернативни заявки с всяка нова нишка.
Моля, вижте резултатите по-долу. Това е полезно в сценарии, при които искате последователно или едновременно натоварване на сървъри с различна последователност на заявката от една и съща машина.
Случайно контролер
Той работи почти като контролера Interleave, но не избира пробите в ред. Той просто избира подконтролерите и пробниците вътре в тях на случаен принцип.
Ако контролер
Ако Controller работи по подобен начин, IF изразът се третира на който и да е език за програмиране. Условието се проверява първо и след това компонентите под този контейнер се изпълняват, ако условието е ИСТИНА, в противен случай елементите извън IF Controller ще бъдат изпълнени.
Пример : Продължавайки с един от по-ранните примери, включващи 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 ще провери това условие и ако е TRUE, ще изпълни блоковете под този контейнер.
Както можете да видите от по-долу план за тестване, само Request3, Request4 и Request5 ще се изпълнят в случай, че условието IF се оцени като Невярно .
Докато контролери
Този контролер изпълнява компонентите под него, докато условието стане невярно.
Например, да кажем, че имаме условие докато ($ (брой)<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 адресите и параметрите на всички заявки, удрящи тествания сървър. Сега, за да тестват сървъра, те трябва да запишат заявките и след това да модулират товара последователно или едновременно и да създадат сценарии от тях, за да направят тестване на производителността.
Стъпки
което е по-добре java или c ++
- Добавете шаблон в Jmeter за контролер за запис
- Задайте проксито в браузъра си и изберете същия порт в HTTP (s) Script Recorder
- Запишете заявките
- Променете плана за изпитване и увеличете натоварването
- Съответно групирайте транзакциите
- Опитайте различни комбинации от заявка
Шаблон за запис на JMeter
JMeter също има някои предварително дефинирани шаблони. Изберете опцията „Шаблон“ от менюто „Файл“. След като изберете шаблона, изберете опцията “Запис” в прозореца, който се отваря и кликнете върху Създаване.
Веднага след като изберете този шаблон за запис, ще видите някои компоненти, вече добавени в плана за тестване.
- HTTP (s) Script Recorder под Work Bench
- HTTP Request по подразбиране и HTTP Cookie Manager
- Контролер за запис под група нишки.
Можете да направите настройки на прокси в браузъра си, за да говорите с прокси сървър на JMeter, или да използвате CHROME Extension 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