Въведение в тестването на производителността с помощта на JMeter

1. Общ преглед

В тази статия ще използваме Apache JMeter за конфигуриране и стартиране на тестове за производителност.

2. Настройка на JMeter

Нека изтеглим JMeter, разархивирайте го, отидете в папката bin и стартирайте изпълнимия файл (* .bat за Windows и * .sh за Linux / Unix).

След това просто трябва да добавим тази папка към променливата на средата на пътя, така че да е достъпна от командния ред.

Най-стабилната версия по време на писането е 3.3 - можем да проверим най-новата версия тук.

3. Създаване на JMeter скриптове

Сега нека напишем първия си JMeter скрипт (файл, съдържащ техническо описание на нашите тестове).

Този API е просто приложение SpringBoot, излагащо REST API.

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

А темата Група ни позволява да се знае потокът на потребителя и симулира как те взаимодействат с приложението, кликнете с десния бутон върху нашия скрипт име на графичния потребителски интерфейс и следвайте избраното меню:

Сега се насочваме към конфигурационната част на Thread Group , където указваме броя на потребителите, които паралелно правят заявки към нашето приложение:

Тук посочихме параметри като:

- Име: името, което искаме да дадем на групата нишки

- Броят на нишките (потребители) : броят на паралелните потребители

- Време за ускоряване : време, необходимо за преминаване от 0 до декларирания брой потребители

- Брой цикли : брой повторения

Добавете HTTP заявка, тъй като тя е тази, която ще симулираме като идваща от всеки от 5 потребители.

Нека попълним информацията, за да се обърнем към нашия API, описан там, както на изображението по-долу:

Просто попълваме адреса на уебсайта, порта и конкретния път.

След това нека симулираме заявките на потребителите след добавяне на дърво за преглед на резултатите (използвайте Преглед на резултатите в таблица, ако резултатите са списък със записи), като следвате менюто „ Добавяне> Слушател“ .

Натиснете бутона със зелена стрелка надясно в горната част, за да стартирате теста и да видите данните за отговора:

Можем да видим по-подробно представяне на отговора в раздела Sampler result .

Нека завършим с добавяне на твърдение за продължителност в HTTP заявката , така че всяка заявка, която продължава повече от десет милисекунди, ще се счита за неуспешен тест:

След повторно стартиране на теста виждаме, че има някои (тук това са 3) потребители, които не могат да получат списъците със студенти за по-малко от десет милисекунди:

Сега нека запазим теста с разширението .jmx в папката с ресурси на API.

Налични са повече елементи за конфигуриране на нашия тестов файл:

  • Заявка за JDBC: полезно за изпращане на JDBC заявка (SQL заявка) към база данни, преди да я използваме, трябва да настроим елемент за конфигуриране на JDBC връзка
  • XML твърдение: тества дали данните за отговорите са на правилно правилен XML документ
  • Твърдение за размер: твърди, че отговорът съдържа точния брой байтове в него
  • JMS Publisher: за публикуване на съобщения до дадена цел (тема / опашка) след J2EE спецификация за съобщения

Всички налични компоненти са подробно описани в ръководството за потребителя.

4. Изпълнете тестовете JMeter

Има два начина за стартиране на тестове JMeter, единият от които се състои в използването на наличната приставка Maven, а другият - самостоятелното приложение JMeter в режим, който не е с GUI.

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

4.1. Приставка за JMeter Maven

JMeter Maven Plugin е Maven плъгин, който осигурява съоръжението да изпълнява JMeter тестове като част от нашата компилация; последната му версия в момента е 2.6.0, която е съвместима с Apache JMeter 3.3.

Нека го добавим към pom.xml на нашия проект:

 com.lazerycode.jmeter jmeter-maven-plugin 2.6.0   jmeter-tests  jmeter     ${project.basedir}/src/main/resources ${project.basedir}/src/main/resources  

След това можем да стартираме всички наши тестове с mvn verify или само тези на JMeter с mvn jmeter: jmeter ; ето конзолния изход на командата:

Забележка: Тук посочихме директорията, в която се намират нашите тестове в проекта, или ще бъде избрана по подразбиране ( $ {project.basedir} / src / test / jmeter ); по същия начин е конфигурирана директорията с резултати, иначе тази по подразбиране ще бъде $ {project.basedir} / target / jmeter / results .

Пълната документация за приставките е достъпна тук.

4.2. Режим без GUI

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

jmeter -Jjmeter.save.saveservice.output_format = xml

-n -t src / main / resources / JMeter.jmx -l src / main / resources / JMeter.jtl

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

Забележка: препоръчително е да не използвате GUI режим за тестване на натоварване, а само за създаване на тестове и тестване на грешки.

5. Заключение

В този бърз урок сме настроили Apache JMeter в приложение SpringBoot, за да провеждаме тестове за производителност с плъгин Maven, като същевременно разглеждаме как на практика да проектираме основен тест за производителност.

Както винаги, изходният код за тази статия може да бъде намерен в GitHub.