Технологии тестирования нагрузки

Следующие протоколы на родине поддерживаются платформой тестирования LoadView.

Выберите одну из перечисленных ниже технологий, чтобы узнать больше.

Тестирование нагрузки AJAX

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

AJAX является аббревиатурой для асинхронных JavaScript и XML, и это больше, чем технология, потому что она состоит из HTML, CSS, JavaScript, XMLHttpRequest и серверного языка сценариев, таких как PHP. Запрос AJAX состоит из следующих 6 шагов:

  1. Веб-страница запускает событие изменения содержимого
  2. Обработчик этой веб-страницы создает объект XMLHttpRequest
  3. Объект XMLHttpRequest запрашивает документ с сервера
  4. Сервер извлекает соответствующие данные и отправляет их обратно
  5. XMLHttpRequest запускает событие, чтобы уведомить веб-страницу о полученных данных
  6. Обработчик обрабатывает данные и отображает их

Оборотной стороной с точки зрения инженера по производительности является то, что автоматизация такой асинхронной связи является сложным. Рассмотрим тестирование загрузки веб-приложения, которое должно обслуживать 100 одновременных пользователей и 10000 поисков в час. Вам поручено проверить, если среднее время отклика этого приложения находится в пределах 3 секунд.

В принципе, у вас есть следующие два варианта сценария тестирования нагрузки:

 

  1. Моделирование на основе протокола
  2. Моделирование на основе браузера

Давайте сравним уровень протокола с моделированием нагрузки уровня браузера. В таблице ниже отражены результаты этого эксперимента:

описание

Скриншот

Моделирование уровня протокола

1 Запрос клиента-сервера

Время загрузки 0,52 сек

Моделирование протокола AJAX

Моделирование уровня браузера

32 Запросы клиент-сервер

2.18 сек время загрузки

Моделирование браузера AJAX
Если вы решите использовать моделирование на основе протокола, вы пропустите 10000 х 31 и 310000 запросов и сообщить неправильное время ответа, потому что огромная часть его времени отклика теряются на стороне клиента. Очевидно, что это приведет к совершенно неточным результатам тестирования нагрузки.

Тестирование нагрузки AngularJS

Разработчики AngularJS любят AngularJS, поскольку он помогает упростить сложный код. Эта простая и мощная структура решает проблемы манипуляций DOM, подверженные ошибкам, с декларативным описанием потока пользовательского интерфейса. AngularJS является открытым исходным кодом JavaScript Framework и может быть добавлен на страницу с простым тегом скрипта, таким как:

<скрипт src'»https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js»>
</скрипт>

Он поддерживает разделение концерна и приводит динамические элементы к статическому HTML. Как и любое другое приложение, на системы на основе AngularJS могут быстро влиять проблемы с производительностью. Вот несколько шагов, которые вы можете предпринять, чтобы ускорить процесс следующего проекта тестирования нагрузки NG:

  • Сокращение количества операций DOM до минимума
  • Уменьшите общее количество элементов дерева DOM
  • Используйте профилатор Chrome, чтобы проверить след памяти
  • Снижение деятельности в вашем наблюдателе

LoadView дает вам все необходимое, когда дело доходит до точного тестирования нагрузки AngularJS.

В приведеном ниже примере используется ввод сообщения на основе AngularJS. Скриншот ниже содержит исходный код на левой стороне и приложение на правой стороне.

Ввод сообщений AngularJS

описание

Скриншот

Запись тестового сценария для приложения AngularJS

Запись скрипта AngularJS с помощью веб-регистратора EveryStep

Сценарий тестирования записи AngularJS

Тест на загрузку конструкции для приложения AngularJS

Настройка плана выполнения теста

Тест на загрузку конструкции AngularJS

Тестирование флэш-нагрузки

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

LoadView дает вам все необходимое, когда дело доходит до точного тестирования нагрузки FLASH. Я использовал простой флэш-калькулятор: https://www.dotcom-tools.com/samples/Calculator.html. Мой сценарий тестирования нагрузки выполняет простой расчет 1 и 2 и 3.

описание

Скриншот

Запись тестового сценария для флэш-приложения

Запись скрипта с помощью веб-регистратора EveryStep

Добавить проверку

Вы запустите и загрузите скрипт

Flash Запись тестового сценария

Разработка теста нагрузки для флэш-приложения

Настройка плана выполнения теста

Распределите виртуального пользователя по инжекторам нагрузки, расположенным по всему миру

Flash Дизайн нагрузок тест

Вы запустите тест нагрузки для флэш-приложения

