Назад | Перейти на главную страницу

Можно ли использовать curl для точного стресс-тестирования сайта с большим количеством javascript?

У меня есть веб-сайт, на котором много javascript, но простой HTML. Я хочу попробовать простые стресс-тесты с curl. Это возможно? Если я просто скручу сайт, я получу HTML. Таким образом, выполнение множества запросов curl на самом деле не скажет мне, как он работает при определенных скоростях трафика. (Я знаю, что существуют тысячи сложных фреймворков и методов для стресс-тестирования - и я очень рад их изучить. Но сейчас мне нужно что-то быстрое и грязное, потому что через несколько дней веб-сайт получит большой трафик.) Есть ли способ использовать CURL для тестирования сайта с интенсивным использованием javascript?

Вы правы, curl не будет просматривать ваш веб-сайт, как настоящий пользователь в реальном браузере, поэтому вам понадобится что-то еще (если вы заботитесь об этой дифференциации).

Помните, что JS выполняется в браузере, поэтому этого не произойдет. обязательно добавить нагрузку на ваш сервер (это, конечно, зависит от того, вызывает ли ваш JS вызов сервера для выполнения дополнительной работы, например, вызов ajax). Вас волнует, что происходит, когда страница попадает на пользователя, или вы тестируете производительность своего сервера? В любом случае у вас есть несколько вариантов тестирования производительности / нагрузки.

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

phantomjs.org/ PhantomJS - это безголовый WebKit, поддерживающий скрипты с JavaScript API. Он имеет быструю и встроенную поддержку различных веб ...

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

Поскольку у вас нет времени, попробуйте онлайн-сервис, который уже делает то, что вы хотите. Я использовал https://www.blitz.io/ в прошлом, и поскольку это программное обеспечение как услуга, нечего загружать или настраивать, так что начать работу легко и безболезненно.

Или рассмотрите следующие коммерческие инструменты с ограниченной лицензией

  • SOASTA CloudTest lite. 100 потоков, без срока действия
  • LoadRunner версии 12 Community Edition. 50 виртуальных пользователей с неограниченным сроком действия

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

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

Утилита Curl не выполняет JavaScript. Я думаю, вам нужно что-то вроде N браузеров, которые одновременно обращаются к вашему сайту.

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

Однако запросы AJAX по-прежнему могут быть перехвачены и реплицированы с использованием меньших ресурсов ЦП / ОЗУ, таких как Apache JMeter. Вы можете указать браузеру на тестируемый сайт через Прокси-сервер JMeter который будет записывать все запросы, включая асинхронный JavaScript, а затем воспроизводить сценарий с большим количеством виртуальных пользователей.