Из Википедии, бесплатной энциклопедии
  (Перенаправлено из нагрузочного теста )
Перейти к навигации Перейти к поиску

Нагрузочное тестирование - это процесс предъявления требований к программной системе и измерения ее отклика.

Нагрузочное тестирование программного обеспечения [ править ]

Термин « нагрузочное тестирование» используется по-разному в профессиональном сообществе тестирования программного обеспечения . Под нагрузочным тестированием обычно понимается практика моделирования ожидаемого использования программы путем моделирования одновременного доступа к программе нескольких пользователей. [1]Таким образом, это тестирование наиболее актуально для многопользовательских систем; часто построенный с использованием модели клиент / сервер, такой как веб-серверы. Однако другие типы программных систем также могут быть протестированы под нагрузкой. Например, текстовый процессор или графический редактор может быть вынужден прочитать очень большой документ; или финансовый пакет может быть вынужден создать отчет на основе данных за несколько лет. Наиболее точное нагрузочное тестирование имитирует фактическое использование, в отличие от тестирования с использованием теоретического или аналитического моделирования.

Нагрузочное тестирование позволяет измерить качество обслуживания вашего сайта.(QOS) производительность на основе реального поведения клиентов. Почти все инструменты нагрузочного тестирования и фреймворки следуют классической парадигме нагрузочного тестирования: когда клиенты посещают ваш веб-сайт, регистратор сценариев записывает общение, а затем создает соответствующие сценарии взаимодействия. Генератор нагрузки пытается воспроизвести записанные сценарии, которые, возможно, могут быть изменены с другими параметрами теста перед воспроизведением. В процедуре воспроизведения, как аппаратная, так и программная статистика будет отслеживаться и собираться проводником, эта статистика включает ЦП, память, дисковый ввод-вывод физических серверов, а также время отклика, пропускную способность тестируемой системы (SUT) и т. Д. И, наконец, вся эта статистика будет проанализирована и будет сформирован отчет о нагрузочном тестировании.

Тестирование нагрузки и производительности анализирует программное обеспечение, предназначенное для многопользовательской аудитории, подвергая программное обеспечение разному количеству виртуальных и живых пользователей, одновременно отслеживая измерения производительности при этих различных нагрузках. Тестирование нагрузки и производительности обычно проводится в тестовой среде, идентичной производственной, прежде чем программная система будет запущена.

Например, требуется, чтобы веб-сайт с функцией корзины покупок поддерживал 100 одновременных пользователей, выполняющих следующие действия:

  • 25 виртуальных пользователей (VUsers) входят в систему, просматривают элементы и затем выходят из системы
  • 25 пользователей входят в систему, добавляют товары в корзину, оформляют заказ и затем выходят из системы.
  • 25 пользователей входят в систему, возвращают ранее приобретенные товары и выходят из системы.
  • 25 VUsers просто входят в систему без каких-либо последующих действий

Аналитик тестирования может использовать различные инструменты нагрузочного тестирования для создания этих VUsers и их действий. После запуска теста и достижения устойчивого состояния приложение тестируется при нагрузке 100 VUser, как описано выше. Затем можно отслеживать и фиксировать производительность приложения.

Особенности плана или сценария нагрузочного тестирования обычно различаются в разных организациях. Например, в маркированном списке выше первый элемент может представлять 25 виртуальных пользователей, просматривающих уникальные элементы, случайные элементы или выбранный набор элементов в зависимости от плана тестирования или разработанного сценария. Однако все планы нагрузочного тестирования пытаются моделировать производительность системы в диапазоне ожидаемых пиковых рабочих процессов и объемов. Критерии прохождения или невыполнения нагрузочного теста (критерии «прошел / не прошел») также обычно различаются в разных организациях. Не существует стандартов, определяющих приемлемые показатели производительности нагрузочного тестирования.

Распространенное заблуждение состоит в том, что программное обеспечение для нагрузочного тестирования предоставляет возможности записи и воспроизведения, как инструменты регрессионного тестирования . Инструменты нагрузочного тестирования анализируют весь стек протоколов OSI, тогда как большинство инструментов регрессионного тестирования сосредоточены на производительности графического интерфейса . Например, инструмент регрессионного тестирования будет записывать и воспроизводить щелчок мышью по кнопке в веб-браузере, но инструмент нагрузочного тестирования отправляет гипертекст, который веб-браузер отправляет после того, как пользователь нажимает кнопку. В многопользовательской среде инструменты нагрузочного тестирования могут отправлять гипертекст для нескольких пользователей, причем каждый пользователь имеет уникальный идентификатор входа, пароль и т. Д.

