Что вы использовали для тестирования (функционал / нагрузка / стресс) вашего сетевого сервиса с его пользовательским протоколом? - PullRequest
5 голосов
/ 12 января 2009

Я недавно создал пошаговый игровой сервер, который может принимать десятки тысяч одновременных клиентских подключений (короче говоря, epoll на Linux). Связь основана на простом, настраиваемом линейном протоколе. Этот сервер позволяет клиентам подключаться, искать других игроков в игровых матчах, играть в указанные игры (отправлять ходы, сообщения чата и т. Д.) И получать уведомления о завершении игры.

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

Некоторые вещи, которые я сейчас исследую, это: pexpect (python ожидает lib для функционального тестирования) и tsung для нагрузочного тестирования.

Я бы хотел иметь возможность просто выполнить тестирование с моего ноутбука, поскольку у меня нет кластера клиентских машин для подключения. Возможно, мне потребуется использовать псевдоним ip или что-то подобное для генерации сотен тысяч исходящих сокетов (ограничение составляет 65 КБ на интерфейс AFAIK).

Во всяком случае, мне кажется, что мне нужно что-то довольно нестандартное, но я решил спросить, прежде чем идти по этому пути.

Спасибо!

Ответы [ 3 ]

1 голос
/ 13 февраля 2009

Я решил, что лучше всего начать с "катиться по-своему".

1 голос
/ 12 января 2009

Я использовал JMeter с пользовательскими компонентами сэмплера и подтверждения, прежде чем выполнять автоматическое регрессионное / нагрузочное тестирование для банковского приложения с пользовательским протоколом (API на основе Java RMI).

Хотя он не совсем легкий, и вы в конечном итоге будете выполнять много дополнительного кодирования в компонентах JMeter для поддержки вашего собственного протокола. Я предполагаю, что в этом случае вам придется кодировать свой собственный клиент на основе сокетов Java.

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

0 голосов
/ 12 января 2009

Мы используем HP LoadRunner, это современный продукт для нагрузочного тестирования. (Но тоже дорогой). Он может моделировать тысячи запросов к серверу и предоставляет метрики времени отклика и т. Д.

...