Посмотрите, как LoadView наращивает нагрузку и принимает к сведению время отклика приложения Flash во время нагрузочных тестов.

Flash Вы запустите тест нагрузки

Анализ результатов для flash-приложения

После завершения тестового запуска LoadView предоставит подробный отчет, видео и ценную информацию, такую как диаграммы водопадов или видео.

Поделитесь своими dev команды для выявления первопричины горячих точек.

Анализ результатов вспышки

Известная проблема

Сценарий приложения на базе Flash работает только с Internet Explorer. Вы получите следующую ошибку, если вы используете Chrome или любой другой браузер для вашей записи.

Флэш-проблема

Тестирование нагрузки HTML5

HTML5 является пятой версией HTML, стандарт, который по-прежнему является основой наших веб-приложений. Ингредиенты HTLM5:

  • HTML, который обеспечивает структуру
  • CSS, которая заботится о презентации
  • JavaScript, который делает вещи случаются

HTML5 дает вам все необходимое для реализации красивых приложений, работающих в вашем браузере без необходимости каких-либо плагинов. Такие приложения известны как кросс-платформеные приложения. Они работают на любом устройстве, если ваш браузер поддерживает HTML5. Ниже приводится пример тестирования нагрузки HTML5 с LoadView.

описание

Скриншот

Запись тестового сценария для приложения HTML5

Запись скрипта с помощью веб-регистратора EveryStep

Добавить проверку

Выбежать и загрузить скрипт

HTML5 Запись тестового сценария

Разработка теста нагрузки для приложения HTML5

Настройка плана выполнения теста

Распределите виртуального пользователя по инжекторам нагрузки, расположенным по всему миру

HTML5 Дизайн теста нагрузки

Выгрузите тест нагрузки для приложения HTML5

По мере того, как LoadView наращивает нагрузку, просматривайте время отклика приложения HTML5 и поведение во время выполнения теста нагрузки.

HTML5 Вы запустите тест нагрузки

Анализ результатов для приложения HTML5

После завершения тестового запуска LoadView предоставит подробный отчет, видео и ценную информацию, такую как диаграммы водопадов или видео.

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

Анализ результатов HTML5

Тестирование нагрузки JavaScript

JavaScript является основным языком программирования в Интернете. Он используется для привлечения интерактивных функций в Интернете и создает основу для многих фреймворка, таких как AngularJS или AJAX. Хакеры недавно использовали JavaScript для выполнения критических команд на машине жертв. Вы можете отключить выполнение JavaScript в браузере, но это заблокирует многие веб-сайты на вашем компьютере.

Есть некоторые известные ограничения производительности, когда дело доходит до JavaScript. Это хорошая идея, чтобы исследовать те, в следующем JavaScript основе нагрузок тест. Вот некоторые вещи, которые вы можете сделать, чтобы сделать процесс сценариев проще:

 

  • Снижение активности в петлях
    • Не делайте расчеты внутри петель, потому что это выполняется много раз и влияет на время отклика.
  • Сокращение доступа к DOM
    • Доступ к DOM идет медленно. Создайте локаную переменную, назначьте требуемое значение и используйте его для своих операций.
  • Уменьшить размер DOM
    • Сохранение размера DOM будет ускорять время загрузки страницы и доступ к DOM через JavaScript.
  • Задержка загрузки JavaScript
    • Загрузите скрипт в конце страницы, поскольку он будет блокировать визуализацию страницы до тех пор, пока загрузка не будет закончена. Кроме того, вы также можете использовать тег «defer’true» загружает скрипт после визуализации страницы.

LoadView дает вам все необходимое, когда дело доходит до точного тестирования нагрузки JavaScript. Приведенная ниже пример иллюстрирует, насколько легко JavaScript нагрузок тестирования на самом деле с LoadView.

описание

Скриншот

Запись тестового сценария для вашего приложения

Запись скрипта с помощью веб-регистратора EveryStep

Вы запустите и загрузите скрипт

Сценарий тестирования записи JavaScript

Тест на загрузку дизайна для приложения

Настройка плана выполнения теста

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

Тест на загрузку JavaScript

Вы запустите тест нагрузки для приложения

По мере того, как LoadView наращивает нагрузку, просматривайте время отклика приложения JavaScript и поведение во время выполнения теста нагрузки.

JavaScript Запуск Загрузка тест

Анализ результатов для вашего приложения

После завершения тестового запуска LoadView предоставит подробный отчет, видео и ценную информацию, такую как диаграммы водопадов или видео

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

Результаты JavaScript
Анализ результатов JavaScript

Тестирование нагрузки JSON

