JMeter Елементи и компоненти: Група нишки, Семплери

⚡ Умно обобщение

JMeter Елементите са градивните елементи на всеки тестов план: Групите от нишки създават виртуални потребители, Семплерите изпращат заявките, Слушателите показват резултатите, а Конфигурационните елементи предоставят настройките по подразбиране и данните, от които се нуждаят тези заявки.

  • 🔘 Група теми: Всяка нишка представлява един виртуален потребител, управляващ тестваното приложение.
  • ☑️ Пробовземачи: Определете протокола на заявката — FTP, HTTP, JDBC, SMTP и други.
  • Слушатели: Представете резултатите като графика, дърво, таблица или лог файл.
  • 🧪 Елементи на конфигурацията: Задайте стойности по подразбиране и променливи, които семплерите използват повторно в целия тест.
  • 🛠️ Изпълнения, управлявани от данни: Конфигурацията на CSV набор от данни предоставя различни идентификационни данни на всеки симулиран потребител.
  • Съвременни еквиваленти: BSF Sampler е премахнат; текущите издания са скриптове чрез JSR223 и Groovy.

JMeter Елементи: Група нишки, Семплери, Слушатели и Конфигурационни елементи

Какво е Element in JMeter?

Различните компоненти на JMeter се наричат ​​елементи. Всеки елемент е проектиран за конкретна цел.

Фигурата по-долу показва някои общи елементи JMeter и показва как те се намират под група от теми.

JMeter Диаграма на йерархията на елементите с група нишки над семплери, логически контролери, слушатели, конфигурационни елементи, твърдения, таймери и процесори

Изучаването на всички компоненти наведнъж е покана за объркване и скука. Тук ще обсъдим компонентите, които трябва да знаете, преди да можете да започнете. тестване in JMeter.

Останалите компоненти ще бъдат обсъдени, когато бъдат използвани в следващите уроци. Елементите, обсъждани в този урок, са изброени по-долу.

Група теми

Групата от нишки е колекция от нишки. Всяка нишка представлява един потребител, използващ тестваното приложение. По принцип всяка нишка симулира една реална потребителска заявка към сървъра.

Контролите за група нишки ви позволяват да зададете броя на нишките за всяка група.

Например, ако зададете броя на нишките на 100, JMeter ще създаде и симулира 100 потребителски заявки към тествания сървър, както е показано на диаграмата по-долу.

Диаграма на JMeter Група от нишки, симулираща потребител 1 до потребител 100, като всяка от тях изпраща заявка към тестваното приложение

Панелът „Група нишки“ също така съдържа период на стартиране, който разпределя началото на тези нишки във времето, вместо да стартира всеки потребител наведнъж.

Проби

Както вече знаем, JMeter поддържа тестване на HTTP, FTP, JDBC и много други протоколи.

Знаем също, че групите от нишки симулират потребителски заявки към сървъра.

Но как една група от нишки знае какъв тип заявка (HTTP, FTP и т.н.) трябва да направи?

Отговорът е Семплери.

Потребителската заявка може да бъде FTP заявка, HTTP заявка, JDBC заявка и т.н. Фигурата по-долу изброява семплерите, разгледани в този урок.

Списък с дървовидна диаграма JMeter семплери: FTP заявка, HTTP заявка, JDBC заявка, BSF семплер, семплер за достъп до логове и SMTP семплер

FTP заявка

Нека си представим, че искате да тествате производителността на FTP сървър. Можете да използвате FTP Request sampler в JMeter да изпълни тази задача. Този контролер ви позволява да изпратите FTP заявка за „изтегляне на файл“ или „качване на файл“ до FTP сървър.

Диаграма, показваща JMeter изпращане на FTP заявка към FTP сървър за качване или изтегляне на файл

Например, ако искате да изтеглите файл „Test.txt“ от тестван FTP сървър, трябва да конфигурирате някои параметри в JMeter както е показано на фигурата по-долу.

Панел за семплер на FTP заявки с ftp.example.com като сървър, порт 21, Test.txt като отдалечен файл и анонимно влизане

Панелът настройва сървъра на ftp.example.com, порт 21, отдалеченият файл към Test.txt и опцията get(RETR), така че JMeter изпраща FTP команда към този сървър и изтегля файла.

HTTP заявка

Този семплер ви позволява да изпращате HTTP/HTTPS заявка до уеб сървър.

Разгледайте примера по-долу. JMeter изпраща HTTP заявка до Google уебсайт и извлича HTML файлове или изображения от него.

Диаграма на JMeter изпращане на HTTP заявка до Google Сайтове и получаване на HTML и изображения в замяна

В урока JMeter Тестване на производителността, ще обясним повече за тази HTTP заявка. Това е най-често използваният семплер тестване на уеб приложения работата зависи от.

JDBC заявка

Този семплер ви позволява да изпълнявате база данни тестване на производителността. Той изпраща JDBC заявка (SQL заявка) към база данни.

Диаграма на JMeter изпращане на SQL заявка към сървър на база данни и получаване на резултата

