Шпаргалка по джимітеру

Як завжди, наші шпаргалочки найліпші! Готуйтеся до співбесіди по JMeter -у по  переліком запитань. Ці питання ??? на співбесіді QA призначені, як для початківців, так і для професіоналів. Ми розпочнемо з досить простих питань і перейдемо до питань для QA більш високого рівня знань.

  1. Що таке тестування продуктивності?
  2. Які типи тестування продуктивності розрізняють?
  3. З яких етапів складається Performance Testing будь-якої аплікації?
  4. Що таке JMeter?
  5. Чому слід обирати інструмент JMeter для тестування продуктивності?
  6. Які особливості JMeter -у?
  7. Які види аплікацій можна протестувати за допомогою JMeter -а?
  8. Пояснить параметризацію в JMeter -і?
  9. Що таке кореляція у JMeter?
  10. Що таке тест-план у JMeter?
  11. Питання #11 Що таке робоче середовище (Workbench) ?
  12. Що таке Thread Group у JMeter-і?
  13. Що таке період збільшення (ramp-up period)?
  14. Які семплери в JMeter -і знаєте?
  15. Що таке Listeners в JMeter? Які Listeners найчастіше використовуються?
  16. Які різні таймери (Timers) є в JMeter-і?
  17. Що таке точка з’єднання (Rendezvous Point)?
  18. Assertions в JMeter-і?
  19. Що таке використання елементів конфігурації?
  20. Що таке пред процесори (Pre-Processors)?
  21. Що таке пост-процесори?
  22. Як ми можемо запустити JMeter у режимі, не використовуючи графічного інтерфейсу?
  23. Як ми можемо зменшити споживання ресурсів у JMeter-і?
  24. Що означає 90% запитів в JMeter-і?
  25. Поясніть різницю?
  26. Що таке тестування розподіленого навантажування (Distributed load testing)? Яким чином його можна досягти в JMeter -і?
  27. Яка максимально рекомендована кількість потоків у одній системі?
  28. Що таке Master-Slave Конфігурація ?
  29. Чи симулює JMeter поведінку браузера?
  30. Які основні відмінності між Jmeter і Load Runner?
  31. Поясніть Flow тестового сценарію з Recorder…
  32. Чи може Jmeter записувати дії з мобільного? Якщо так, то як?
  33. Що таке Root CA Certificate?
  34. Чи можна запускати скрипти Selenium в Jmeter? Якщо так, то як?
  35. Як керувати сесіями та кукі в Jmeter?
  36. У чому полягає тестування Баз Даних у Jmeter ?
  37. Важливі кроки для перевірки запитів JDBC:
  38. Чи може Jmeter виміряти продуктивність повної програми?
  39. Чи потрібна підготовка окремого тест-плану JMeter для тестування однієї й тієї ж самої програми на різних операційних системах?
  40. Як забезпечити повторне використання у скриптів у JMeter?

Питання #1 Що таке тестування продуктивності?

Відповідь: Тестування продуктивності або Performance Testing — це вид  тестування програмного забезпечення, в якому продуктивність аплікації оцінюється при очікуваному або вищому ніж очікувалося навантаженні. Це вид тестування проводиться під час розробки аплікації, щоб переконатися, що вона так просто не ламається, не падає і відповідає межам стандартного / прийнятного часу при дійсному навантаженні. Тобто ціль перевірити швидкодію реакції системи на певний рівень навантаження. А Load Testing та стрес-тестування це вже більше, як то кажуть, “по помідорки”  😯 Читайте нижче:

Питання #2 Які типи тестування продуктивності розрізняють?

  • Навантажувальне тестування (Load Testing) — тип тестування продуктивності для вимірювання поведінки аплікації при очікуваному навантаженні.
  • Стресове тестування (Stress testing) — оцінювання аплікаційної поведінки під навантаженням, яке перевищує умови порогового або максимального навантаження.
  • Тестування на витривалість (Endurance Testing) — це вид тестування ПЗ під час котрого аплікація перевіряється впливом навантаження протягом тривалого часу перевірки, зазвичай використовується для виявлення витоків пам’яті в аплікації.
  • Шип тестування (Spike testing) — від анг. слова Spike, котре перекладається як цвях, зубець проколювати. Spike testing — це вид тестування ПЗ, оцінювання аплікаційної поведінки при раптовому збільшенні кількості користувачів.
  • Об’ємне тестування (Volume testing) — це тестування програми великою кількістю даних (зазвичай з великими записами даних в базі даних).

Більш детальніше про це все можна дізнатися у дописі на нашому сайті тестувальників: Все про Performance Testing або тестування продуктивності

Питання #3 З яких етапів складається Performance Testing будь-якої аплікації?

1. Збір та аналіз вимог до тестування продуктивності (Performance Test Requirements Gathering & Analysis) — на цьому етапі збираються усі дані про аплікацію від клієнта та інших зацікавлених сторін програмного продукту.
2. Вибір інструмента тестування (Testing Tool Selection) — цей етап включає вибір інструментів тестування продуктивності.
3. Планування випробувань продуктивності (Performance Tests Planning) — етап планування тесту включає планування всього процесу перевірки продуктивності, інфраструктури та налаштування середовища; сценарії тест кейсів для скриптів і т.д.
4. Імплементація тестового сценарію (Test Script Implementation) — на цьому етапі створюються сценарії тестування продуктивності за допомогою інструменту, який був вибраний на попередніх етапах.
5. Виконання тесту продуктивності (Performance Test Execution) — на цьому етапі тестовий скрипт виконується за заданий час, який зазначений на етапі планування.
6. Аналіз результатів тесту (Test Result Analysis) — етап результатів аналізу, даний етап включає консолідацію результатів тестування для визначення різних атрибутів продуктивності аплікації та визначення “вузьких місць” продуктивності.

Питання #4 Що таке JMeter?

Відповідь: JMeter — це інструмент тестування продуктивності з відкритим кодом, розроблений на мові програмування Java. Він може бути використаний для проведення перевірки продуктивності веб-аплікацій, веб-сервісів (як SOAP, так і REST), FTP-серверів, баз даних, серверу LDAP тощо.

Питання #5 Чому слід обирати інструмент JMeter для тестування продуктивності?

Отже, переваги використання інструмента JMeter-а для тестування продуктивності:

1. Безкоштовна ліцензія.
2. Доступний будь-кому, оскільки кожен може налаштувати його для свого конкретного використання.
3. Має хорошу підтримку онлайн-спільноти та навчальні посібники (тюторіали).
4. Підтримує тестування продуктивності різних аплікацій, починаючи від веб-сайтів, веб-сервісів до FTP та баз даних.
5. Легкий JMeter для навчання та користуватися вцілому. Більше переваг дізнайтеся у частині шпаргалки по Jmeter — Jmeter What is it ? & Advantages

Питання #6 Які особливості JMeter -у?

Відповідь: Деякі особливості JMeter-у:

1. JMeter (повністю) побудований на 100% на Java. Таким чином, він має всі переваги аплікації на основі Java, таких як: кросплатформеність, розширюваність, надійність тощо.
2. JMeter забезпечує легке та швидке створення тестових сценаріїв, включаючи розподілених тестових сценаріїв.
3. Для інтерпретації даних у JMeter є різноманітні Listeners, вони охоплюють та аналізують результи тестів, як у табличному, так і в графічному форматах.
4. JMeter може бути застосований до навантажувального тесту різних протоколів: HTTP, HTTPS, FTP, LDAP, TCP та ін, а також API тестування.

Питання #7 Які види аплікацій можна протестувати за допомогою JMeter -a?

Відповідь: Види аплікацій, які можна протестувати за допомогою JMeter:

  • Веб-сайти;
  • Веб-сервіси – REST та SOAP;
  • Бази даних (JDBC);
  • Shell скрипти;
  • FTP;
  • LDAP;
  • TCP;
  • SMTP, POP3, IMAP;

Якби щось помінялося, звіряєте, шукаєте інфу та навчаєтеся згідно офіційної документації Jmeter

Питання #8 Поясніть параметризацію в JMeter -і?

Параметризація у JMeter -і — це процес параметризації вводу даних користувача або інших тестових вхідних даних для того, щоб використовувати різні значення для різних користувачів та циклів ітерацій.

Приклад. Зовнішній файл CSV може бути створений з кількома реєстраційними даними, а потім переданий у сценарій тестування навантаження для того, щоб отримати різні облікові дані для кожної ітерації. [Для отримання більш детальної інформації див: Параметризація в JMeter-і
http://artoftesting.com/performanceTesting/parameterization.html]

Питання #9 Що таке кореляція у JMeter?

Кореляція — це термін, який позначає залежність одного параметру від іншого. І чим цей показник вищий, тим зв’язок означає тісніший. Кореляція є найважливішим аспектом сценарію в JMeter-і. Вона включає: завантаження динамічних даних із попередніх запитів / викликів та передачі їх на наступні запити як параметрів.

Приклад. Ми можемо витягувати значення розділів змінних з відповіді запиту з деталями входу і потім ці значення передавати до наступних запитів (таким чином обробляючи розділи). [Для отримання більш детальної інформації див: Кореляції в JMeter-і http://artoftesting.com/performanceTesting/correlation.html]

Питання #10 Що таке тест-план у JMeter?

Тест план в JMeter-і — це логічний контейнер, який містить усі тестові елементи, які керують тестом продуктивності.

Елементи Тест плану:

  • Thread Group;
  • Samplers;
  • Timers;
  • Assertions;
  • Listeners тощо.

Питання #11 Що таке робоче середовище (Workbench)?

Робоче середовище (Workbench) в JMeter-і є тимчасовим місцем зберігання тестових елементів та сценаріїв. Воно також містить нетестові елементи такі як: HTTP Proxy Server, які можуть бути налаштовані для запису скриптів через браузер у JMeter-і. Будь-який елемент, розміщений у Workbench, не зберігається разом з тестовими планами, .jmx скрипта.

Питання #12 Що таке Thread Group у JMeter -і?

Відповідь: Thread Group — це елемент Тестового плану JMeter-а, який являє собою “пул” віртуальних користувачів, які виконують набір операцій.

Питання #13 Що таке період збільшення (ramp-up period)?

Відповідь: ramp-up період — це період “розгону”. На початку навантажувального тесту повільно збільшується кількість користувачів для того, щоб дослідити їх вплив на продуктивність аплікації. У JMeter -і період збільшення визначається періодом часу, протягом якого всі вказані користувачі потрапляють у стан запуску.

Питання #14 Які семплери в JMeter -і знаєте?

Відповідь: Використовуються шаблони (Samplers) для надсилання різних типів запитів на сервер.

Шаблони (Samplers), які найчастіше використовуються:

  • запит HTTP;
  • запит JDBC;
  • запит SOAP-XML;
  • запит JUnit;
  • шаблон TCP Sampler тощо.

Питання #15 Що таке Listeners в Jmeter? Які найчастіше Listeners використовуються?

Listeners використовують для перегляду та збереження результатів тесту. Також вони допомагають у табличному та графічному аналізі результатів тесту.

Деякі найчастіше застосовувані слухачі (Listeners):

  • Зведений звіт (Aggregate Report);
  • Сукупний графік (Aggregate Graph);
  • Результати графіків (Graph Results);
  • Перегляд дерева результатів (View Results Tree) тощо.

 

Питання #16 Які різні таймери (Timers) є в Jmeter -і?

Відповідь: Таймери (Timers) використовуються для припинення виконання тесту потоку за певний заздалегідь визначений час. Ці таймери використовуються для моделювання реальних користувацьких сценаріїв.

У JMeter-і доступні різні типи таймерів, а саме:

  • постійний таймер (Constant Timer);
  • гаусовий випадковий таймер (Gaussian Random Timer);
  • однорідний випадковий таймер (Uniform Random Timer);
  • таймер постійного пропускного процесу (Constant Throughput Timer);
  • таймер синхронізації (Synchronizing Timer);
  • таймер зворотного ходу (Beanshell timer);
  • таймер BSF (BSF Timer) і т. д.

 

Питання #17 Що таке точка з’єднання (Rendezvous Point)?

Відповідь: Точка з’єднання (Rendezvous Point) використовується для виконання шип тестування (Spike testing) у JMeter-і. Виконується за допомогою “Таймера синхронізації” (“Synchronizing Timer”), очікуючи до тих пір, поки кількість активних користувачів не досягне певного заданого значення під час навантажувального тестування.

Питання #18 Assertions в JMeter -i?


Відповідь: Твердження (Assertions) використовуються для перевірки деяких значень у відповідь на запити шаблонів (Samplers) в JMeter-і.

Питання #19 Що таке використання елементів конфігурації ?

Відповідь: Конфігураційні елементи використовуються для налаштування запитів шаблона (Sampler).
Наприклад, конфігурація набору CSV даних може бути використана для параметризації запитів шаблона (Sampler) із значеннями, які отримані з зовнішнього CSV файлу.

Питання #20 Що таке пред процесори (Pre-Processors) ?

Відповідь: Пред процесори у джимітері перевіряють елементи плану, які виконуються перед виконанням запиту шаблона (Sampler).

Пред процесори, які найчастіше використовуються у JMeter-і:

  • BeanShell PreProcessor;
  • HTML Parser HTML;
  • модифікатор повторного запису URL-адреси HTTP (HTTP URL Re-writing Modifier);
  • параметри користувача RegEx (RegEx User Parameters) тощо.

 

Питання #21 Що таке пост-процесори ?

Відповідь: Пост-процесори (Post-processors) — це елементи тестового плану, які виконуються після виконання запиту шаблону (Sampler). Як правило, поcт-процесори використовуються для отримання деяких значень із шаблона (Sampler) відповіді.

Питання #22 Як ми можемо запустити Jmeter, не використовуючи графічного інтерфейсу ?

Запустити JMeter з командної строки. Команда для запуску JMeter -а в режимі, що не використовує графічного інтерфейсу (GUI):

JMeter -n -t-test.jmx -l test.jtl

де,
n — вказує, що JMeter буде запускатися в режимі, що не використовує графічного інтерфейсу користувача (GUI);
t — для файлу тестового скрипту;
l — для jtl-файлу з результатом кожного шаблону.

Питання #23 Як ми можемо зменшити споживання ресурсів у JMeter -i ?

Відповідь: Щоб максимально ефективно використовувати наявні ресурси ОС, комп’ютера, робочої машини та загалом, як показує практика, слід враховувати таку практику в тестах:

  • Використовуйте режим без графічного інтерфейсу (GUI): JMeter -n -t-test.jmx -l test.jtl.
  • Використовуйте по можливості якнайменше Listeners, “прапорець –l ”, як показано вище, всі вони можуть бути видалені або вимкнені.
  • Не використовуйте в Listeners по можливості: ‘‘Перегляд дерева результатів” (‘‘View Results Tree’’) або ‘‘Перегляд результатів у таблиці’’ (‘‘View Results in Table’’) під час тестування навантаження, використовуйте їх лише на фазі написання скрипту, щоб налаштувати Ваш скрипт.
  • Замість того, щоб використовувати багато аналогічних Samplers, використовуйте те саме твердження (Samplers) у циклі та використовуйте змінні (набір даних з файлу у CSV), щоб змінити вибірку, або використовуйте Access Log Sampler. [Тут не допоможе включений контролер, оскільки він додає усі тестові елементи у файл до Тестового плану.]
  • Не використовуйте функціональний режим JMeter -а під час виконання тесту навантаження.
  • Використовуйте CSV вихідні дані, а не XML.
  • Зберігайте лише потрібні дані.
  • Використовуйте також якомога менше Assertions.
    [джерело: http://jmeter.apache.org/usermanual/best-practices.html]

 

Питання #24 Що означає 90% запитів в JMeter -і ?

Відповідь: Зведений звіт (Aggregate report listener) містить 90% запитів, як один з показників метрики. В посібнику Apache JMeter описано наступне про 90% запитів: “90% вибірки береться не більше, ніж цей час”. Це насправді 90 відсотків часу відгуку вибірки :
90 % = (90/100) * N + 1/2,
де N — кількість вибірки.
Отже, якщо ми маємо 10 вибірок, то 90% запитів становитиме 9,5 або 9. Це означає, що 9-те значення у відсортованому списку вибірки (відсортовані за зростанням порядку їх часу відгуку) буде значенням 90% запиту.

Питання #25 Поясніть різницю ?

No. of threads=500
Ramp up=1000
Loop=1
 No. of threads=50
Ramp up=100
Loop=10

“500 потоків, Loop 1” означає 500 потоків в один і той же час, роблячи цикл ONCE.
“50 потоків, цикл 10” Означає лише 50 потоків в один і той же час, роблячи цикл TEN TIMES (10 разів).

Питання #26 Що таке тестування розподіленого навантаження (Distributed load testing) продуктивності ? Яким чином його можна досягти в Jmeter -i ?

Відповідь: Тестування розподіленого навантажування (Distributed load testing) — це процес за допомогою, якого можуть бути використані декілька систем (машин) для моделювання навантаження великої кількості користувачів. Причиною того, що використовується більше, ніж одна система для тестування навантаження є обмеження ресурсів однієї системи для генерування великої кількості потоків (користувачів). У JMeter-і ми можемо проводити тестування розподіленого навантаження (Distributed load testing), використовуючи конфігурацію master-slave.

Питання #27 Яка максимально рекомендована кількість потоків у одній системі ? 

Відповідь: це залежить від апаратної конфігурації системи, котра включає в себе процесор, JVM, виділену пам’ять -Xmx та ін. параметри робочої машини.
Інші фактори, які впливають — це кількість компонентів у тест-плані тобто кількість елементів конфігурації або процесорів, а також залежить від того, чи використовуватимете графічний інтерфейс користувача/режим GUI/Non-GUI Mode.

Питання #28 Що таке Master-Slave Конфігурація ?

Конфігурація Master-Slave є частиною розподіленого тестування, у якому для перевірки навантаження використовується більше ніж одна машина.

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

Коротко про порядок дій у процесі:

  • на майстер-машині редагується файл jmeter.properties і додаються в нього IP-адреси підлеглих машин у поле remote_host.
  • слід зберегти файл і перезавантажити Jmeter.
  • у меню «RUN» в Jmeter виберіть «Remote Start» та виберіть IP-адресу машини, котру потрібно викликати.
  • ще раз виберіть меню RUN і виберіть «Remote Start», щоб запустити вже всі підрядні машини для тестування.

 

Питання #29 Чи симулює JMeter поведінку браузера ?

Ні, Jmeter не підтримує фактичну поведінку браузера. Він не відображає веб-сторінки HTML, як це робить звичайний веб-переглядач. Проте відповіді може розглядати у форматі HTML

Питання #30 Які головні відмінності між Jmeter і Load Runner ?

Відповідь: Jmeter вважається основним конкурентом Load Runner у галузі, але між ними є деякі відмінності.

Load Runner має ще більше технічних можливостей. Load Runner продукт Microsoft відповідно функціонал на основі .Net технологій. Load Runner не являється опенсорсною програмою.  Джимітер підтримує моніторинг у режимі реального часу, однак з доволі обмеженим функціоналом. Генератор навантаження у Jmeter є необмеженим, а у Load Runner обмежується ліцензією. Лідируючі позиції HP Load Runner відходять у минуле, на даний момент все більше фахівців застосовують для навантажувального тестування Jmeter.

Питання #31 Поясніть Flow тестового сценарію з Recorder…

HTTP (s) Test Script Recorder використовується для запису всіх HTTP-запитів, що надходять на сервер із тестової програми. Є деякі конфігурації, які потрібно зробити в Jmeter, щоб працював запис.

Нижче наведено кроки запуску Recorder -a:

  • Додати HTTP(s) Test Script Recorder to WorkBench.
  • Введіть номер порту, з якого ви хочете запустити свій проксі-сервер.
  • Recording Controller у план тестування і виберіть, щоб всі записи зберігалися під ним.
  • Запустіть проксі-сервер.
  • Налаштуйте свій браузер за допомогою ручних параметрів проксі-сервера, що вказують на той самий номер порту, який використовується в тестовому сценарії.

 

Питання #32 Чи може Jmeter записувати дії з мобільного ? Якщо так, то як ?

Відповідь: Так, Jmeter може записувати запити HTTP або https, які надходять на сервер із Вашої мобільної програми. Мобільний та Jmeter повинні бути в тій же мережі.

Нижче наведено необхідну конфігурацію:

  • Налаштуйте проксі-сервер у JMeter для запуску на вказаному порті.
  • Налаштуйте проксі-сервер у мобільних налаштуваннях Wi-Fi, та введіть той самий номер порту, який використовується в Recorder.
  • Встановіть сертифікат кореневої сертифікації (Root certificate) на свій мобільний.
  • Зробіть запит на сервер із мобільного пристрою та стежте за тим, щоб він був охоплений вказаним контролером.

Питання #33 Що таке Root CA Certificate ?

Відповідь: підключення HTTPS вимагає сертифіката для автентифікації підключень, які встановлюються, коли браузер натискає веб-сервер.

Jmeter генерує його тимчасово для перехоплення трафіку SSL, щоб записувати дії.Для запису дій через мобільний телефон потрібно створити цей сертифікат на мобільному пристрої для запису дій.

Питання #34 Чи можна запускати скрипти Selenium в Jmeter ? Якщо так, то як ?

Відповідь: Так, можна запускати скрипти Selenium в Jmeter.

Є два способи зробити це. Можна використовувати бібліотеки Junit для створення сценаріїв Selenium та зберігати як Jars та зберігати їх у тій самій папці Jmeter. Потім додайти Junit Sampler до тест-плану та імпортувати файл Jar.

В іншому випадку можна використовувати плагін Samdler Webdriver.  Код пишеться у Webdriver sampler, а потім виконується для перевірки продуктивності.

Питання #35 Як керувати сесіями та куками в JMeter ?

Керувати сеансами та файлами cookie в Jmeter можна використовуючи елементи конфігурації, такий як HTTP Cache Manager, який дає можливість очистити файли cookie в кожній ітерації, а також дозволяє додавати користувальницькі файли cookie.

HTTP manager cache допомагає очистити кеш-пам’ять після кожної ітерації відповідно до вимог в тестах навантаження, а також обмежує кількість елементів, які можна зберігати в кеш-пам’яті. Дані елементи можуть бути приєднані до HTTP-семплера.

Питання #36 У чому полягає тестування Баз Даних у JMeter ?

Запити JDBC використовуються для встановлення зв’язку з базами даних, а потім вимірюють час відгуку запитів.

Питання #37 Важливі кроки для перевірки запитів JDBC:

  • Setting up Config Element  — конфігурація з’єднання бази даних, сюди необхідно додати URL-адресу бази даних та JDB, клас драйвера, ім’я змінної для цієї конфігурації з’єднання, щоб використовувати його у sampler.
  • Додати JDBC Request, додайти те саме ім’я змінної, що додане вище, і далі написати вже свої запити SQL для тестування.

Питання #38 Чи може JMeter виміряти продуктивність мобільної програми ?

Наприклад, у Вашому мобільному додатку є кілька екранів. Чи може Jmeter виміряти час, який потрібно перевернути екрани?

Відповідь: Ні, Jmeter не вимірює час переходу між екранами чи будь-які рухи. Він може вимірювати лише дії сервера, а не взаємодії інтерфейсу з користувачем.

Питання #39 Чи потрібна підготовка окремого тест-плану JMeter для тестування однієї й тієї ж самої програми на різних операційних системах ? 

Наступні факти підтверджують, що план тестування JMeter може працювати на будь-якій ОС.

1. JMeter — це додаток на мові програмування Java, що робить платформу незалежною.
2. JMeter використовує формат XML при збереженні тестового плану.Таким чином, не має нічого спільного з конкретною ОС.Ви можете запускати ці тестові плани на будь-якій ОС, де JMeter може працювати.

Питання #40 Як забезпечити повторне використання скриптів у Jmeter ? 

1. Потрібно використовувати такі елементи конфігурації, як “CSV Data Set Config” та “User Defined Variables” для підтримки більшого повторного використання даних.
2. Групувати завдання та їх виклики через “Module Controller”.
3. Створення власних функцій Bean Shell та їх повторне використання.

Підсумок:

Окрім того, як відповідати на ці та схожі запитання, Ви повинні розуміти предмет і хоч трішки вміти користуватися цим потужним інструментом для перформанс тестування 🙂

Related posts

Comments ( 2 )

Leave a Comment

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.