IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Добавить ответ в эту темуОткрыть тему
> jmeter нагрузка сайта, 15000 пользователей
pitch
сообщение 2.3.2010, 8:53
Сообщение #1


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

Группа: Members
Сообщений: 11
Регистрация: 20.11.2008
Пользователь №: 12 191



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


Активный участник обсуждений
**

Группа: Members
Сообщений: 99
Регистрация: 9.9.2009
Пользователь №: 13 508



pitch, у меня не было никогда такой необходимости, однако, решение, видимо, достаточно просто:
создаете csv файл с 15000 записями логинов и паролей
читаете записи с X по Y строки
__CSVRead
(см. Functions )
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
pitch
сообщение 2.3.2010, 9:40
Сообщение #3


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

Группа: Members
Сообщений: 11
Регистрация: 20.11.2008
Пользователь №: 12 191



угу спасибо, я обратил на эту ф-ю внимание, просто придется делать на каждый экземпляр программы, по такому файлу... В принципе в полне достойно )
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
enki86
сообщение 2.3.2010, 10:29
Сообщение #4


Активный участник обсуждений
**

Группа: Members
Сообщений: 99
Регистрация: 9.9.2009
Пользователь №: 13 508



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

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

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


Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Atomic_A@ukr.net
сообщение 2.3.2010, 11:45
Сообщение #5


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

Группа: Members
Сообщений: 363
Регистрация: 19.11.2003
Из: Киев
Пользователь №: 178



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

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

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

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


Активный участник обсуждений
**

Группа: Members
Сообщений: 99
Регистрация: 9.9.2009
Пользователь №: 13 508



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

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

PS/ замечательный у вас блог
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Atomic_A@ukr.net
сообщение 2.3.2010, 13:12
Сообщение #7


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

Группа: Members
Сообщений: 363
Регистрация: 19.11.2003
Из: Киев
Пользователь №: 178



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

Это уже гадание на кофейной гуще. А генерить можно практически все, другой вопрос насколько критично, чтобы формат сгенерированных данных соответствовал реальным данным. Для експеримента попробуйте оба варианта и отпишитесь, что удобней.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
pitch
сообщение 4.3.2010, 11:23
Сообщение #8


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

Группа: Members
Сообщений: 11
Регистрация: 20.11.2008
Пользователь №: 12 191



Всем спасибо, за ответы, я посмотрел при логине одного пользователя, тратится ресурсов столько же если бы это были разные пользователи, 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 все получает от клиента? И потом как и где смотреть результат с нагружальщиков?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
enki86
сообщение 5.3.2010, 9:36
Сообщение #9


Активный участник обсуждений
**

Группа: Members
Сообщений: 99
Регистрация: 9.9.2009
Пользователь №: 13 508



Ничего передавать на надо
достаточно запустить jmeter-server на всех(!) удаленных машинах, прописать машины нагрузки в списке даленных хостов
Результаты аккумулирует ваша головная машина
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
barancev
сообщение 5.3.2010, 10:14
Сообщение #10


News editor
******

Группа: Members
Сообщений: 2 667
Регистрация: 12.5.2004
Из: Россия, Москва
Пользователь №: 415
Skype: barancev



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

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

но если удалённых машин много, лучше этого не делать (а то сеть неслабо забивается этими передаваемыми результатами), а собирать на каждой удалённой машине независимо, включив в сценарии Simple File Writer, потом собрать все файлы вместе и проанализировать.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Добавить ответ в эту темуОткрыть тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



::

- Текстовая версия Сейчас: 31.7.2010, 1:01