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

Фотография

jmeter нагрузка сайта


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

#1 pitch

pitch

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

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

Отправлено 02 марта 2010 - 06:53

Всем доброго дня, собственно вопрос. Хотелось бы нагрузить сайт, одновременной работой около 15000 пользователей, при этом у каждого пользователя свой логин и пароль. Тут без распределенного режима не обойтись, я так понимаю. Есть ли у Jmeter механизм с глобальными переменными к примеру List<User> list... list.remove(i); чтобы каждый экземпляр программы взял только n логинов, и они не пересекались с другими экземплярами. У кого есть опыт подобных нагрузок может даже не в jmeter... Прошу подсказать по возможности.
  • 0

#2 enki86

enki86

    Постоянный участник

  • Members
  • PipPipPip
  • 231 сообщений


Отправлено 02 марта 2010 - 07:33

pitch, у меня не было никогда такой необходимости, однако, решение, видимо, достаточно просто:
создаете csv файл с 15000 записями логинов и паролей
читаете записи с X по Y строки
__CSVRead
(см. Functions )
  • 0

#3 pitch

pitch

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

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

Отправлено 02 марта 2010 - 07:40

угу спасибо, я обратил на эту ф-ю внимание, просто придется делать на каждый экземпляр программы, по такому файлу... В принципе в полне достойно )
  • 0

#4 enki86

enki86

    Постоянный участник

  • Members
  • PipPipPip
  • 231 сообщений


Отправлено 02 марта 2010 - 08:29

не совсем понял что вас смущает?

Я вижу это так:

делаете один большой csv файл (данный процесс можно и автоматизировать, если такая необходимость возникает часто, я писал как-то свою библиотечку на основе opencsv), запускаете на удаленных компьютерах server'а, делегировав им генерацию нагрузки, Добавляете Counter (передаете ему свои знания о вашей нагрузочной структуре, вы-то знаете сколько машин генерируют нагрузку...) и имеете n-ное количество уникальных юзеров, которые могут брать логины и пароли из файла с произвольным шагом (1,2,3-я строки или 1,10,20...).
В седующий раз у вас уже будет csv и ничего переписывать не придется
  • 0

#5 Troubleshooter

Troubleshooter

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

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

Отправлено 02 марта 2010 - 09:45

pitch, у меня не было никогда такой необходимости, однако, решение, видимо, достаточно просто:
создаете csv файл с 15000 записями логинов и паролей
читаете записи с X по Y строки
__CSVRead
(см. Functions )

Не самый удобный и не оптимальный вариант. Особенно, при таком количестве тредов. Лично я стараюсь минимально использовать внешние хранилища данных. Если есть возможность сгенерировать нужные данные в самом тест плане значит ее нужно использовать.

Всем доброго дня, собственно вопрос. Хотелось бы нагрузить сайт, одновременной работой около 15000 пользователей, при этом у каждого пользователя свой логин и пароль. Тут без распределенного режима не обойтись, я так понимаю. Есть ли у Jmeter механизм с глобальными переменными к примеру List<User> list... list.remove(i); чтобы каждый экземпляр программы взял только n логинов, и они не пересекались с другими экземплярами. У кого есть опыт подобных нагрузок может даже не в jmeter... Прошу подсказать по возможности.

Один из вариантов:
Создаете логины пользователей в формате: LoginName + ID, где ID это Counter. Например, Vuser1, Vuser2 и.т.д. В такоме же формате создаете и пароли для каждого из юзеров, например для Vuser1 это может быть password1 или что-то подобное. Если совсем по-простому, то пароль можно сделать одинаковым для всех пользователей. Ну, а дальше простая параметризация Vuser${ID} /password${ID} в месте где происходит логин.
  • 0

#6 enki86

enki86

    Постоянный участник

  • Members
  • PipPipPip
  • 231 сообщений


Отправлено 02 марта 2010 - 10:14

Atomic_A@ukr.net,
можно и так, одна проблема, а что если нужно будет еще какие-то уникальные данные с пользоватлем передавать? Тоже генерить автоматически? - не всегда возможно ИМХО

Не самый удобный и не оптимальный вариант

Как по мне - так удобнее заранее предусмотреть возможности расширения требований и возможностей скрипта

PS/ замечательный у вас блог
  • 0

#7 Troubleshooter

Troubleshooter

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

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

Отправлено 02 марта 2010 - 11:12

Atomic_A@ukr.net,
можно и так, одна проблема, а что если нужно будет еще какие-то уникальные данные с пользоватлем передавать? Тоже генерить автоматически? - не всегда возможно ИМХО

Это уже гадание на кофейной гуще. А генерить можно практически все, другой вопрос насколько критично, чтобы формат сгенерированных данных соответствовал реальным данным. Для експеримента попробуйте оба варианта и отпишитесь, что удобней.
  • 0

#8 pitch

pitch

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

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

Отправлено 04 марта 2010 - 09:23

Всем спасибо, за ответы, я посмотрел при логине одного пользователя, тратится ресурсов столько же если бы это были разные пользователи, cookies, sid, etc... Так, что остановился на 1-2 чтоб обращение было к разным объектам базы данных. Теперь чего то не могу понять, как работает распределенный режим :)

прописал адреса в мастер, запустил слейвы, жму Start Remote xxx.xxx.xxx.xxx

на сервере вижу...
Starting the test on host 192.168.76.130 @ Thu Mar 04 12:04:48 MSK 2010 (1267693488098)
Finished the test on host 192.168.76.130 @ Thu Mar 04 12:05:21 MSK 2010 (1267693521449)

что то там отработало, но что именно я не понял :) реально на сайте ничего не произошло... Тест план, как то нужно передавать в jmeter-server или он по RMI все получает от клиента? И потом как и где смотреть результат с нагружальщиков?
  • 0

#9 enki86

enki86

    Постоянный участник

  • Members
  • PipPipPip
  • 231 сообщений


Отправлено 05 марта 2010 - 07:36

Ничего передавать на надо
достаточно запустить jmeter-server на всех(!) удаленных машинах, прописать машины нагрузки в списке даленных хостов
Результаты аккумулирует ваша головная машина
  • 0

#10 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 879 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 05 марта 2010 - 08:14

Небольшое дополнение к предыдущему комментарию:

Результаты аккумулирует ваша головная машина

но если удалённых машин много, лучше этого не делать (а то сеть неслабо забивается этими передаваемыми результатами), а собирать на каждой удалённой машине независимо, включив в сценарии Simple File Writer, потом собрать все файлы вместе и проанализировать.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium


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

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