Доступные популярные инструменты нагрузочного тестирования также позволяют понять причины низкой производительности. Существует множество возможных причин низкой производительности системы, в том числе следующие:

  • Сервер (ы) приложений или программное обеспечение
  • Сервер (ы) базы данных
  • Сеть - задержка , перегрузка и т. Д.
  • Обработка на стороне клиента
  • Балансировка нагрузки между несколькими серверами

Нагрузочное тестирование особенно важно, если приложение, система или служба подпадают под действие соглашения об уровне обслуживания или SLA.

Нагрузочное тестирование выполняется для определения поведения системы как при нормальной, так и при ожидаемой пиковой нагрузке. Это помогает определить максимальную работоспособность приложения, а также любые узкие места и определить, какой элемент вызывает ухудшение работы. Когда нагрузка, возлагаемая на систему, превышает нормальные шаблоны использования, чтобы проверить реакцию системы на необычно высокие или пиковые нагрузки, это называется стресс-тестированием . Нагрузка обычно настолько велика, что ожидаемым результатом являются условия ошибки, но нет четкой границы, когда действие перестает быть нагрузочным тестом и становится стресс-тестом.

Термин «нагрузочное тестирование» часто используются в качестве синонима тестирования параллелизма , тестирование производительности программного обеспечения , тестирование надежности и объемов тестирования для конкретных сценариев. Все это типы нефункционального тестирования , которые не являются частью функционального тестирования, используемого для проверки пригодности для использования того или иного программного обеспечения.

Пользовательский опыт при нагрузочном тесте [ править ]

В приведенном выше примере, когда тестируемое устройство (DUT) находится под производственной нагрузкой - 100 VUsers, запустите целевое приложение. Производительностью целевого приложения здесь будет пользовательский опыт под нагрузкой. Он описывает, насколько быстро или медленно тестируемое устройство отвечает, и насколько удовлетворен или как пользователь на самом деле воспринимает производительность.

Пользователи на уровне браузера и на уровне протокола [ править ]

Исторически сложилось так, что все нагрузочное тестирование выполнялось с помощью автоматических тестов API, которые моделировали трафик посредством одновременных взаимодействий на уровне протокола (часто называемых пользователями уровня протокола или PLU). С развитием контейнеров и облачной инфраструктуры появилась возможность тестирования с использованием реальных браузеров (часто называемых пользователями уровня браузера или BLU). [2] Каждый подход имеет свои достоинства для разных типов приложений, но обычно пользователи уровня браузера будут больше похожи на реальный трафик, который будет испытывать веб-сайт, и обеспечат более реалистичный профиль нагрузки и измерение времени отклика. [3]BLU, безусловно, являются более дорогим способом запуска тестов и не могут работать со всеми типами приложений, особенно с теми, которые недоступны через веб-браузер, например, настольный клиент или приложение на основе API. [4]

Инструменты нагрузочного тестирования [ править ]

Тестирование физической нагрузки [ править ]

Символ, используемый в геотехнических чертежах

Многие типы машин, двигателей, [8] конструкций, [9] и двигателей [10] проходят испытания под нагрузкой. Нагрузка может быть при установленной безопасной рабочей нагрузке (SWL), при полной нагрузке или при повышенном уровне нагрузки. Управляющий контракт, техническая спецификация или метод тестирования содержат подробные сведения о проведении теста. Целью испытания на механическую нагрузку является проверка того, что все составные части конструкции, включая материалы, крепления основания, пригодны для выполнения задачи и нагрузки, на которую она рассчитана.

Используются несколько видов нагрузочного тестирования.

  • Статическое испытание - это когда заданная постоянная нагрузка применяется в течение определенного времени.
  • Динамическое тестирование - это когда применяется переменная или движущаяся нагрузка.
  • Циклическое испытание состоит из повторяющихся нагрузок и разгрузок в течение определенных циклов, продолжительности и условий.