JSON является аббревиатурой для JavaScript Объект нотации и очень похож на XML. Это очень распространенный формат данных и используется для всех видов браузера-сервера связи. Простота, широкая поддержка языка программирования и низкие накладные расходы являются причиной его популярности.

Некоторые точки доступа JSON, специфичные для производительности, включают в себя следующее:

  • Загрузка больших файлов занимает слишком много времени
  • Использование памяти слишком высоко

По сравнению с SOAP XML, след JSON ниже, и это легче читать. Приведенная ниже пример иллюстрирует тестирование нагрузки JSON с LoadView.

Мы используем JSON в функциональности поиска на нашем сайте. Это соответствующий исходный код JSON:

Исходный код JSON

Это функция поиска, которую мы будем использовать в витрине тестирования нагрузки JSON:

Функциональность JSON

Мы использовали инструменты разработчика Chrome для идентификации URL-адреса запроса, используемого в этой форме поиска.

Инструмент JSON Chrome Dev
Вы можете легко настроить задачу на основе HTTP, которая выполняет этот поисковый запрос с помощьюURL https://www.dotcom-monitor.com/?s=load+test, но это не будет подчеркивать функцию подсказки поиска JSON. Поэтому я решил создать настоящий тест на основе браузера, используя наш веб-регистратор EveryStep для записи поиска и использования его в моем тестовом тестировании нагрузки.

описание

Скриншот

Сценарий записи теста для приложения JSON

Тестирование нагрузки начинается с записи скрипта с помощью веб-регистратора EveryStep.

Сценарий тестирования записи JSON

Тест на загрузку конструкции для приложения JSON

На этом этапе можно настроить план тестирования и местоположения.

Тест на загрузку конструкции JSON

Вы запустите тест нагрузки для приложения JSON

По мере того, как LoadView наращивает нагрузку, просматривайте время отклика приложения JSON и поведение во время выполнения теста нагрузки.

Тест загрузки JSON Run

Анализ результатов для приложения JSON

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

Анализ результатов JSON

Тестирование загрузки одностраничного приложения

Одностраничные приложения (SPAs) ведут себя скорее как настольное приложение, потому что они динамически переписывают текущую страницу вместо загрузки целых новых страниц с сервера. Пользовательский опыт на таких SPAs часто лучше, поскольку Есть меньше перерывов. Начальное время загрузки СПА, как правило, больше, поскольку фреймворки должны быть загружены. SOAP, JSON или AJAX часто используются для связи между клиентом SPA и сервером.

Некоторые из наиболее сложных вопросов производительности СПА включают в себя следующие:

  • Время загрузки первой страницы длинное
    • Уменьшите размер фреймворка
  • Утечки памяти
    • Регулярно просматривайте след памяти вашего SPA
  • Презентация данных
    • Задержка загрузки объекта или данных (загрузка ленивых данных)

LoadView дает вам все необходимое, когда дело доходит до точного тестирования нагрузки SPA. Мы использовали следующее приложение для этой демонстрации тестирования нагрузки: https://www.welcometofillory.com/map

описание

Скриншот

Запись тестового сценария для одностраничного приложения
Сценарий тестирования записи SPA

Тест на загрузку конструкции для одностраничного приложения

SPA Дизайн Нагрузка тест
Вы запустите тест нагрузки для одностраничного приложения

По мере того, как LoadView наращивает нагрузку, просматривайте время отклика приложения и поведение во время выполнения теста нагрузки.

SPA Вы запустите тест нагрузки

Анализ результатов для вашего одностраничного приложения

Анализ результатов SPA

Как упоминалось ранее, время загрузки первой страницы для SPAs часто довольно долго. В нашей витрине загрузка этой начальной страницы заняла более 35 секунд, а размер страницы составляет более 95 МБ. Очевидно, что это приложение нуждается в некоторой настройке.

Тестирование нагрузки SOAP

Протокол доступа к простым объектам (SOAP) — это гораздо больше, чем просто язык программирования. В отличие от JavaScript, который является языком разработки, SOAP обеспечивает связь на любом устройстве и операционной системе. Основным строительным блоком SOAP является XML. SOAP ввела формат отправки и приема сообщений.

Некоторые из самых популярных точек зрения производительности, связанных с SOAP являются следующие:

  • Чатти приложение
  • Неправильная или нет стратегия кэширования
  • Сериализация вызывает высокие накладные расходы
  • Отсутствие проверки ввода на стороне потребителя или неэффективной обработки веб-методов

