Я заметил, что большинство тестировщиков слабо знакомо с такой областью, как тестирование производительности. В основном мы концентрируем усилия на функциональных аспектах тестирования, оставляя тестирование производительности, масштабируемости и настройки на откуп разработчикам. Но ведь стабильность – важная часть качества продукта, особенно в эпоху распределенных сетей, когда приложения масштабируются независимо и опираются на интеграцию через HTTP-протоколы. Другой аспект качества – способность увеличивать масштаб наших систем. Для того, чтобы справиться с ростом трафика, нужно знать пропускную способность ПО.
Инженеры хорошо знакомы с такими инструментами, как JMeter, Gatling, Tsung. Они относительно просты в использовании, но люди зачастую плохо разбираются в анализе выданных ими результатов, и не умеют делать выводы на их основании. Собеседуя кандидатов на должность тест-инженера, я часто встречаю людей, утверждающих, что они имеют опыт тестирования производительности, но не владеющих знаниями о метриках этого вида тестирования, а также о его элементарных положениях. Основная цель нагрузочного тестирования и тестирования производительности – не умение обращаться с соответствующими инструментами, а знания, полученные в результате их использования. Цель этой статьи – осветить основные аспекты этой области.
Доклад посвящён эволюции методологии используемой для нагрузочного тестирования и основан на практическом опыте нескольких проектов. В начале пути была простая автоматизации нагрузочного тестирования. По-мере усложнения разрабатываемого продукта и изменения требований, возникала потребность в усложнения методологии и в заимствовании подходов хорошо зарекомендовавших себя для функционального тестирования. Кульминацией эволюции, в рамках доклада, будет рассказ об адаптации BDD (Behaviour Driven Develoment) практики для нагрузочного тестирования.
Не стало неожиданностью, что JMeter там сильно оторвался от других инструментов. Для тех, кто хочет освоить этот инструмент совсем скоро у нас стартует курс Тестирование производительности.
Выполняя тестирование, не забывайте о том, что нефункциональные характеристики качества тоже имеют большое значение.
Мы собрали несколько докладов о тестировании производительности и защищенности, которые были прочитаны в рамках конференции SQA Days 19 в Санкт-Петербурге.
В мае вышла новая версия JMeter 3.0. Концептуальных изменений в ней нет, однако поменялся интерфейс, изменились названия некоторых элементов, а также появились новые элементы.
Работа над курсом кипит, а мы решили поделиться записью первого вводного модуля курса. Модуль позволяет познакомиться с тренером и оценить его манеру преподнесения информации.
Содержание модуля:
Что такое производительность? Тестирование производительности -- зачем мы его проводим?
Функциональные и нефункциональные характеристики качества. Производительность + надёжность + удобство использования (дизайн). Скорость и ресурсоёмкость. Уровни изменений: производительность алгоритмов, производительность ПО, производительность человека, использующего ПО.
Какие ошибки мы можем обнаружить: узкое место («бутылочное горлышко»), медленная подсистема/функция, точки насыщения, функциональные дефекты.
Ложно-положительные и ложно-отрицательные результаты.
... ну, в той или иной степени. Конечно, есть ряд болезней, при которых у человека нарушается чувство времени, но вряд ли вы один из таких людей. Следовательно, вы тоже тестировщик производительности.
Больше всего тестировщиков производительности бесит, когда обнаруженные в тестируемом коде проблемы можно было заметить и на глаз (ну ладно, больше всего их бесит, когда функционал не работает, но не суть). Вот где в игру должны вступить вы как их коллега.
Сколько раз вы барабанили пальцами по столу, ожидая, пока колесо загрузки в браузере наконец-то выдаст вам что-то вменяемое? Или обрабатывали что-то сразу пакетом, и успевали выпить чашку кофе в процессе? Обычная реакция тестировщика - пожать плечами и сказать "Да это просто такое окружение. В конце концов, это тест-стенд". Как вариант - "пусть у тестировщиков производительности об этом голова болит".
Нет, я вас очень даже понимаю! Все мы заняты, у всех нас есть свои дедлайны. Моя идея в том, что вы можете неплохо пособить проекту - и, следовательно, себе - обращая внимание на такие вещи.
Несколько дней назад в скайп-чате украинского сообщества тестировщиков был задан вопрос про то, как читать данные из CSV-файлов в инструменте JMeter, и я вспомнил, что у меня есть фрагмент консультации к курсу "Тестирование производительности веб-приложений", где как раз подробно рассматривается этот вопрос. И я решил поделиться этим материалом, это будет моим ответом на заданный в чате вопрос.
Продолжаем публикацию лучших докладов SQA Days 13. Сегодня представляем доклад Марины Широчкиной "Тестирование производительности клиентсайда".
Тестирование производительности сервер-сайда, того, как быстро и стабильно отвечают сервера под нагрузкой, уже стало хорошей практикой. Есть инструменты, подходы и методики. С тестированием производительности клиентской части, т.е. производительности того, что происходит у конечного пользователя в его браузере, все немного хуже. За последние полтора года мы прошлись по неплохому комплекту граблей, кажется, что-то про это поняли и хотим об этом поговорить.
На очередной встрече сообщества тестировщиков Санкт-Петербурга, состоявшейся 26 мая 2011 года, с докладом «Нагрузочное тестирование с точки зрения тестирования» выступила Марина Широчкина, специалист по нагрузочному тестированию компании Яндекс. Предлагаем Вам ознакомиться с записью выступления в виде слайдкаста (на сайте сообщества желающие смогут найти также видеозапись).