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

Фотография

LoadRunner, С Vuser script


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

#1 Green

Green

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 233 сообщений
  • ФИО:Гринкевич Сергей
  • Город:Москва

Отправлено 16 августа 2005 - 14:46

Вопрос актуален для C VUser скриптов, но, возможно, кто-то имеет опыт для других типов тестов.

Необходимо параметризовать переменную в скрипте. Но речь идет не о параметризации в зависимости от итерации. Здесь все просто. Используется функция lr_eval_string и при новой итерации подставляется новое значение.

Меня же интересует параметризация скрипта в зависимости от индекса виртуального пользователя.

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

Как можно реализовать такой скрипт?

Спасибо.
  • 0
Гринкевич Сергей

#2 imetz

imetz

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

  • Members
  • Pip
  • 11 сообщений
  • ФИО:Мец Илья Вадимович

Отправлено 16 августа 2005 - 15:50

Есть два решения:

1. Можно получить ID виртуального пользователя (функция lr_whoami или параметр типа Vuser ID )
Отсюда и пляшем далее (например можно выбирать из какого то датапула записи предназначенные для данного ID , открывать датапул данного ID или генерить их в зависимости от ID)
Здесь есть один нюанс, необходимо следить что бы ID в сценарии был правильным, а то при пересоздании сценария Controller может дать виртуальным пользователям совсем не те ID что вы полагаете.

2. Можно завести переменную типа Unique Number и тогда для кажого пользователя будет выдаватся уникальный номер при этом
Start Number - номер с который будет начинать работать первый пользователь в первой итерации.
Block size - размер блока виртуального пользователя. Следующий пользователь будет получать на блок дальше от предыдущего.
(Проверьте на небольшом примерчике, и тогда поймете о чем это я)
  • 0

#3 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 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.
  • 0
Дмитрий Шевченко

HP Software

#4 Green

Green

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 233 сообщений
  • ФИО:Гринкевич Сергей
  • Город:Москва

Отправлено 17 августа 2005 - 07:14

Спасибо, Dmitry_NJ.
Все работает как задумано.
  • 0
Гринкевич Сергей


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

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