Например, сървър на база данни има поле test_result, съхранено в таблица с име test_tbl. Искате да направите заявка за тези данни от сървъра на базата данни, така че можете да конфигурирате JMeter да изпратите a SQL заявка към този сървър за извличане на данните.

JDBC панел за заявки с тип заявка, зададен на Select Statement, и заявката select test_result от test_tbl, където id = 1

Типът на заявката тук е Select Statement и заявката се чете select test_result from test_tbl where id = 1Елементът за конфигурация на JDBC връзка трябва да предоставя пула, към който сочи полето „Име на променлива“.

BSF семплер

Този семплер ви позволява да напишете семплер, като използвате a BSF скриптов език.

Ето пример за BSF Sampler в JMeter, с полета за скриптовия език, параметрите, предавани на скрипта, и или вграден скрипт, или външен скриптов файл.

Панел на BSF Sampler с полета за скриптов език, параметри, външен скриптов файл и вграденото тяло на скрипта

Бележка за отхвърляне: Семейството елементи BSF беше отхвърлено в полза на елементите JSR223 и вече не се появява в JMeter препратка към компонентВ текущите издания използвайте JSR223 Семплер с Groovy, което компилира скрипта и се представя много по-добре под натоварване. Панелът по-горе е запазен тук, защото по-старите тестови планове все още го съдържат.

Access Log Sampler

Този семплер ви позволява да четете лог файлове за достъп и да генерирате HTTP заявки. Записите в лог файловете могат да бъдат изображения, HTML, CSS и т.н.

Панелът за пример на лог файлове за достъп, показващ полетата за сървър и порт по подразбиране, класа на плъгина TCLogParser и местоположението на лог файла

Полето „Parser“ е по подразбиране org.apache.jmeter.protocol.http.util.accesslog.TCLogParserи полето „Местоположение на лог файла“ сочи JMeter в лога, който искате да се възпроизведе.

SMTP семплер

Ако искате да тествате пощенски сървър, можете да използвате SMTP Sampler. Този семплер се използва за изпращане на имейл съобщения, използвайки SMTP протокола.

Панел на SMTP Sampler с настройки на сървъра, имейл адреси, опции за удостоверяване и сигурност и настройки за съобщения

Панелът групира настройките на сървъра, имейл адресите, настройките за удостоверяване и съобщения и отпечатва портовете по подразбиране до полето „Порт“: SMTP 25, SSL 465 и StartTLS 587.

Слушатели

Слушателите показват резултатите от изпълнението на теста. Те могат да представят резултатите в различни формати, като дърво, таблица, графика или лог файл.

Диаграма, показваща Listener, който разделя резултатите в графичен, дървовиден, табличен и отчетен изглед

- Графика Резултати Слушателят показва времената за отговор на сървъра на графика, като отдолу се отпечатват броят на пробите, средната стойност, отклонението, пропускателната способност и медианата.

Слушател на графични резултати, изобразяващ времената за реакция с данни, средна стойност, медиана, отклонение и серии от пропускателна способност

Преглед на дървото с резултати показва резултата от всяка потребителска заявка в основен HTML формат, с раздел с резултати от Sampler, който отчита времето за зареждане, латентността, размера и кода на отговора.

Преглед на слушателя на дървото на резултатите със списък със заявки отляво и раздела с резултати на Sampler, показващ код на отговор 200

Преглед на резултатите в таблица показва обобщение на резултата от теста в табличен формат, по един ред на проба.

Преглед на резултатите в табличен слушател с колони за номер на семпъл, начално време, име на нишка, етикет и време на семпъл

Лог файлът записва същото обобщение като текст, което е това, което запазвате, когато тестът се изпълнява без графичния потребителски интерфейс.

Обобщение на агрегирания лог, изброяващо етикетите на пробовземателите с броя на пробите, средните стойности и ред TOTAL

Най-добри практики: GUI слушателите изразходват памет и изкривяват резултатите, така че стартирайте тестове с реално натоварване в режим без GUI и след това отворете файла с запазените резултати.

Конфигурационни елементи

Конфигурационните елементи задават настройки по подразбиране и променливи за по-късна употреба от семплерите.

Фигурата по-долу показва някои често използвани конфигурационни елементи в JMeter.

Дървовидна диаграма на JMeter елементи за конфигурация: конфигурация на CSV набор от данни, мениджър на HTTP бисквитки, елемент за конфигурация на вход, настройки по подразбиране за HTTP заявки и настройки по подразбиране за FTP заявки

CSV набор от данни Config

Да предположим, че искате да тествате уебсайт за 100 потребители, които влизат с различни идентификационни данни. Не е необходимо да записвате скрипта 100 пъти. Можете да параметризирате скрипта, за да въвежда различни идентификационни данни за вход. Тази информация за вход (например потребителско име и парола) може да се съхранява в текстов файл. JMeter има елемент, който ви позволява да четете различни параметри от този текстов файл. Това е „CSV Data Set Config“, който се използва за четене на редове от файл и разделянето им на променливи.

