Общая среда тестирования производительности для .NET

У меня есть клиент-серверное приложение, написанное на C # /. NET 3.5, и я хочу провести небольшое тестирование производительности. Я искал общий фреймворк, который мог бы мне помочь, но мне не повезло. Я бы хотел что-то, что могло бы управлять набором клиентов и выполнять для них случайные действия в зависимости от некоторых настроек. Затем я также хотел бы записать некоторые данные, относящиеся к этому, чтобы помочь мне отработать приблизительные пороговые значения для моей системы, например Я могу поддерживать n пользователей, выполняющих x действий в секунду.

Я бы написал код, специфичный для моего приложения, для выполнения таких задач, как:

  • Вход в систему / выход из системы клиента.
  • Отправлять сообщения на сервер для выполнения различных действий.
  • Записывать подтверждения и другие сообщения с сервера.
  • Измерение статистики, относящейся к системе.

Я надеюсь, что фреймворк сможет принять набор параметров для описания сценария тестирования, например:

  • Количество клиентов, вошедших в систему в данный момент.
  • Выполнять заданное количество действий в секунду для каждого клиента.

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

Я не хочу профилировать свой код; Я всегда могу подключить профилировщик во время выполнения этих тестов позже. Вместо этого я хочу сделать некоторые приблизительные выводы о своей системе, то есть о том, сколько пользователей я могу задействовать, прежде чем она сломается. (Если есть лучший термин для этого, чем «тестирование производительности», пожалуйста, дайте мне знать ... Может быть, стресс-тестирование?)

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

Кто-нибудь знает что-нибудь, что могло бы помочь? Мои поиски еще ничего не нашли. Я должен отметить, что в обозримом будущем я застрял на Visual Studio 2008 Professional, поэтому, если 2010 год сможет сделать это, для меня это будет недоступно. Думаю, это не обязательно должна быть платформа .NET, при условии, что я все еще могу довольно легко встраивать свой код .NET.

ИЗМЕНИТЬ Чтобы было ясно, что мое приложение не является веб-сайтом, это клиентское приложение Windows Forms, которое подключается через настраиваемый протокол к службе .NET. Я могу написать код для выполнения соответствующих клиентских действий, мне просто нужен фреймворк, чтобы его вставить.

9
задан MrKWatkins 3 October 2011 в 16:57
поделиться