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

Фотография

Нужна оценка тест плана в JMeter


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

#1 br00ks

br00ks

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Eder Greg

Отправлено 22 сентября 2010 - 20:24

Приветствую. Требуеться произвести тестирование до и после улучшения. Тест план естественно должен быть один и тот же чтобы можно было результаты сравнить. Я тестирование как таковым раньше ни когда не занимался. Только Unit testing (JUnit). Вчера скачал JMeter, начал разбираться. Далее я приведу план согласно которому я хотел собираюсь произвести тестирование, и так как я это делаю в первый раз очень нужна ваша оценка. Собственно говоря что тестируем - PDM ( product data management ) которая была разработана в далеком 2001. Были изменения, сейчас требуеться наложить ограничения на доступ по сайту и по объекту(изначально система была все что в ней доступно всем. - collaboration system.). Систима большая и сложная, сложная потому что сделана криво. 15 серверов 15к пользователей, железо мощное а работает все не так как хотелось бы. Изменения уже я внедрил теперь нужно показать результаты. Результаты после улучшения не должны быть хуже чем до! (это прямо так и сказано). В общем помогите с тест планом, чтобы его сделать толково, и не нагружать лишним. Пока тест план только на бумаге, составил основываясь на том что нужно сделать и на том какие инструменты я успел в JMeter найти. Итак.

3 Теста. Каждый для своей restriction group. (Unrestricted, Site restricted, object restricted). Каждый тест имеет 4 Thread groups. (Full, Basic, Light, Aprrover) - по типу лицензии. В каждой из этих thread groups мы задаем свой лист пользователей (думал с генерировать, но пока это кажется сложным потому что у юзер есть префиксы разные (по типу лицензии)). Имена юзеров составные - UnrestrictedFullDocs1, ObjectRestrictedParts5 поэтому у каждой группы потоков свой юзер лист (id,password,action).

После иницилизации данных для каждой группы (ложим массивы ключевых слов для поиска, забираем с файла USERID, PASSWORD, ACTION) идет логин процесс. После отправки проверяем через if controller (${last_sample_ok}) если да то проверяем страничку что там есть ссылка на домашнюю страницу(я так понимаю что тут нужен будет regExp extractor) а если нет(как я понял условия else ни как нельзя задать в JMeter :( ) то ни чего не делаем.

после еще один if controller который проверить что default value было изменено когда было найдено совданение с выражение для поиска ссылки на дом. Все. теперь когда мы убедились что мы на домашней странице авторизированы нужно выполнить последовательность действий раз бесконечно пока не остановим скрипт (нужно с тестировать 1 час). Добавляем loop и там добавляем include container.

Отдельно снимаем последовательность действий в badBoy, переводим в Jmeter, добавляем данные через bean shell preprocessor, выкидываем авторизацию, забираем данные что положили до этого(где то 20 записий для поиска по разным пораметрам), добиваем те действия которые были записаны с заменой тех что ввели руками на те что положили в массиве.

Эти скрипты мы храним отдельно они будут использоваться везде. Ничего случайного, строгая последовательность операций для все тестов и потоков.

После авторизации нам нужно определить какой скрипт вызвать для этого добавляем switch controller. в нем проверяем какое действие было снято вместе с данными на пользователя (если docs - run docs script, если parts - parts...) в соответствии с этим параметром запускаем нужный нам скрипт в бесконечном цикле.

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

Это еще сырой вариант. Времени не так много, в конце след. недели сдать тестовую версию для одного из объектом, через еще одну, полностью. Пару копеек для меня будут золотом. Выскажите кто какие проблемы/недостатки видит в этом плане, что нужно поменять, что наоборот добавить. Спасибо.
  • 0

#2 ligreen

ligreen

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

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

Отправлено 23 сентября 2010 - 07:24

Если честно, то из вашего описания мало что понятно. Только без обид :)
Думаю, чтобы дать вам дельный совет по составлению сценария для тестирования вашей PDM нужно более детально изучить работу самой PDM, почитать доки, пощупать руками...
Я так понимаю, что были были тормоза в PDM, вы что-то улучшили и теперь хотите доказать тестами, что тормоза пропали?
  • 0

#3 br00ks

br00ks

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Eder Greg

Отправлено 23 сентября 2010 - 13:19

Спасибо, постараюсь дать более лучшее описание(чуть позже). Какие моменты в целом остались не ясными? PDM это система документа оборота(может не правильное название). На момент разработки планировалось то что каждый в системе может иметь доступ ко всем ее объектам (документы, CAD файлы, запросы на изменение и тд). Сейчас потребовалось наложить ограничения на доступ по сайту (их 15) и по объектам, но не везде. Задача: протестировать одними и теми же действиями систему до и после. Т.е. дествия после логин, это поиск по разным пораметрам, и парсинг странички чтобы убедиться что это не страница с ошибкой или логин формой. Тормоза пока не понятно из за чего...pdm dev в которой я работаю (dev environment) показывает не большие лаги при >20 юзерах. На pdm production, я пробовать не могу пока даун тайм не поставили(чтобы юзеры не дай бог не повисли). Поэтому и нужно показать разницу до и после а так же какую нагрузку в настоящий момент выдерживает система при загрузке cpu 40-60%.
  • 0

