Автоматизація навантажувального тестування: зв'язка Jmeter + TeamCity + Grafana



Зображення: Flickr

В нашому блозі на Хабре ми продовжуємо розповідати про побудову DevOps-культури в компанії — наприклад, в одному з останніх топіків ми описували те, які завдання вирішуємо за допомогою системи SaltStack. Сьогодні мова піде про іншу цікаву тему — автоматизації навантажувального тестування за допомогою зв'язки декількох готових інструментів.
Читати далі →

Одного разу зустрілися JMeter і незнайомка...


Кадр з фільму «Будинок біля озера». Зустріч (www.kinopoisk.ru)

Джим ще не знав, як підійти до неї, з чого почати розмову і на якій мові його вести. Але він бачив багато, володів мовами і мав в рукаві не один козир. І будучи впевненим допомоги вірних друзів (це ми з вами) і забувши про сумніви, йшов на зустріч долі.

Нижче розповідь про те, як Джим завойовував знову і знову серце незнайомій системи. Не подумайте, що незнайомок було кілька. Вона була одна, єдина, але така різна, і від того історії будуть слідувати одна за одною.

Читати далі →

TailSampler — паралельна відправка GET-запитів в Apache.JMeter


 
1. Призначення плагіна «HTTP Request Tail»
Плагін спрощує завантаження вбудованих ресурсів, дозволяє паралельно виконувати зазначені GET-запити. Роблячи тест максимально близьким до роботи браузера за складом завантажуваних ресурсів і за способом завантаження цих ресурсів.

TailSampler виручає якщо потрібно:
  • виконати групу GET-запитів паралельно;
  • виконати 1000 GET-запити, не створюючи 1000 компонентів HTTP Request;
  • протестувати сайт, активно використовує AJAX, Adobe Flash, Adobe AIR, SilverLigth, ...

Читати далі →

Вибираємо html-парсер для Apache.JMeter

Середня якість повноти вилучення посилань на вбудовані ресурси html-парсерами Apache.JMeter
Середня якість роботи парсерів (для семи сайтів)

Пропоную:
  • порахувати середнє якість повноти вилучення посилань на вбудовані ресурси html-парсерами Apache.JMeter;
  • перевірити чи правда витяг посилань у Apache.JMeter 3.0 стало більш повним;
  • випробувати в справі плагін CsvLogWriter.
Як говорить народна мудрість: Вірити вір, але…

Читати далі →

Плагін CsvLogWriter для JMeter

Введення

Напевно кожен, хто користувався стандартними листенерами в JMeter, стикався з наступними обмеженнями:
  • стандартні листенеры не дозволяють отримати детальну інформацію по всім запитам, прописаним в тест плані;
  • стандартні листенеры виводять інформацію в XML — форматі, що ускладнює подальший аналіз логів засобами Excel і IPython.
Щоб обійти ці обмеження, було ухвалено рішення переробити формування лог-файлів за допомогою нового плагина CsvLogWriter.

Читати далі →

Досвід автоматизації тестування серверного REST API за допомогою Jmeter

У даній статті мова піде про досвід автоматизації функціонального і навантажувального тестування API протоколу RTLSCP. Серверна частина системи локального позиціонування RealTrac складається з основного (core) сервера, який зв'язується з пристроями по протоколу INDD (InterNanoCom Protocol) і сервера додатків (appserver). Сервер додатків спілкується з зовнішніми клієнтами і основним сервером за допомогою протоколу RTLSCP (Real Track Location System Communication Protocol). Клієнти також можуть безпосередньо звертатися до основного сервера за RTLSCP.
Читати далі →

Тест продуктивності: дивно і просто

Так склалося, що останні півроку я активно займався тестами продуктивності і мені здається, що в цій області IT панує абсолютне нерозуміння того, що відбувається. У наш час, коли зростання обчислювальних потужностей знизився (vertical scalability), а обсяг завдань зростає з колишньою швидкістю, проблема продуктивності стає все гостріше. Але перш, ніж кинутися на боротьбу з продуктивністю, необхідно отримати кількісну характеристику.

