Перейти к содержимому

Фотография

Чем протестировать нагрузку, если протокол клиент-сервер не стандартны


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1 Melmar

Melmar

    Новый участник

  • Members
  • Pip
  • 47 сообщений


Отправлено 05 марта 2008 - 12:10

Добрый день,
есть ПО клиент-серверной архитектуры, транспортный протокол TCP/IP, протокол "общения" (запросов-ответов) клиентов с сервером - оригинальной разработки. База данных на сервере - также оригинальной разработки.
Существует ли ПО, с помощью которого можно протестировать нагрузку на такой сервер?
По известным мне средствам и по их описанию, в основном производится тестирование web-серверов, по протоколу HTTP, и тестовое ПО выступает в роли "прокси-сервера" (TestComplete, к примеру)... В описании других средств для тестирования нагрузки также не смогла найти ничего подобного self-made protocol testing.
Помогите, пожалуйста.
  • 0

#2 Troubleshooter

Troubleshooter

    Опытный участник

  • Members
  • PipPipPipPip
  • 398 сообщений
  • Город:Киев

Отправлено 05 марта 2008 - 13:05

Посмотрите как вариант Jmeter
  • 0

#3 Melmar

Melmar

    Новый участник

  • Members
  • Pip
  • 47 сообщений


Отправлено 05 марта 2008 - 15:01

Посмотрите как вариант Jmeter

Спасибо, посмотрела. После беглого просмотра руководства пользователя вызывает сомнение:
" Apache JMeter is a 100% pure Java desktop application designed to load test client/server software (such as a web application ). It may be used to test performance both on static and dynamic resources such as static files, Java Servlets, CGI scripts, Java objects, databases , FTP servers , and more."
Однако наше ПО написано на Delphi, и у нас совсем не web application... Может, то, что нам нужно, скрывается под многообещающим "and more"?
Еще чуть дальше:
"JMeter samplers include:

* FTP Request
* HTTP Request
* JDBC Request
* Java object request
* LDAP Request
* SOAP/XML-RPC Request
* WebService (SOAP) Request
"
и все... Далее, судя по описанию, предлагается "ручками" писать запросы и компоновать их в очереди - если я правильно поняла. Может ли JMeter "запеленговать" запросы-ответы и записать их?
Расскажите, пожалуйста, на чем основан Ваш выбор (совет)?
  • 0

#4 Troubleshooter

Troubleshooter

    Опытный участник

  • Members
  • PipPipPipPip
  • 398 сообщений
  • Город:Киев

Отправлено 05 марта 2008 - 15:45

С помощью Jmeterа можно открыть TCP/IP соединение, послать запрос и получить ответ от сервера.
Запись не представляется возможной, и все придется делать руками.
И еще одна мысль исходя из вашей ситуации - возможно, в вашем случае будет проще и удобней написать самим нагрузочные тесты которые будут делать то что вы хотите ?
Думаю стоит задать такой вопрос вашим разработчикам.
  • 0

#5 Melmar

Melmar

    Новый участник

  • Members
  • Pip
  • 47 сообщений


Отправлено 05 марта 2008 - 16:06

Atomic_A, спасибо. Вся проблема в том, что автор клиент-серверной части давно с нами не работает, а разработчики всеми способами стараются переложить нагрузочное тестирование на тех, кого к коду серверной части даже не подпускают...
  • 0

#6 Troubleshooter

Troubleshooter

    Опытный участник

  • Members
  • PipPipPipPip
  • 398 сообщений
  • Город:Киев

Отправлено 05 марта 2008 - 17:17

Здесь важен фактор важности нагрузочного тестирования.
Если его хотят проводить "для интереса" тогда вам никто не поможет, в ином случае грамотное преподнесение сути проблеммы руководству поможет решить вопрос.
  • 0

#7 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 06 марта 2008 - 02:10

есть ПО клиент-серверной архитектуры, транспортный протокол TCP/IP, протокол "общения" (запросов-ответов) клиентов с сервером - оригинальной разработки. База данных на сервере - также оригинальной разработки.
Существует ли ПО, с помощью которого можно протестировать нагрузку на такой сервер?

Ключевая фраза в вашем описании - "оригинальной разработки". Любая оригинальность такого рода (в просторечии называемая самопалом) аукается тем, что стандартное/промышленное ПО не работает с такими системами. Что приводит в итоге к потере кучи времени и денег либо на кастомизированные интеграции, либо на опять же самостоятельную разработку того, что требуется. В вашей ситуации искать какой-то уже готовый тул, который будет записывать ваш "оригинальный" протокол на application level (а не на уровне TCP/IP), сродни поиску черной кошки в темной комнате.

Более или менее реальными для вас мне представляются 2 варианта:
1. Привлечение разработчиков, знакомых с протоколом "общения", на предмет просвещения вас относительно API этого протокола, чтобы вы могли программно генерировать запросы и понимать ответы с сервера.
2. Использование какого-либо тула функционального тестирования для создания GUI скриптов с последующим проведением нагрузочного тестирования с помощью этих скриптов. Путь сильно геморроидальный со всеми присущими недостатками проведения нагрузочного тестирования через GUI (scalability, reliablity, ограничение на количество скриптов запускаемых одновременно на одной машине), но "на честном слове и на одном крыле" долететь до финиша в принципе можно. Если, конечно, у вас не стоит задача гнать тест на сотни/тысячи пользователей.
  • 0
Дмитрий Шевченко

HP Software

#8 Melmar

Melmar

    Новый участник

  • Members
  • Pip
  • 47 сообщений


Отправлено 06 марта 2008 - 09:02

в ином случае грамотное преподнесение сути проблеммы руководству поможет решить вопрос.

Atomic_A, спасибо. Мне важно было получить квалифицированный ответ "со стороны", чтобы дать понять руководству, что наша беспомощность в данном вопросе - это не просто желание уйти от ответа.
  • 0

#9 Melmar

Melmar

    Новый участник

  • Members
  • Pip
  • 47 сообщений


Отправлено 06 марта 2008 - 09:50

2. Использование какого-либо тула функционального тестирования для создания GUI скриптов с последующим проведением нагрузочного тестирования с помощью этих скриптов. Путь сильно геморроидальный со всеми присущими недостатками проведения нагрузочного тестирования через GUI (scalability, reliablity, ограничение на количество скриптов запускаемых одновременно на одной машине), но "на честном слове и на одном крыле" долететь до финиша в принципе можно. Если, конечно, у вас не стоит задача гнать тест на сотни/тысячи пользователей.

Спасибо, Дмитрий, за исчерпывающий ответ. По второму пути мы попробовали идти, и об эти самые недостатки сильно споткнулись: на скриптах все было вроде бы хорошо, а во время опытной эксплуатации с реальными пользователями на сервере появились утечки памяти. И что такое делают эти реальные пользователи, чего не делали наши скрипты - понять сложно, потому как операций масса. Варианты поиска утечек есть, но, как говорится, время поджимает. Вот и пошли эмоции со строны разработчиков, что мы плохо и "не тем" тестировали.
А что касается "самопала" - так это было осознанно выбранное решение, как элемент защиты системы и экономии средств. Время показало, что очень неплохой самопал :-)
  • 0

#10 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 07 марта 2008 - 00:59

А что касается "самопала" - так это было осознанно выбранное решение, как элемент защиты системы и экономии средств. Время показало, что очень неплохой самопал :-)

Действительно неплохой, особенно для разработчиков - поди попробуй протестировать его :clapping:
  • 0
Дмитрий Шевченко

HP Software

#11 lansio

lansio

    Новый участник

  • Members
  • Pip
  • 7 сообщений

Отправлено 25 апреля 2008 - 08:07

Добрый день,
есть ПО клиент-серверной архитектуры, транспортный протокол TCP/IP, протокол "общения" (запросов-ответов) клиентов с сервером - оригинальной разработки. База данных на сервере - также оригинальной разработки.
Существует ли ПО, с помощью которого можно протестировать нагрузку на такой сервер?
По известным мне средствам и по их описанию, в основном производится тестирование web-серверов, по протоколу HTTP, и тестовое ПО выступает в роли "прокси-сервера" (TestComplete, к примеру)... В описании других средств для тестирования нагрузки также не смогла найти ничего подобного self-made protocol testing.
Помогите, пожалуйста.


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

сам периодически прибегаю к такому методу даже для стандартного HTTP который по каким либо причинам некорректно обрабатывается в LoadRunner...
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных