Нагрузочное тестирование приложения Meteor с помощью k6, ожидание на элементе кузова - PullRequest
0 голосов
/ 02 октября 2018

Впервые на k6, работа с веб-приложением, которое кратко представляет спиннер на домашней странице при загрузке файлов css и js.

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

  • С помощью k6 есть способ подождать, пока конкретный элемент тела(форма входа в систему) доступна в теле, прежде чем перейти к следующему шагу (т. е. заполнить имя пользователя и pwd и отправить форму для входа в систему)?

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

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

Спасибо за вашу помощь.

Билл

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

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

  1. Сбор всех необходимых запросов - обычно с использованием k6 convert для преобразованияHAR-файл хорошо работает для создания основы сценария.Я предлагаю использовать другие опции при конвертации, чтобы ограничить любые сторонние запросы.например, --only или --skip.Дополнительная информация здесь: https://support.loadimpact.com/4.0/how-to-tutorials/how-to-convert-har-to-k6-test/

  2. Поскольку вы записали сеанс браузера, если ваше приложение / сайт использует что-либо для предотвращения CSRF-атак, вы должны обработать эти значения / соотнести их.например, сайты .NET используют VIEWSTATE, если вы тестировали приложение .NET, вам нужно было бы дать VU команду извлекать состояние представления из тела ответа и повторно использовать его в ваших запросах, которым это требуется

  3. Аналогично пункту 2, если вы отправляете форму, вы, вероятно, не хотите использовать одни и те же данные снова и снова.Обычно это просто проверяет, насколько хорошо ваша система может кешировать или приводит к сбою запросов (если вы входите в систему, и ваша система не поддерживает одновременные входы в систему для одного и того же пользователя, как в одном примере).k6 может использовать данные CSV или JSON в качестве источника для параметризации данных.Вы также можете генерировать некоторые из этих встроенных, если это не слишком сложно.Вот некоторые примеры: https://docs.k6.io/docs/open-filepath-mode

0 голосов
/ 02 октября 2018

k6 не работает как браузер - нагрузочные тесты написаны на JavaScript, но когда вы запрашиваете HTML-файл, JavaScript в этом файле не выполняется.Обычно он не может быть выполнен даже с eval() или чем-то в этом роде, поскольку у k6 нет DOM или какого-либо обычного API браузера.Таким образом, вы должны явно указать любые HTTP-запросы, которые вы хотите, чтобы ваши k6-скрипты делали, и в вашем случае я предполагаю, что блесна и форма входа генерируются JavaScript где-то на домашней странице.

Чтобы упростить работу стакие высокодинамичные веб-сайты, когда вы используете k6, вы можете нормально использовать сайт в своем браузере, записать сеанс браузера как файл .har и экспортировать его, а затем преобразовать этот файл .har в файл k6скрипт с командой k6 convert, подобный этому: k6 convert session.har -O k6_script.js.Вы можете найти больше информации обо всем процессе здесь .

...