Короткий зміст статті:


Передісторія
Одного разу, подорожуючи в поїзді, я захотів порахувати, яка відстань між стовпами електропередач. Озброївшись звичайними годинами і оцінюючи середню швидкість поїзда 80-100км/год (25 м/с), я засікав час між 2-ма стовпами. Як не дивно, цей наївний метод давав дуже гнітючі результат, аж до 1.5-2 кратної різниці. Природно метод нескладно було виправити, що я і зробив, досить було засікти 1 хвилину і порахувати кількість стовпів. І не важливо, що миттєва швидкість впродовж хвилини може змінюватись і навіть не важливо порахуємо ми останній стовп або хвилина мине посередині, бо як вимірювань цілком достатньо для необхідного результату.
Зміст тесту в тому, щоб отримати переконливі для себе і для інших вимірювання.

Тести «на коліні»
Ця історія мені нагадує те, що відбувається з тестуванням продуктивності в Software Engineering. Досить часте явище — запуск 1-2 тестів, побудова графіків та отримання висновків про scalability система. Навіть, якщо є можливість застосувати МНК або дізнатися стандартну помилку, це не робиться за непотрібністю.» Особливо цікава ситуація, коли після цих 2 вимірювань, люди обговорюють наскільки швидка система, як вона масштабується і порівнюють її з іншими системами за особистим відчуттям.
Звичайно, оцінити, наскільки швидко виконується команда, не складно. З іншого боку, швидше не означає краще. Системи мають понад 10 різноманітних параметрів, від hardware на якому вони працюють до input, які вводить користувач у різні моменти часу. І найчастіше 2 еквівалентних алгоритми можуть давати різні параметри масштабованості в різних умовах, що робить вибір зовсім не очевидним.

Недовіру до тестів
З іншого боку результати вимірювань завжди залишаються джерелом спекуляцій і недовір.
— Вчора ми міряли було X, а сьогодні 1.1*X. Хтось щось міняв? — 10% — це нормально, у нас тепер більше записів в БД.
— При проведенні тесту був відключений антивірус, скайп, анімація заставки?
— Не-не, для нормальних тестів нам треба закупити кластер серверів, встановити микросекундную синхронізацію часу між ними… видалити ОС, запускати в захищеному режимі…
— Скільки користувачів ми підтримуємо? У нас 5000 зареєстрованих користувачів, раптом 20% з них залягання, треба запускати тести з 1000 паралельними агентами.


Читати далі →

Приручаємо JMeter

imageСьогодні я хочу розповісти про чудовому інструменті, назву якого винесено в заголовок статті. Зрозуміло, моєю метою не є написання докладного керівництва Apache JMeter. У своїй статті я хочу лише зафіксувати ряд, на мій погляд, не очевидних моментів, з якими мені довелося зіткнутися у своїй повсякденній роботі. Я сподіваюся, що моя стаття буде корисна (відразу попереджаю, картинок буде багато). 

Читати далі →

HP StormRunner Load. Практичне керівництво. Частина III

Привіт Хабр! Сьогодні пропонуємо вашій увазі третю частину циклу статей, присвяченого HP StormRunner Load. Попередні частини: I і II.



У цій частині поговоримо про аналіз результатів.

Читати далі →

HP StormRunner Load. Практичне керівництво. Частина I

image

Привіт Хабр!

Сьогодні ми розпочинаємо серію статей, присвячених HP StormRunner Load.

Цей пост — перша частина посібника HP StormRunner Load.

HP StormRunner Load є рішенням на основі SaaS для організацій і, можливо, приватних осіб, що займаються розробкою програмного забезпечення, яким необхідно створювати і запускати навантажувальні тести для своїх веб-додатків. За допомогою цього практичного керівництва ви вивчіть особливості і можливості StormRunner Load, навчитеся створювати зразки скриптів і розгортати їх на хмарних генераторах навантаження. Ви також дізнаєтеся, як аналізувати дані з цих тестів і оптимізувати мережу, процеси розгортання та інфраструктуру.

Читати далі →