Веб-сервисы на базе SOAP предоставляют описание своих услуг в WSDL. Этот язык описания веб-сервиса может быть использован для ручного автоматического тестирования. В нашей витрине ниже, я продемонстрирую, как настроить нагрузочных тестов soap основе приложения.

Этот простой CurrencyConverter будет использоваться в нашей установке тестовой нагрузки:

https://www.webservicex.net/CurrencyConvertor.asmx?WSDL

КОНВЕРТер soap Валюты

Следующие шаги наметить, как выполнить тестирование нагрузки SOAP с LoadView.

описание

Скриншот

Создание тестового сценария для приложения

Создайте задачу HTTP и добавьте сведения о запросе POST.

SOAP Создайте сценарий
Сценарий теста SOAP

Разработка теста нагрузки для приложения

ТЕСТ на загрузку дизайна SOAP

Вы запустите тест нагрузки для приложения

По мере того как LoadView наращивает нагрузку, просматривайте время отклика приложения SOAP и поведение во время выполнения теста нагрузки.

ТЕСТ загрузки SOAP Run

Анализ результатов для приложения

Результаты SOAP
Анализ результатов SOAP

Тестирование нагрузки Web API REST

REST является широко используемым стандартом связи, который означает представительный государственный трансферт. Он структурит данные в машиночитаемом формате и использует XML или JSON. Противоположность к SOAP, который высоки функции-ориентированный ориентированный, REST очень управляемые данные. RESTful API и RESTful услуги два часто используемых терминов в этой дисциплине, но они означают не более чем REST услуг.

Тестирование производительности служб REST – это отправка данных службам или проверка ответа от них. Некоторые наиболее распространенные точки доступа производительности REST включают в себя следующее:

  • Чатти услуги
  • Слишком много или не требуется переданных данных
  • Отсутствие повторного использования соединений TCP

Сообщества разработчиков не часто соглашаются на то, следует ли внедрять веб-сервисы в SOAP или REST. С точки зрения производительности услуги на основе REST предназначены для скорости. Их накладные расходы по протоколу ниже, и нет XML разбора требуется. Приведено в примере ниже, как можно проработать тестирование Web API REST с loadView.

описание

Скриншот

Создание тестового сценария для вашего отдыха

Создание задачи HTTP

Добавить сведения о запросе GET

Добавить проверку ключевых слов

REST Создайте тестовый сценарий

Разработка теста нагрузки для приложения

Настройка плана тестирования и выполнения.

ТЕСТ на загрузку дизайна REST

Вы запустите тест нагрузки для приложения

Следите за кривой нагрузки по мере инициирования теста.

ТЕСТ нагрузки REST Run

Анализ результатов для приложения

Проанализируйте результаты и поделитесь с командой Dev.

Анализ результатов REST

Тестирование нагрузки WebSockets

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

Преимущества использования WebSockets включают в себя следующее:

  • двунаправленный
    • Никакие предопределенные шаблоны сообщений, клиент или сервер не могут отправить сообщение другой стороне
  • Полный Дуплекс
    • Независимая связь между клиентом и сервером
  • Одно соединение TCP
    • Обновление связи HTTP, связи клиента и сервера через одно и то же соединение TCP

Если сравнить WebSockets с шаблонами связи на основе REST или SOAP, то время отклика первых гораздо лучше, поскольку WebSockets позволяет повторно использовать одно и то же соединение TCP. Исследования показали, что webSocket службы до 10 раз быстрее.

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

описание

Скриншот

Запись тестового сценария для приложения на основе WebSocket

WebSockets Запись тестовый сценарий

Разработка теста нагрузки для приложения на основе WebSocket

Создайте план тестирования и распределите нагрузку между различными местами тестирования.

WebSockets Дизайн Нагрузка тест

Вы запустите тест нагрузки для webSocket-приложения

WebSockets Запуск нагрузок тест

Анализ результатов для webSocket-приложения

Анализ результатов WebSockets

Тестирование нагрузки с помощью плагина LoadView для Jenkins

LoadView Plugin для Jenkins позволяет группам тестирования производительности легко включать реальные тестирования нагрузки на основе браузера в свои тестовые сборки Jenkins. Это гарантирует, что приложения постоянно тестируются и оцениваются в течение более длительных периодов времени, позволяя группам личных данных и устранения ошибок и узких мест до того, как код и приложения будут удалены в производство.

Узнайте о проблемах с производительностью раньше и выпустите более надежные приложения для производства, интегрируя тесты производительности LoadView в процесс разработки CI. Создание всеобъемлющих отчетов о тестах и понимание производительности кода.

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

Испытать непревзойденные функции с безграничной масштабируемостью. Ни кредитной карты, ни договора.