У меня есть клиент-серверное приложение, написанное на C # /. NET 3.5, на котором я хочу провести небольшое тестирование производительности. Я искал общие рамки, чтобы помочь мне, но мне не повезло. Я хотел бы что-то, что может управлять набором клиентов и выполнять произвольные действия для них на основе некоторых настроек. Затем я также хотел бы записать некоторые данные, относящиеся к этому, чтобы помочь мне работать с грубыми грубыми порогами для моей системы, например, Я могу поддерживать n пользователей, выполняющих x действий в секунду.
Я бы написал код, специфичный для моего приложения, для выполнения таких задач, как:
- Вход / выход из клиента.
- Отправка сообщений на сервер для выполнения различных действий.
- Запись подтверждений и других сообщений с сервера.
- Измерение статистики, специфичной для системы.
Я надеюсь, что фреймворк сможет принимать набор параметров для описания сценария тестирования, таких как:
- Количество клиентов, вошедших в данный момент.
- Выполнять определенное количество действий в секунду для каждого клиента.
Затем он будет запускать сценарий, управлять и отслеживать всех пользователей и действий и сопоставлять все данные. (Это скучный бит, который я стараюсь избегать кодирования сам ...) В идеале в него должны были бы быть встроены некоторые общие измерения, например время между отправкой сообщения и получением ответа, но я мог бы сам кодировать их, если нет.
Я не хочу выполнять профилирование моего кода; Я всегда могу прикрепить профилировщик при выполнении этих тестов позже. Вместо этого я хочу сделать некоторые грубые выводы о моей системе, то есть, сколько пользователей я могу бросить на нее, прежде чем она сломается. (Если для этого есть более подходящий термин, чем «тестирование производительности», пожалуйста, дайте мне знать ... Возможно, стресс-тестирование?)
Я понимаю, что я не даю очень много подробностей о системе здесь. Мне кажется, что это довольно общая ситуация - я уверен, что существует множество систем клиент-сервер, на которых людям необходимо проводить аналогичные тесты. Я обнаружил, что многие веб-фреймворки делают подобные вещи, но они кажутся довольно укоренившимися в Интернете и не поддаются легко системам, не основанным на HTTP.
Кто-нибудь знает что-нибудь, что может помочь? Мой поиск еще ничего не нашел. Я должен отметить, что я застрял с Visual Studio 2008 Professional в обозримом будущем, поэтому, если 2010 год сможет это сделать, это для меня не будет границ. Я предполагаю, что это не обязательно должен быть .NET-фреймворк, при условии, что я все еще могу легко подключить свой .NET-код.
РЕДАКТИРОВАТЬ Чтобы было ясно, что мое приложение не является веб-сайтом, это клиентское приложение Windows Forms, которое подключается через специальный протокол к службе .NET. Я могу написать код для выполнения соответствующих действий клиента, мне просто нужна среда для его установки.