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

Фотография

lr_save_param_regexp

regexp регулярные выражения

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

#1 Tremere

Tremere

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

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

Отправлено 20 октября 2017 - 14:13

Написал такую конструкцию

 

lr_save_param_regexp(lr_eval_string(buf),
                                 strlen(lr_eval_string(buf)),
                                 "RegExp={lr_RegExp}",
                                 "Ordinal=1",
                                 "ResultParam=selectValue",
                                 LAST);

 

В buf сохранена строка. В {lr_RegExp} - регулярное выражение, которое может изменяться в зависимости от условий.

В этой функции для RegExp= можно как-то раскрывать параметры loadrunner'а?

Текущий код возвращает: The regular expression {lr_RegExp} does not contain exactly one capture group.

У меня есть подозрение, что таким образом loadrunner пытается найти подстроку "{lr_RegExp}" в строке buf, а нужно, чтобы этот параметр раскрывался в строку в виде регулярного выражения, которое хранится в {lr_RegExp}.

Пробовал и такой вариант

lr_eval_string("RegExp={lr_RegExp}");

Не помогло.

Есть способ раскрытия параметров в строки для функции lr_save_param_regexp ?


  • 0

#2 Alex

Alex

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

  • Members
  • PipPipPip
  • 237 сообщений
  • ФИО:Алексей

Отправлено 23 октября 2017 - 05:59

Написал такую конструкцию

 

lr_save_param_regexp(lr_eval_string(buf),
                                 strlen(lr_eval_string(buf)),
                                 "RegExp={lr_RegExp}",
                                 "Ordinal=1",
                                 "ResultParam=selectValue",
                                 LAST);

 

В buf сохранена строка. В {lr_RegExp} - регулярное выражение, которое может изменяться в зависимости от условий.

В этой функции для RegExp= можно как-то раскрывать параметры loadrunner'а?

Текущий код возвращает: The regular expression {lr_RegExp} does not contain exactly one capture group.

У меня есть подозрение, что таким образом loadrunner пытается найти подстроку "{lr_RegExp}" в строке buf, а нужно, чтобы этот параметр раскрывался в строку в виде регулярного выражения, которое хранится в {lr_RegExp}.

Пробовал и такой вариант

lr_eval_string("RegExp={lr_RegExp}");

Не помогло.

Есть способ раскрытия параметров в строки для функции lr_save_param_regexp ?

Пробовал и такой вариант

lr_eval_string("RegExp={lr_RegExp}");

 

Должно было. Параметр lr_RegExp точно определен? Если вывести в лог результат выполнения "lr_eval_string("RegExp={lr_RegExp}");" что напишет?


  • 0

#3 Tremere

Tremere

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

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

Отправлено 23 октября 2017 - 08:38

Напишет

RegExp=value=\"([a-zA-Z0-9]*?)\">someOption1</option>

То, что и ожидается.

 

Я засомневался, что этот вариант рабочий, потому что при проверке после вызова этой функции

lr_output_message("The value of selectValue %s",lr_eval_string("{selectValue}"));

возвращает:

The value of selectValue {selectValue}


  • 0

#4 Tremere

Tremere

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

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

Отправлено 23 октября 2017 - 09:03

Нашёл ошибку у себя. У меня buf переполнялся из-за того, что строка была слишком длинная. Видимо, поэтому функция не отрабатывала корректно.

Спасибо за подсказку, что lr_eval_string("RegExp={lr_RegExp}"); - всё же рабочее решение.


  • 0


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

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