Вопрос по тестированию производительности
#1
Отправлено 13 июня 2007 - 09:25
Этот вид тестирования довольно долго обходил нас стороной, хотя периодически и напоминал о своем сущетвовании. Опыта в нем у нас можно сказать нет совсем, если не считать игр с eLoad, просто чтобы посмотреть как он работает и чтения обзорных статей
Ситуация. Есть клиент-серверное приложение (игровой портал - бильярд, карты и т.д.). Клиент реализован на Delphi и Flash. Сервер собственного написания. DB - MSSQL2005. Протокол HTTP/XML.
Заказчик хочет проверить, что приложение будет работать при одновременной работе 2000 пользователей.
Из средств атоматизации, которые мы можем использовать (не open-source) для данной задачи есть EggPlant.
Если у кого-то есть время и возможность прокомментировать данную ситуацию и помочь советами - будем очень благодарны!
#2
Отправлено 13 июня 2007 - 12:30
--
Сергей Мартыненко
Блог 255 ступеней (байки для оруженосца)
facebook (Дети диаграммы Ганта)
ВебПосиделки клуба имени Френсиса Бэкона
#3
Отправлено 13 июня 2007 - 13:46
Иду писать ответы на перечисленные вопросы и выстраивать для себя стройную картину происходящего...
А пока такой вопрос:
- как можно провести нагрузочное тестирование для игры 8ball Pool (бильярд), Backgammon (нарды), Rummy (карты) и Snooker (тоже бильярд), которые реализованы на Flash.
Происходящие в них действия рандомны, т.е. вероятнойсть повторения записанного сценария мала. Посоветуйте с какой стороны подступиться к решению такой задачи?
#4
Отправлено 13 июня 2007 - 14:55
Создать требуемое число сценариев и потом во время нагрузочного тестирования рандомно выбирать их требуемым количеством виртуальных пользователей.Происходящие в них действия рандомны, т.е. вероятнойсть повторения записанного сценария мала. Посоветуйте с какой стороны подступиться к решению такой задачи?
#5
Отправлено 13 июня 2007 - 19:37
Модель нагрузки говорите? Я конечно могу статью написать. Но эта тема гораздо сложнее, чем все инструменты. Так что мой вам совет, попробуйте на тренинг сходить. Да, знаю, нет их нормальных. Ну, напроситесь пиво попить с кем нибудь из гуру. Green-а угостите, например. Он по-моему пиво пьет .SAlar, огромное спасибо! Классные статьи!
Иду писать ответы на перечисленные вопросы и выстраивать для себя стройную картину происходящего...
А пока такой вопрос:
- как можно провести нагрузочное тестирование для игры 8ball Pool (бильярд), Backgammon (нарды), Rummy (карты) и Snooker (тоже бильярд), которые реализованы на Flash.
Происходящие в них действия рандомны, т.е. вероятнойсть повторения записанного сценария мала. Посоветуйте с какой стороны подступиться к решению такой задачи?
--
Сергей Мартыненко
Блог 255 ступеней (байки для оруженосца)
facebook (Дети диаграммы Ганта)
ВебПосиделки клуба имени Френсиса Бэкона
#6
Отправлено 14 июня 2007 - 09:50
+1. А на сервере в каждой сессии задавать один и тот же RandSeed - чтобы рандом был одинаковый.Создать требуемое число сценариев и потом во время нагрузочного тестирования рандомно выбирать их требуемым количеством виртуальных пользователей.Происходящие в них действия рандомны, т.е. вероятнойсть повторения записанного сценария мала. Посоветуйте с какой стороны подступиться к решению такой задачи?
#7
Отправлено 14 июня 2007 - 14:59
После некоторого уточнения с разработчиками выяснилась следующая картина.
Логика одной из игр (Rummy) полностью реализована на сервере и основную нагрузку может давать именно эта игра.
Логика же остальных игр полностью реализована на клиенте во флэше, а на сервере только сравниваются состояния (state), которые передаются с 2х клиентов для синхронизации.
Было решено, что для Rummy будут написаны боты, которые будут открывать игру, выполнять несколько начальных действий (которые весгда одинаковы) и закрывать игру. И запущены в необходимом количестве, чтобы можно было посмотреть и оценить, что при этом происходит на сервере.
Для остальных же игр было решено использовать пустые состояния и наплодить их в требуемом количестве и опять таки смотреть как себя поведет сервер.
И естественно, ко всему выше перечисленному, будет мониторится работа базы данных, во время большого количество пользователей, одновременно находящихся "в игре".
Это вкратце то, на чем остановились...
Если есть какие-нибудь комментарии - будем рады услышать!
Да и реализацией всего этого счастья будут заниматься разработчики :) Опять мимо, хотя уже почти попало...
#8
Отправлено 14 июня 2007 - 18:28
PS. Рекомендую учесть пики активности, см. задачку от яндекса. Решения этой задачи нигде нет (насколько я знаю), но можно поиграться в форуме.
PSS. Пивом можно угостить и меня
--
Сергей Мартыненко
Блог 255 ступеней (байки для оруженосца)
facebook (Дети диаграммы Ганта)
ВебПосиделки клуба имени Френсиса Бэкона
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных