Технологии тестирования нагрузки
Следующие протоколы на родине поддерживаются платформой тестирования LoadView.
Выберите одну из перечисленных ниже технологий, чтобы узнать больше.
Тестирование нагрузки AJAX
Более 20 лет назад, не было никакого способа обновить веб-страницу без отображения скучно белый экран при перезагрузке всей страницы. К счастью, AJAX закрыл этот пробел и представил концепцию асинхронной загрузки данных, которая позволяет пользователю взаимодействовать со страницей в то время как данные загружаются в фоновом режиме. В настоящее время эта концепция является основой нашего контента богатых и интерактивных веб-приложений.
AJAX является аббревиатурой для асинхронных JavaScript и XML, и это больше, чем технология, потому что она состоит из HTML, CSS, JavaScript, XMLHttpRequest и серверного языка сценариев, таких как PHP. Запрос AJAX состоит из следующих 6 шагов:
- Веб-страница запускает событие изменения содержимого
- Обработчик этой веб-страницы создает объект XMLHttpRequest
- Объект XMLHttpRequest запрашивает документ с сервера
- Сервер извлекает соответствующие данные и отправляет их обратно
- XMLHttpRequest запускает событие, чтобы уведомить веб-страницу о полученных данных
- Обработчик обрабатывает данные и отображает их
Оборотной стороной с точки зрения инженера по производительности является то, что автоматизация такой асинхронной связи является сложным. Рассмотрим тестирование загрузки веб-приложения, которое должно обслуживать 100 одновременных пользователей и 10000 поисков в час. Вам поручено проверить, если среднее время отклика этого приложения находится в пределах 3 секунд.
В принципе, у вас есть следующие два варианта сценария тестирования нагрузки:
- Моделирование на основе протокола
- Моделирование на основе браузера
Давайте сравним уровень протокола с моделированием нагрузки уровня браузера. В таблице ниже отражены результаты этого эксперимента:
описание
Скриншот
Моделирование уровня протокола
1 Запрос клиента-сервера
Время загрузки 0,52 сек
Моделирование уровня браузера
32 Запросы клиент-сервер
2.18 сек время загрузки
Тестирование нагрузки 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 с помощью веб-регистратора EveryStep
Тест на загрузку конструкции для приложения AngularJS
Настройка плана выполнения теста
Тестирование флэш-нагрузки
Flash является авторским программным обеспечением и используется для создания векторной графической анимации. Это независимая технология платформы и работает на любой машине, где установлен Flash-плеер. Из-за проблем с безопасностью компании часто запрещают Flash использовать свою инфраструктуру. Тем не менее, вы можете создавать хорошие приложения с Flash, так как накладные расходы низки. Тем не менее, одним небольшим недостатком Flash является то, что он не будет работать без включена плагина Flash-плеер.
LoadView дает вам все необходимое, когда дело доходит до точного тестирования нагрузки FLASH. Я использовал простой флэш-калькулятор: https://www.dotcom-tools.com/samples/Calculator.html. Мой сценарий тестирования нагрузки выполняет простой расчет 1 и 2 и 3.
описание
Скриншот
Запись тестового сценария для флэш-приложения
Запись скрипта с помощью веб-регистратора EveryStep
Добавить проверку
Вы запустите и загрузите скрипт
Разработка теста нагрузки для флэш-приложения
Настройка плана выполнения теста
Распределите виртуального пользователя по инжекторам нагрузки, расположенным по всему миру
Вы запустите тест нагрузки для флэш-приложения
Посмотрите, как LoadView наращивает нагрузку и принимает к сведению время отклика приложения Flash во время нагрузочных тестов.
Анализ результатов для flash-приложения
После завершения тестового запуска LoadView предоставит подробный отчет, видео и ценную информацию, такую как диаграммы водопадов или видео.
Поделитесь своими dev команды для выявления первопричины горячих точек.
Известная проблема
Сценарий приложения на базе Flash работает только с Internet Explorer. Вы получите следующую ошибку, если вы используете Chrome или любой другой браузер для вашей записи.
HTML5 является пятой версией HTML, стандарт, который по-прежнему является основой наших веб-приложений. Ингредиенты HTLM5:
- HTML, который обеспечивает структуру
- CSS, которая заботится о презентации
- JavaScript, который делает вещи случаются
HTML5 дает вам все необходимое для реализации красивых приложений, работающих в вашем браузере без необходимости каких-либо плагинов. Такие приложения известны как кросс-платформеные приложения. Они работают на любом устройстве, если ваш браузер поддерживает HTML5. Ниже приводится пример тестирования нагрузки HTML5 с LoadView.
описание
Скриншот
Запись тестового сценария для приложения HTML5
Запись скрипта с помощью веб-регистратора EveryStep
Добавить проверку
Выбежать и загрузить скрипт
Разработка теста нагрузки для приложения HTML5
Настройка плана выполнения теста
Распределите виртуального пользователя по инжекторам нагрузки, расположенным по всему миру
Выгрузите тест нагрузки для приложения HTML5
По мере того, как LoadView наращивает нагрузку, просматривайте время отклика приложения HTML5 и поведение во время выполнения теста нагрузки.
Анализ результатов для приложения HTML5
После завершения тестового запуска LoadView предоставит подробный отчет, видео и ценную информацию, такую как диаграммы водопадов или видео.
Поделитесь этими результатами со своей командой Dev, чтобы определить первопричину горячих точек.
JavaScript является основным языком программирования в Интернете. Он используется для привлечения интерактивных функций в Интернете и создает основу для многих фреймворка, таких как AngularJS или AJAX. Хакеры недавно использовали JavaScript для выполнения критических команд на машине жертв. Вы можете отключить выполнение JavaScript в браузере, но это заблокирует многие веб-сайты на вашем компьютере.
Есть некоторые известные ограничения производительности, когда дело доходит до JavaScript. Это хорошая идея, чтобы исследовать те, в следующем JavaScript основе нагрузок тест. Вот некоторые вещи, которые вы можете сделать, чтобы сделать процесс сценариев проще:
- Снижение активности в петлях
- Не делайте расчеты внутри петель, потому что это выполняется много раз и влияет на время отклика.
- Сокращение доступа к DOM
- Доступ к DOM идет медленно. Создайте локаную переменную, назначьте требуемое значение и используйте его для своих операций.
- Уменьшить размер DOM
- Сохранение размера DOM будет ускорять время загрузки страницы и доступ к DOM через JavaScript.
- Задержка загрузки JavaScript
- Загрузите скрипт в конце страницы, поскольку он будет блокировать визуализацию страницы до тех пор, пока загрузка не будет закончена. Кроме того, вы также можете использовать тег “defer’true” загружает скрипт после визуализации страницы.
LoadView дает вам все необходимое, когда дело доходит до точного тестирования нагрузки JavaScript. Приведенная ниже пример иллюстрирует, насколько легко JavaScript нагрузок тестирования на самом деле с LoadView.
описание
Скриншот
Запись тестового сценария для вашего приложения
Запись скрипта с помощью веб-регистратора EveryStep
Вы запустите и загрузите скрипт
Тест на загрузку дизайна для приложения
Настройка плана выполнения теста
Распределяйте виртуального пользователя на инжекторах нагрузки, расположенных по всему миру.
Вы запустите тест нагрузки для приложения
По мере того, как LoadView наращивает нагрузку, просматривайте время отклика приложения JavaScript и поведение во время выполнения теста нагрузки.
Анализ результатов для вашего приложения
После завершения тестового запуска LoadView предоставит подробный отчет, видео и ценную информацию, такую как диаграммы водопадов или видео
Поделитесь этими результатами со своей командой Dev, чтобы определить первопричину горячих точек.
JSON является аббревиатурой для JavaScript Объект нотации и очень похож на XML. Это очень распространенный формат данных и используется для всех видов браузера-сервера связи. Простота, широкая поддержка языка программирования и низкие накладные расходы являются причиной его популярности.
Некоторые точки доступа JSON, специфичные для производительности, включают в себя следующее:
- Загрузка больших файлов занимает слишком много времени
- Использование памяти слишком высоко
По сравнению с SOAP XML, след JSON ниже, и это легче читать. Приведенная ниже пример иллюстрирует тестирование нагрузки JSON с LoadView.
Мы используем JSON в функциональности поиска на нашем сайте. Это соответствующий исходный код JSON:
Это функция поиска, которую мы будем использовать в витрине тестирования нагрузки JSON:
Мы использовали инструменты разработчика Chrome для идентификации URL-адреса запроса, используемого в этой форме поиска.
описание
Скриншот
Сценарий записи теста для приложения JSON
Тестирование нагрузки начинается с записи скрипта с помощью веб-регистратора EveryStep.
Тест на загрузку конструкции для приложения JSON
На этом этапе можно настроить план тестирования и местоположения.
Вы запустите тест нагрузки для приложения JSON
По мере того, как LoadView наращивает нагрузку, просматривайте время отклика приложения JSON и поведение во время выполнения теста нагрузки.
Анализ результатов для приложения JSON
LoadView создает диаграмму водопадов и отчет, которым можно поделиться с разработчиками для выявления проблем и реализации изменений.
Одностраничные приложения (SPAs) ведут себя скорее как настольное приложение, потому что они динамически переписывают текущую страницу вместо загрузки целых новых страниц с сервера. Пользовательский опыт на таких SPAs часто лучше, поскольку Есть меньше перерывов. Начальное время загрузки СПА, как правило, больше, поскольку фреймворки должны быть загружены. SOAP, JSON или AJAX часто используются для связи между клиентом SPA и сервером.
Некоторые из наиболее сложных вопросов производительности СПА включают в себя следующие:
- Время загрузки первой страницы длинное
- Уменьшите размер фреймворка
- Утечки памяти
- Регулярно просматривайте след памяти вашего SPA
- Презентация данных
- Задержка загрузки объекта или данных (загрузка ленивых данных)
LoadView дает вам все необходимое, когда дело доходит до точного тестирования нагрузки SPA. Мы использовали следующее приложение для этой демонстрации тестирования нагрузки: https://www.welcometofillory.com/map
описание
Скриншот
Тест на загрузку конструкции для одностраничного приложения
По мере того, как LoadView наращивает нагрузку, просматривайте время отклика приложения и поведение во время выполнения теста нагрузки.
Анализ результатов для вашего одностраничного приложения
Как упоминалось ранее, время загрузки первой страницы для SPAs часто довольно долго. В нашей витрине загрузка этой начальной страницы заняла более 35 секунд, а размер страницы составляет более 95 МБ. Очевидно, что это приложение нуждается в некоторой настройке.
Протокол доступа к простым объектам (SOAP) — это гораздо больше, чем просто язык программирования. В отличие от JavaScript, который является языком разработки, SOAP обеспечивает связь на любом устройстве и операционной системе. Основным строительным блоком SOAP является XML. SOAP ввела формат отправки и приема сообщений.
Некоторые из самых популярных точек зрения производительности, связанных с SOAP являются следующие:
- Чатти приложение
- Неправильная или нет стратегия кэширования
- Сериализация вызывает высокие накладные расходы
- Отсутствие проверки ввода на стороне потребителя или неэффективной обработки веб-методов
Веб-сервисы на базе SOAP предоставляют описание своих услуг в WSDL. Этот язык описания веб-сервиса может быть использован для ручного автоматического тестирования. В нашей витрине ниже, я продемонстрирую, как настроить нагрузочных тестов soap основе приложения.
Этот простой CurrencyConverter будет использоваться в нашей установке тестовой нагрузки:
https://www.webservicex.net/CurrencyConvertor.asmx?WSDL
Следующие шаги наметить, как выполнить тестирование нагрузки SOAP с LoadView.
описание
Скриншот
Создание тестового сценария для приложения
Создайте задачу HTTP и добавьте сведения о запросе POST.
Разработка теста нагрузки для приложения
Вы запустите тест нагрузки для приложения
По мере того как LoadView наращивает нагрузку, просматривайте время отклика приложения SOAP и поведение во время выполнения теста нагрузки.
Анализ результатов для приложения
REST является широко используемым стандартом связи, который означает представительный государственный трансферт. Он структурит данные в машиночитаемом формате и использует XML или JSON. Противоположность к SOAP, который высоки функции-ориентированный ориентированный, REST очень управляемые данные. RESTful API и RESTful услуги два часто используемых терминов в этой дисциплине, но они означают не более чем REST услуг.
Тестирование производительности служб REST – это отправка данных службам или проверка ответа от них. Некоторые наиболее распространенные точки доступа производительности REST включают в себя следующее:
- Чатти услуги
- Слишком много или не требуется переданных данных
- Отсутствие повторного использования соединений TCP
Сообщества разработчиков не часто соглашаются на то, следует ли внедрять веб-сервисы в SOAP или REST. С точки зрения производительности услуги на основе REST предназначены для скорости. Их накладные расходы по протоколу ниже, и нет XML разбора требуется. Приведено в примере ниже, как можно проработать тестирование Web API REST с loadView.
описание
Скриншот
Создание тестового сценария для вашего отдыха
Создание задачи HTTP
Добавить сведения о запросе GET
Добавить проверку ключевых слов
Разработка теста нагрузки для приложения
Настройка плана тестирования и выполнения.
Вы запустите тест нагрузки для приложения
Следите за кривой нагрузки по мере инициирования теста.
Анализ результатов для приложения
Проанализируйте результаты и поделитесь с командой Dev.
WebSockets предназначены для обеспечения двухгосуковой связи между клиентом и сервером, что означает, что обе стороны общаются и обмениваются данными одновременно. Истинная совентность и оптимизация производительности являются двумя ключевыми моментами WebSockets.
Преимущества использования WebSockets включают в себя следующее:
- двунаправленный
- Никакие предопределенные шаблоны сообщений, клиент или сервер не могут отправить сообщение другой стороне
- Полный Дуплекс
- Независимая связь между клиентом и сервером
- Одно соединение TCP
- Обновление связи HTTP, связи клиента и сервера через одно и то же соединение TCP
Если сравнить WebSockets с шаблонами связи на основе REST или SOAP, то время отклика первых гораздо лучше, поскольку WebSockets позволяет повторно использовать одно и то же соединение TCP. Исследования показали, что webSocket службы до 10 раз быстрее.
Для этого теста мы будем использовать ChatBot, который отвечает на некоторые основные вопросы.
описание
Скриншот
Запись тестового сценария для приложения на основе WebSocket
Разработка теста нагрузки для приложения на основе WebSocket
Создайте план тестирования и распределите нагрузку между различными местами тестирования.
Вы запустите тест нагрузки для webSocket-приложения
Анализ результатов для webSocket-приложения
LoadView Plugin для Jenkins позволяет группам тестирования производительности легко включать реальные тестирования нагрузки на основе браузера в свои тестовые сборки Jenkins. Это гарантирует, что приложения постоянно тестируются и оцениваются в течение более длительных периодов времени, позволяя группам личных данных и устранения ошибок и узких мест до того, как код и приложения будут удалены в производство.
Узнайте о проблемах с производительностью раньше и выпустите более надежные приложения для производства, интегрируя тесты производительности LoadView в процесс разработки CI. Создание всеобъемлющих отчетов о тестах и понимание производительности кода.
Следующий уровень
Испытать непревзойденные функции с безграничной масштабируемостью. Ни кредитной карты, ни договора.