JMeter Дърво на тестовия план с избрана конфигурация на CSV набор от данни под контролер за вход, заедно с настройките по подразбиране за HTTP заявки

Това е пример за CSV данни. Това е текстов файл, който съдържа потребителските имена и пароли, използвани за влизане в целевия ви уебсайт.

Текстов файл csv_data.txt, съдържащ четири реда, разделени със запетаи, със стойности за потребителско име, парола и дължина на „бисквитката“.

Мениджър на HTTP бисквитки

Нека разберем това с пример.

Използвахте браузъра си (Firefox, Chrome и т.н.) за сърфиране www.google.com.

Влизате с потребителското си име и парола.

Потребителското ви име и парола ще бъдат съхранени на вашия компютър като „бисквитки“.

Следващия път, когато дойдете www.google.com, не е необходимо да влизате отново, защото браузърът ви ще използва вашите „бисквитки“ като потребителски данни за влизане.

HTTP мениджърът на бисквитки има същата функция като уеб браузър. Ако имате HTTP заявка и отговорът съдържа бисквитка, мениджърът на бисквитки автоматично съхранява тази бисквитка и я използва за всички бъдещи заявки към този конкретен уебсайт.

HTTP заявка по подразбиране

Този елемент ви позволява да зададете стойности по подразбиране, които вашите HTTP Request контролери използват.

Например,

Изпращате 100 HTTP заявки към сървъра google.com.

Ще трябва да въведете името на сървъра google.com ръчно за всичките 100 заявки.

Вместо това можете да добавите един елемент HTTP Request Defaults с полето „Server Name or IP“, зададено на google.com, както е показано по-долу.

Панел с настройки по подразбиране за HTTP заявки с google.com като име на сървъра, порт 80 и време за изчакване на свързване и отговор

Няма нужда да го въвеждате 100 пъти. Този елемент ще бъде обяснен подробно в урока. JMeter Тестване на производителността.

Конфигурационен елемент за влизане

Елементът за конфигурация на входа ви позволява да добавяте или променяте настройките за потребителско име и парола в семплерите.

Например, искате да симулирате влизане на един потребител в уебсайта www.facebook.com с потребителско име и парола. Можете да използвате елемента за конфигурация на входа, за да добавите тази настройка за потребителско име и парола в потребителска заявка.

Панел за конфигурация на входния елемент с въведено потребителско име guru99 и маскирано поле за парола

Елементът за конфигурация за вход спрямо конфигурацията на CSV набор от данни

Конфигурационен елемент за влизане CSV набор от данни Config
Използва се за симулиране на влизане на един потребител Използва се за симулиране на влизания на множество потребители
Подходящо само за параметри за вход (потребителско име и парола) Подходящ за голям брой параметри

Заедно тези два елемента обхващат почти всеки сценарий за идентификация, с който се сблъсквате. инструменти за тестване на ефективността работят.

Въпроси и Отговори

Това разказва JMeter Колко време е необходимо, преди всички нишки да се изпълнят. Десет нишки със 100-секундно ускорение стартират с интервал от десет секунди. Твърде краткото ускорение претоварва сървъра и води до повреди, които никой реален потребител не би причинил.

Таймерите вмъкват пауза между заявките, така че симулираното зареждане да наподобява реално сърфиране, а не наводнение. Твърденията проверяват всеки отговор, като маркират пробата като неуспешна, когато кодът на състоянието, текстът или продължителността не съответстват на зададеното от вас.

Те групират и разклоняват заявките под тях. Контролерът на цикъла повтаря своите деца, контролерът на IF ги изпълнява условно, а контролерът на транзакциите отчита цялата група като една времева стъпка в резултатите.

Не. Слушатели като View Results Tree буферират всяка семпла и изкривяват числата, които отчитат. Изпълнете теста в режим без графичен интерфейс, запишете резултатите във файл и след това заредете този файл в слушател, след като изпълнението приключи.

Първо се прилагат конфигурационни елементи и предварителни процесори, след това се изпълнява семплерът, след това постпроцесорите, твърденията и слушателите. Обхватът също има значение: елемент, поставен на ниво план, се прилага към всяка заявка под него.

Полезно е за откриване на закономерности. Предоставянето на файл с резултати на асистент показва най-бавните етикети, клъстери от грешки и тенденции във времето за реакция много по-бързо, отколкото четенето на редове. Винаги проверявайте резултата спрямо суровите извадки, преди да действате.

Да. Изготвя чернови Groovy напрtracзадаване на стойности, изграждане на полезни товари и задаване на променливи вътре в JSR223 елемент. Проверете всяко предложение, защото то често посяга към остарелия BeanShell API или променливи, които JMeter не излага.

Една група нишки и един семплер. Всичко останало е по избор. На практика се добавя слушател, за да са видими резултатите, а стойностите по подразбиране или файлът с данни се добавят, след като едни и същи стойности започнат да се повтарят в заявките.

Обобщете тази публикация с: