Вложенность параметров для LR скрипта
Автор Alexander K., 21 фев 2006 10:01
Сообщений в теме: 10
#1
Отправлено 21 февраля 2006 - 10:01
Добрый день, подскажите пожалуйста, возможно ли создавать параметры частями которых являются другие параметры? Суть задачи такова: параметром custom http запроса является XML , при этом XML может быть самых разных видов . Но для всех этих XML необходимо менять некий параметр ( ID сессии) . Я собрал эти XML в виде соответствующих строк в файл, который подключаю как параметр, а реализовать динамическую подстановку ID не получается. Хотелось бы услышать ваше мнение по этому поводу или вариант альтернативы .
#2
Отправлено 21 февраля 2006 - 10:23
Как я понял, есть взаимооднозначная связь между значениями xml-выражения и Id-сессии. И их нужно подставлять, учитывая эту связь. Это делается через параметры типа file или table. Оба параметра должны находиться водной таблице, а в свойствах параметров нужно указать, чтобы значения брались последовательно по строкам.
#3
Отправлено 21 февраля 2006 - 10:36
Скорее связь следующая : есть xml, характризующий некоторый тип объекта (типов ограниченное количество, но большое , порядка 200) я создаю нагрузку из , скажем 2000 VUser. При этом ID должен быть уникальным для каждого XML. Те. один XML выбираемый из таблицы может иметь разные ID.
#4
Отправлено 21 февраля 2006 - 10:50
Тогда можно попытаться создать уже готовую таблицу какими-нибудь скриптом(не LR). То есть прописать явно все возможные случаи.
#5
Отправлено 21 февраля 2006 - 10:53
В том то и дело, что хотелось избежать создания " стороннего " скрипта и релизовать это через функции LR
#6
Отправлено 21 февраля 2006 - 11:26
Вложенные параметры не допускаются в ЛР.
Скиньте образец запроса, который хотите параметризовать, если это возможно.
Скиньте образец запроса, который хотите параметризовать, если это возможно.
#7
Отправлено 21 февраля 2006 - 12:31
web_custom_request("My test request","URL=http://blablabla.com","Method=POST","Body=<[COLOR=red]Вот сдесь начинается xml (и заканчивается :) ),LAST);
Но проблема в том-то и заключается, что xml есть нескольких типов и если параметризовать их теги , то логика будет просто сумашедшая, а в этих xml (которые уже есть в файле) необходимо менять всего один атрибут :( а с этим как раз и проблема :( Генерить же огромный файл с xml , как мне кажется , не самое хорошее решение , хотя , как вариант такой брут форс я не исключаю. Но хочется реализовать как-нибудь крассивее
Но проблема в том-то и заключается, что xml есть нескольких типов и если параметризовать их теги , то логика будет просто сумашедшая, а в этих xml (которые уже есть в файле) необходимо менять всего один атрибут :( а с этим как раз и проблема :( Генерить же огромный файл с xml , как мне кажется , не самое хорошее решение , хотя , как вариант такой брут форс я не исключаю. Но хочется реализовать как-нибудь крассивее
#8
Отправлено 21 февраля 2006 - 15:38
Небольшая преамбула для синхронизации.
У Вас есть XML, который подставляется в виде параметра LR в функцию. Другими словами, он храниться где-то в файле, или таблице, или еще где-нибудь и встроенным средствами LR вставляется в функцию web_custom_request в виде параметра.
При этом для каждого пользователя применяется один и тот же XML, в котором изменяется только одно значение - ID.
Если я изложил проблему правильно, то возможно следующее решение:
- сохраняйте XML в глобальную переменную типа char[]
- в секции init() парсите char[], находите ID и заменяйте его на нужный
- далее используйте char[] с нужным ID
Парсить можно и в Action(), если ID должен меняться при каждой иттерации секции Action, но при этом будет происходить некоторая потеря времени (впрочем для веб приложений она будет не ощутима).
У Вас есть XML, который подставляется в виде параметра LR в функцию. Другими словами, он храниться где-то в файле, или таблице, или еще где-нибудь и встроенным средствами LR вставляется в функцию web_custom_request в виде параметра.
При этом для каждого пользователя применяется один и тот же XML, в котором изменяется только одно значение - ID.
Если я изложил проблему правильно, то возможно следующее решение:
- сохраняйте XML в глобальную переменную типа char[]
- в секции init() парсите char[], находите ID и заменяйте его на нужный
- далее используйте char[] с нужным ID
Парсить можно и в Action(), если ID должен меняться при каждой иттерации секции Action, но при этом будет происходить некоторая потеря времени (впрочем для веб приложений она будет не ощутима).
Гринкевич Сергей
#9
Отправлено 21 февраля 2006 - 15:52
Спасибо большое .
#10
Отправлено 23 февраля 2006 - 08:16
Я вижу еще решение:
разделить вашу строку запроса на 3 параметра:
{Param1} - начало запроса до изменяемого значения
{Param2} - само изменяемое значение
{Param3} - окончание запроса
Установить для {Param2} случайный выбор, можно еще выбор уникального значения.
Установить для {Param3} изменение same line as {Param1}
{Param1} - установите изменение как вам нужно.
Таким образом, ваш запрос приобретет вид
web_custom_request("My test request","URL=http://blablabla.com","Method=POST","Body=<[COLOR=red]{Param1}{Param2}{Param3}),LAST);
Можно еще использовать User Defined Functions в качестве параметра, только это будет долго - практически вам придется писать свой генератор линков и указать ЛР использовать его значения в качестве параметров.
разделить вашу строку запроса на 3 параметра:
{Param1} - начало запроса до изменяемого значения
{Param2} - само изменяемое значение
{Param3} - окончание запроса
Установить для {Param2} случайный выбор, можно еще выбор уникального значения.
Установить для {Param3} изменение same line as {Param1}
{Param1} - установите изменение как вам нужно.
Таким образом, ваш запрос приобретет вид
web_custom_request("My test request","URL=http://blablabla.com","Method=POST","Body=<[COLOR=red]{Param1}{Param2}{Param3}),LAST);
Можно еще использовать User Defined Functions в качестве параметра, только это будет долго - практически вам придется писать свой генератор линков и указать ЛР использовать его значения в качестве параметров.
#11
Отправлено 23 февраля 2006 - 09:00
Jackie, спасибо огромное :) ваш вариант очень подходит в моей ситуации
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных