Вопрос актуален для C VUser скриптов, но, возможно, кто-то имеет опыт для других типов тестов.
Необходимо параметризовать переменную в скрипте. Но речь идет не о параметризации в зависимости от итерации. Здесь все просто. Используется функция lr_eval_string и при новой итерации подставляется новое значение.
Меня же интересует параметризация скрипта в зависимости от индекса виртуального пользователя.
Например, у меня всего одна итерация из 5 одновременных пользователей. Нужно что бы каждый из них выполнял скрипт, но со своим (отличным от других) значением переменных.
Как можно реализовать такой скрипт?
Спасибо.
LoadRunner, С Vuser script
Автор Green, 16 авг 2005 14:46
Сообщений в теме: 3
#1
Отправлено 16 августа 2005 - 14:46
Гринкевич Сергей
#2
Отправлено 16 августа 2005 - 15:50
Есть два решения:
1. Можно получить ID виртуального пользователя (функция lr_whoami или параметр типа Vuser ID )
Отсюда и пляшем далее (например можно выбирать из какого то датапула записи предназначенные для данного ID , открывать датапул данного ID или генерить их в зависимости от ID)
Здесь есть один нюанс, необходимо следить что бы ID в сценарии был правильным, а то при пересоздании сценария Controller может дать виртуальным пользователям совсем не те ID что вы полагаете.
2. Можно завести переменную типа Unique Number и тогда для кажого пользователя будет выдаватся уникальный номер при этом
Start Number - номер с который будет начинать работать первый пользователь в первой итерации.
Block size - размер блока виртуального пользователя. Следующий пользователь будет получать на блок дальше от предыдущего.
(Проверьте на небольшом примерчике, и тогда поймете о чем это я)
1. Можно получить ID виртуального пользователя (функция lr_whoami или параметр типа Vuser ID )
Отсюда и пляшем далее (например можно выбирать из какого то датапула записи предназначенные для данного ID , открывать датапул данного ID или генерить их в зависимости от ID)
Здесь есть один нюанс, необходимо следить что бы ID в сценарии был правильным, а то при пересоздании сценария Controller может дать виртуальным пользователям совсем не те ID что вы полагаете.
2. Можно завести переменную типа Unique Number и тогда для кажого пользователя будет выдаватся уникальный номер при этом
Start Number - номер с который будет начинать работать первый пользователь в первой итерации.
Block size - размер блока виртуального пользователя. Следующий пользователь будет получать на блок дальше от предыдущего.
(Проверьте на небольшом примерчике, и тогда поймете о чем это я)
#3
Отправлено 17 августа 2005 - 01:45
Есть еще третье решение, которое заключается в том, чтобы не изобретать велосипед и тем более не зависеть от того, каким образом Controller пронумерует виртуальных пользователей.
При создании файла с параметрами установите:
Select next row = Unique
Update value on = Each iteration
В этом случае, например, при 15 строках в таблице параметров, 5 юзерах и 3 итерациях первый юзер будет брать данные из строк 1-3, второй из строк 4-6 и т.д. Само собой, что надо позаботиться, чтобы данных было достаточно для всех пользователей на всех итерациях, либо соответствующим образом настроить опцию When out of values. Иначе получите ошибку в сценарии в тот момент, когда данные закончатся.
P.S. Параметризация работает абсолютно одинаково для всех типов VUsers.
При создании файла с параметрами установите:
Select next row = Unique
Update value on = Each iteration
В этом случае, например, при 15 строках в таблице параметров, 5 юзерах и 3 итерациях первый юзер будет брать данные из строк 1-3, второй из строк 4-6 и т.д. Само собой, что надо позаботиться, чтобы данных было достаточно для всех пользователей на всех итерациях, либо соответствующим образом настроить опцию When out of values. Иначе получите ошибку в сценарии в тот момент, когда данные закончатся.
P.S. Параметризация работает абсолютно одинаково для всех типов VUsers.
#4
Отправлено 17 августа 2005 - 07:14
Спасибо, Dmitry_NJ.
Все работает как задумано.
Все работает как задумано.
Гринкевич Сергей
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных


