JMeter тестване на натоварване
JMeter Load Testing е процес на тестване, извършен с помощта на инструмент за тестване на натоварване, наречен Apache JMeter, който е настолно приложение с отворен код, базирано на Java. JMeter за тестване на натоварване е ключов инструмент, който определя дали тестваното уеб приложение може да удовлетвори високи изисквания за натоварване или не. Той също така помага да се анализира цялостния сървър при голямо натоварване.
Тестване на производителността на JMeter
JMeter Performance Testing е метод за тестване, извършен с помощта на Apache JMeter за тестване на производителността на уеб приложение. JMeter за тестване на производителността помага да се тестват както статични, така и динамични ресурси, помага да се открият едновременни потребители на уебсайта и предоставя разнообразен графичен анализ за тестване на производителността. Тестването на производителността на JMeter включва тест за натоварване и стрес тест на уеб приложение.
Инструментът за тестване на Apache JMeter предлага следните предимства при тестване на производителността
- JMeter може да се използва за тестване на производителността както на статични ресурси като JavaScript и HTML, така и на динамични ресурси като JSP, Servlets и AJAX.
- JMeter може да открие максимален брой едновременни потребители, с които вашият уебсайт може да се справи
- JMeter предоставя разнообразни графични анализи на отчетите за изпълнението.
Тестването на производителността на JMeter включва:
- Тестване на натоварване : Моделиране на очакваната употреба чрез симулиране на едновременен достъп на множество потребители до уеб услугите.
- Стрес тестване: Всеки уеб сървър има максимална товароносимост. Когато натоварването надхвърли ограничението, уеб сървърът започва да реагира бавно и да създава грешки. Целта на стрес тестването е да намери максималното натоварване, което уеб сървърът може да понесе.
Фигурата по-долу показва как тестването на натоварване JMeter симулира голямото натоварване:
Създайте план за тестване на ефективността в JMeter
В този урок правим анализ на ефективността на Google.com за 1000 потребители
Преди да тестваме ефективността на целевото уеб приложение, трябва да определим -
- Нормално натоварване : Средният брой потребители посещават вашия уебсайт
- Тежък товар : Максималният брой потребители, които посещават вашия уебсайт
- Каква е вашата цел в този тест?
Ето пътната карта на този практически пример
Стъпка 1) Добавяне на група нишки
- Стартирайте JMeter
- Изберете План за тестване на дървото
- Добавяне на група нишки
Щракнете с десния бутон върху „Тестов план“ и добавете нова група от нишки: Добавяне -> Теми (потребители) -> Група нишки
В контролния панел на Thread Group въведете Thread Properties, както следва:
- Брой нишки : 100 (Брой потребители се свързват с целевия уебсайт: 100)
- Брой цикли : 10 (Брой време за извършване на тестване)
- Период на нарастване : 100
Броят на резбите и броя на контурите са различни.
Периодът на нарастване казва на JMeter колко време да се забави, преди да стартира следващия потребител. Например, ако имаме 100 потребители и период от 100 секунди за увеличаване, тогава закъснението между стартиращите потребители ще бъде 1 секунда (100 секунди / 100 потребители)
Стъпка 2) Добавяне на елементи на JMeter
Сега определяме кои елементи на JMeter в този тест. Елементите са
-
HTTP заявка по подразбиране
Този елемент може да бъде добавен, като щракнете с десния бутон на мишката върху групата нишки и изберете: Добавяне -> Конфигуриране на елемент -> HTTP Заявка по подразбиране.
В контролния панел на HTTP Request Defaults въведете тестваното име на уебсайта (http://www.google.com)
-
HTTP заявка
Right-click on Thread Group and select: Add -> Sampler -> HTTP Request.
In HTTP Request Control Panel, the Path field indicates which URL request you want to send to Google server.
For example, if you enter " calendar " in Path field. JMeter will create the URL request http://www.google.com/calendar to Google server
If you keep the Path field blank JMeter will create the URL request http://www.google.com to Google server.
In this test, you keep the Path field blank to make JMeter create the URL request http://www.google.com to Google server.
Step 3) Adding Graph result
JMeter can show the test result in Graph format.
Right click Test Plan, Add -> Listener -> Graph Results
Step 4) Run Test and get the test result
Press the Run button (Ctrl + R) on the Toolbar to start the software testing process. You will see the test result display on Graph in the real time.
The picture below presents a graph of a test plan, where we simulated 100 users who accessed on website www.google.com.
At the bottom of the picture, there are the following statistics, represented in colors:
- Black: The total number of current samples sent.
- Blue: The current average of all samples sent.
- Red: The current standard deviation.
- Green: Throughput rate that represents the number of requests per minute the server handled
Let analyze the performance of Google server in below figure.
To analyze the performance of the web server under test, you should focus on 2 parameters
- Throughput
- Deviation
The Throughput is the most important parameter. It represents the ability of the server to handle a heavy load. The higher the Throughput is, the better is the server performance.
In this test, the throughput of Google server is 1,491.193/minute. It means Google server can handle 1,491.193 requests per minute. This value is quite high so we can conclude that Google server has good performance
The deviation is shown in red - it indicates the deviation from the average. The smaller the better.
Let compare the performance of Google server to other web servers. This is the performance test result of website http://www.yahoo.com/ (You can choose other websites)
The throughput of a website under test http://www.yahoo.com is 867.326/minutes. It means this server handle 867.326 requests per minute, lower than Google.
The deviation is 2689, much higher than Google (577). So we can determine the performance of this website is less than a Google server.
NOTE: The above values depend on several factors like current server load at Google, your internet speed, your CPU power etc. Hence, it's very unlikely that you will get the same results as above. So don't panic!
Troubleshooting:
If you face the issue while running the above scenario… do the following
- Проверете дали се свързвате с интернет чрез прокси сървър. Ако да, премахнете проксито.
- Отворете нов екземпляр на Jmeter
- Отворете PerformanceTestPlan.jmx в Jmeter
- Щракнете двукратно върху Група нишки -> Резултат от графиката
- Стартирайте теста