#4 br00ks

br00ks

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Eder Greg

Отправлено 24 сентября 2010 - 17:11

Картинка с тем что я описал выше прикреплена к этому сообщению. Это тест план для первой группы. Точно такие же должны быть планы для второй и третьей группы за исключением того что некоторые тесты должны быть failed потому что наложены ограничения на страницу/объект. Выяснилось что я заблуждался по поводу switch controller, так как он не осуществляет функционала switch (условие) case... . Собираюсь добавить BS preprocessor для генерации данных для поисках. Исходя из того что я описал какие ошибки?, что лучше сделать по другому, что добавить...я далеко не тестер поэтому хотелось бы получиться конструктивную оценку моему первому нагрузочному тесту.

Так же хотелось бы задать пару вопросов (не буду выносить их в отдельную ветку):

1. Какие средства вы используете для предоставления отчета по прохождению тестов? наверняка ведь ни кто из вас заказчику скриншот с экрана не посылает. Если есть возможность киньте ссылку на примерные отчеты по тестированию. Я еще сам поищу.

2. Хочу вынести последовательноть действий в отдельные тесты и добавлять их через include controller . т.е. после логина в зависимости от действия инклуд один из 4 action сценариев. Хорошая ли это практика?

3. Обнаружил что в течении прохождения теста часть юзеров отвалилась - вместо 80 было 56, а так как я использовал логин через once only controller добавить обратно этих юзеров уже не получаеться не перезапуская теста. Что можно по этому поводу сделать чтобы держать юзеров в цикле час и больше, а на случай если отвалились обратно их залогинить?

Пока все. Очень хотелось бы получить вашу оценку/ответы. Спасибо.

Прикрепленные файлы

  • Прикрепленный файл  test_plan.JPG   39,66К   120 Количество загрузок:

  • 0

#5 ligreen

ligreen

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

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

Отправлено 30 сентября 2010 - 13:57

Мы в отчет о нагрузочном тестировании включаем:
1. описание тестовой среды, настроек тестируемого ПО
2. описание требований, исходя из которых проводилось тестирование
2. описание сценария тестирования
3. результаты тестирования, по сути тот же самый Aggregate Report только в виде табличи в html.
4. отчет, в котором в графическом виде представлены потребляемые ресурсы (память, проц, дисковая активность, сеть и т.п.) за время тестирования.
5. выводы (сервис прошел/не прошел тестирование)

по П.2 - хорошая логика
по П.3 - скорее всего у вас юзеры отвалились из-за нехватки памяти. Чтобы узнать точно - гляньте в jmeter.log, там должно быть что-то вроде "Out of memory". Бороться с этим можно несколькими путями: поиграться с параметром HEAP="-Xms512m -Xmx512m" в скрипте запуска жметра путем увеличения Xmx. Второй путь отключить все Listener в сценарии, либо заменить их на один Simple Data Writer, который будет писать все результаты в лог, а после окончания тестирования этот лог можно открыть в том же Aggregate Report и посмотреть статистику. Так же можно попробовать протестировать жметром версии 2.4, разработчики утверждают, что в нем листнеры стали потреблять меньше памяти.
  • 0

#6 br00ks

br00ks

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Eder Greg

Отправлено 08 октября 2010 - 20:31

4Ligreen, Спасибо за ваши ответы. Есть еще вопрос по тому как вы представляете свои отчеты - голые цифры и текст или вы разбавляете их графиками и чартами? Если делаете графики интересно было бы знать чем пользуетесь? Я воспользовался хорошо написанной статьей - http://amelnyk.blogs.../blog-post.html (пользуясь случаем хочу сказать спасибо автору этого блога - Андрею Мельнику) о том как генерировать HTML отчеты на основании логов из JMeter. Все работает все как нужно. Осталось только добавить графики в эти отчеты. У меня 157 запросов, каждый из них должен иметь min, max, average response time а так же опционально 50% line, 90& line. Возможно, отдельный график для количество попыток, сколько из них успешны/провалены , что то еще. В общем график получается большой. Хотелось добавить интерактивный чарт где можно с этими результатами было поиграть. Выбор упал на amCharts. Все вроде красиво, интерактивно, чтобы прикрутить потребовалось пол дня. Есть ли другие аналоги? (SVG?) Если есть какие либо примеры хорошо спроектированых отчетов о тестировании было бы интересно на них посмотреть.
  • 0


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

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