Рубрика «нагрузочные тесты»

Представьте ситуацию: через банк ежесекундно проходит более 150 транзакций. Как можно быть уверенными, что такая система будет достаточно надежна и не откажет в 11 вечера в субботу, разочаровав клиентов?

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

Что такое нагрузочное тестирование

Читать полностью »

Привет! Меня зовут Евгений Гущин, я — исполнительный директор Smartup. За 20 лет работы в IT у меня было несколько забавных случаев. Сегодня расскажу, как мы героически поймали «русских хакеров».

Как мы ловили «‎русских хакеров», которые нечаянно положили сервер заказчиков - 1

Читать полностью »

Нагрузочное тестирование выполнять сложно, а инструменты далеки от совершенства. Почему? - 1

Если вы создаёте приложение, которое должно масштабироваться — а все мы надеемся, что наши приложения будут расти — то в определённый момент нам приходится разбираться, может ли оно это делать на самом деле. Именно тогда на помощь приходит нагрузочное тестирование: если вы хотите узнать, справится ли ваше приложение с крупными масштабами, то мы просто генерируем эти масштабы и проверяем! Звучит достаточно просто.

Но потом мы пробуем действительно сгенерировать нагрузку. Это делается легко, только если ваше приложение ужасно простое, ведь тогда можно использовать что-нибудь типа Apache JMeter для генерации повторяющихся запросов. Если у вас это получится, то я вам завидую: все системы, с которыми мне приходилось работать, сложнее и требовали более изощрённой схемы тестирования.

Если ваше приложение становится чуть сложнее, то вы переходите к инструментам наподобие Gatling. Они позволяют симулировать виртуальных пользователей, выполняющих различные сценарии, что намного полезнее, чем простая осада одного или нескольких URL. Но даже этого недостаточно, если вы пишете приложение, использующее одновременно WebSockets и HTTP-вызовы в течение долговременной сессии, а также требующее повторения по таймеру определённых действий. Возможно, я серьёзно недоглядел чего-то в документации, но мне не удалось найти способа, допустим, настроить периодическое событие, запускаемое каждые 30 секунд и выполняющее определённые действия при ответе на сообщение WebSocket, а также производящее действия по HTTP, и всё это в рамках одной HTTP-сессии. Я не нашёл такой возможности ни в одном инструменте нагрузочного тестирования (и именно поэтому написал на работе свой собственный инструмент, который надеюсь выложить в open source, если найду время на подчистку кода и отделения его от проприетарных частей).
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js