Загрузка Тестирование AJAX Приложения

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

Обзор контента

 


 

Что такое AJAX?

 

Те из вас, кому пришлось иметь дело с тестированием нагрузки веб-приложений AJAX (Asynchronous JavaScript и XML), узнали, что это часто может быть сложной задачей разработки и автоматизации. В этой статье будут работать дополнительные данные о технике разработки AJAX, преимуществах и недостатках AJAX, а также рекомендуемом подходе к тестированию производительности AJAX.

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

С 2005 года новая технология под названием AJAX позволила разработчикам создавать современные веб-сайты, что свело к минимуму время, проведенное пользователями перед пустым экраном в ожидании загрузки страницы. AJAX является аббревиатурой, и это больше, чем технология, потому что она состоит из HTML, CSS, JavaScript, XMLHttpRequest, и сервер стороне языка сценариев, таких как PHP.

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

 

Типичные запросы AJAX состоят из следующего процесса:

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

 


 

Какие проблемы стоят перед приложениями AJAX?

 

Есть некоторые распространенные подводные камни, связанные с динамическими веб-приложениями на основе AJAX, которые уже хорошо известны в сообществе разработчиков. Мы охватим некоторые из наиболее проблемных областей AJAX ниже.

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

Во-вторых, динамически загруженные и отображаемые данные не являются частью страницы, особенно для страниц, которые создаются как SPA (Одностраничное приложение) Если поисковая система проиндексировала вашу веб-страницу на основе AJAX, результат, с точки зрения SEO, может быть неудовлетворительным, потому что большая часть контента не видна этим индексироваля двигателям.

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

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

 


 

Тестирование нагрузки AJAX: Методы моделирования пользователей

 

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

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

Протокольная имитация запросов и ответов

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

Полное моделирование реальных взаимодействий пользователей на основе браузера

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

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

Первый метод моделирования, который мы описали, идеально подходит для статических веб-приложений, имеет низкие накладные расходы на моделирование на вашей машине для впрыска нагрузки и часто прост в реализации. Более поздний метод обеспечивает точное время ответа, но их накладные расходы на сервере тестирования нагрузки намного выше. Итак, как бы вы выбрали лучший метод моделирования пользователей для тестирования нагрузки ajax на основе веб-приложений или страниц?

 


 

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

 

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

Для этого сценария мы завесям две реализации тестирования нагрузки для приложения образца AJAX с ajaxsearchpro.com. Это демо-приложение является простой поисковой системой. В этом примере предположим, что пользователь навеят термин поиска в поле поиска и отображается соответствующее содержимое. После запуска ключа введите или нажатия кнопки поиска будет выполнен окончательный поиск, а соответствующие результаты поиска будут отображаться на экране. Ниже приведена диаграмма водопада, снятая с помощью браузера Chrome DevTools. Время отклика поискового запроса «автомобиля» составило 2,2 секунды.

 

водопад диаграммы хром браузера

 

Мы использовали инструменты разработчика в браузере Chrome, которые помогли нам выяснить, что он выполняет этот запрос при выполнении поискового действия: ajaxsearchpro.com/?s=car

Мы создали протокольный и основанный на браузере скрипт тестирования нагрузки, выполнили оба и сравнили показатели производительности. Как ты думаешь? Какое пользовательское моделирование лучше всего подходит для приложения на основе AJAX?

 

Протокол на основе AJAX Загрузить тестовый сценарий

 

Сценарные шаги: https://ajaxsearchpro.com/?s=car время ответа: 594 мс
Подход к моделированию: Уровень протокола, Chrome Количество запросов: 1

 

Водопад Диаграмма
протокол на основе Ajax водопад диаграммы

 

Резюме выполнения сценария на основе Протокола
выполнение скрипта ajax на основе протокола

 

Сценарий тестирования нагрузки AJAX на основе браузера

 

Сценарные шаги: https://ajaxsearchpro.com/?s=car время ответа: 2.18 сек
Подход к моделированию: Уровень протокола, Chrome Количество запросов: 32

 

Водопад Диаграмма
браузер на основе Ajax водопад диаграммы

 

Резюме выполнения сценария на основе Протокола
браузер на основе ajax исполнение скрипта

 

Сравнение обоих методов моделирования

 

Из-за асинхронного шаблон связи, AJAX— основанныеприложения немогут быть автоматизированы на уровень протокола. Только реальные browser— основанноемоделирование обеспечивает точные результаты и генерируетреалистичную нагрузку на вашу систему бэк-энда.

Рассмотрим нагрузочных тестов нашего ajaxsearchpro.com

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

 


 

Как решение LoadView адреса загрузки тестирования с AJAX

 

LoadView, наша облачная платформа тестирования нагрузки, предназначена для тестирования всех современных приложений Web 2.0, таких как AJAX, Flash, Angular, Knockout, HTML5, j-Квери и многих других. Его простота использования является выдающимся. Вы можете записывать полные сценарии на основе браузера и имитировать более 40 мобильных или браузерных устройств, таких как Internet Explorer, Chrome, iPhone, Samsung, Blackberry и многое другое.

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

 

Пять шагов для запуска тестов нагрузки на основе AJAX с LoadView

 

1. Завехать приложение AJAX
Вы можете использовать веб-регистратор EveryStep для ручной навигации по приложению на основе AJAX. EveryStep записывают все действия и позволяют добавлять таймер или шаги проверки. После того как вы нажали через приложение и создали скрипт, вы можете выполнить один пробный запуск пользователя или загрузить записанные действия на нашу платформу и создать устройство для тестирования нагрузки.

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

3. План исполнения
Объем пользователей часто варьируется в зависимости от обычного делового дня. Мы рассмотрели эту потребность с помощью функции плана исполнения. Это дает вам полную гибкость для моделирования реалистичных сценариев тестирования нагрузки.

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

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

 

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

Вас интересует живое демо? Запланивуи с одним из наших инженеров по производительности демонстрацию. Наши инженеры по производительности провести вас через все решение LoadView, от сценариев и настройки теста нагрузки, для выполнения и после тестирования анализа. Получите ответы на все ваши вопросы тестирования нагрузки!

 


 

Используемые инструменты

 

LoadView: Облачная платформа тестирования нагрузки от Dotcom-Monitor

EveryStep Web Recorder: веб-точка и нажмите на инструмент сценариев.

Инструменты Chrome Developer Tools: Инструменты разработчика, встроенные в браузер Chrome.

Чтобы узнать больше о платформе Dotcom-Monitor и предлагаемых решениях мониторинга, посетите веб-www.dotcom-monitor.com