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