В Постановлении о поставках оборудования (безопасность) 1992 г., Великобритания, говорится, что испытание под нагрузкой проводится перед первым вводом оборудования в эксплуатацию. Тестирование производительности применяет безопасную рабочую нагрузку (SWL) или другую заданную нагрузку в течение определенного времени в управляющем методе тестирования, спецификации или контракте. В соответствии с Положениями о подъемных операциях и подъемном оборудовании 1998 года, испытание под нагрузкой в Великобритании после первоначального испытания требуется, если основной компонент заменяется, если элемент перемещается из одного места в другое или по указанию компетентного лица.

Система зарядки автомобиля [ править ]

Нагрузочный тест можно использовать для оценки состояния аккумуляторной батареи автомобиля . Тестер состоит из большого резистора, сопротивление которого аналогично сопротивлению стартера автомобиля, и измерителя для считывания выходного напряжения аккумулятора как в ненагруженном, так и в нагруженном состоянии. При использовании тестера в первую очередь проверяется напряжение холостого хода аккумулятора. Если напряжение холостого хода ниже нормативного (12,6 В для полностью заряженного аккумулятора), аккумулятор заряжается в первую очередь. После считывания напряжения холостого хода аккумуляторной батареи включается нагрузка. При использовании он потребляет примерно такой же ток, как стартер автомобиля при запуске. Исходя из указанных значений ампер холодного пускабатареи, если напряжение под нагрузкой падает ниже определенной точки, батарея неисправна. Нагрузочные испытания также используются на движущихся автомобилях для проверки выходной мощности генератора автомобиля .

См. Также [ править ]

  • Тестирование на выдержку
  • Стресс-тестирование
  • Системное тестирование
  • Веб-тестирование
  • Тестирование веб-сервера

Ссылки [ править ]

  1. ^ Уэскотт, Боб (2013). Книга о производительности каждого компьютера, глава 6: Нагрузочное тестирование . CreateSpace . ISBN 978-1482657753.
  2. ^ Платц, Вольфганг. «Будущее нагрузочного тестирования - за BLU» . InfoWorld . Проверено 23 ноября 2018 .
  3. ^ «Мы все теперь тестировщики нагрузки (возможно) - DevOps.com» . DevOps.com . 2018-02-08 . Проверено 23 ноября 2018 .
  4. ^ "Как выполнить нагрузочное тестирование в реальных браузерах с использованием элемента Flood?" . geekflare.com . 2018-11-17 . Проверено 23 ноября 2018 .
  5. ^ Erinle, Байо (2014). Поваренная книга JMeter . Packt Publishing. ISBN 978-1783988280.
  6. ^ Erinle, Байо (2015). Тестирование производительности с помощью JMeter . Packt Publishing. ISBN 978-1784394813.
  7. ^ «Нагрузочное тестирование приложений ASP.NET с помощью Visual Studio 2010» . Eggheadcafe.com . Проверено 13 января 2013 .
  8. ^ Харпер, Дэвид; Девин Мартин, Гарольд Миллер, Роберт Гримли и Фредерик Грейнер (2003 г.), Проект сверхмощной газовой турбины 6C , ASME Turbo Expo 2003, совмещенный с Международной конференцией по производству электроэнергии 2003 г., Том 2: Turbo Expo 2003, Атланта, Джорджия: ASME 1., стр. 833–841, ISBN 978-0-7918-3685-9, дата обращения 14.07.2013CS1 maint: несколько имен: список авторов ( ссылка )
  9. ^ Рейнс, Ричард; Гарнье, Жак (2004), 23-я Международная конференция по морской механике и арктической инженерии, Том 1, части a и B , 23-я Международная конференция по морской механике и арктической инженерии, 1 , Ванкувер, Британская Колумбия: ASME, стр. 621–631, doi : 10.1115 / OMAE2004-51343 , ISBN 978-0-7918-3743-6, дата обращения 14.07.2013
  10. ^ ОПРЕДЕЛЕНИЕ НАГРУЗКИ И ЭФФЕКТИВНОСТИ ЭЛЕКТРИЧЕСКОГО ДВИГАТЕЛЯ (PDF) , DOE / GO-10097-517, Министерство энергетики США, 2010, ISBN  978-0-9709500-6-2, дата обращения 14.07.2013

Внешние ссылки [ править ]

  • Моделирование реального мира для веб-сайтов нагрузочного тестирования , Стивен Сплейн
  • Что такое нагрузочное тестирование? Том Хьюстон
  • 4 типа нагрузочного тестирования и когда каждый должен использоваться Дэвид Бух
  • Тест производительности, нагрузки, стресса или выносливости? Какой ты хочешь? Крис Джонс