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

Фотография

VIEWSTATE парсится автоматически но не для всех запросов


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

#1 Soda

Soda

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

  • Members
  • Pip
  • 50 сообщений
  • ФИО:Тиша

Отправлено 21 июня 2007 - 06:53

Привет.

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

Ума не приложу, в чем может быть дело.
  • 0

#2 Soda

Soda

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

  • Members
  • Pip
  • 50 сообщений
  • ФИО:Тиша

Отправлено 21 июня 2007 - 09:09

А вот еще вопрос, при помощи функции web_reg_save_param() регистрируется параметр, тот же viewstate например, он большой и в логе его не видно полностью. А где создается этот параметр и как его можно посмотреть? В списке параметров у меня вообще пусто и переменных никаких не объявлено.
  • 0

#3 Tikonderoga

Tikonderoga

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

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

Отправлено 21 июня 2007 - 13:43

Автоматическая корелляция применительно к viewstate работает плохо. Почему - вопрос к представителю HP.
Ручная корелляция работает настолько хорошо, насколько Вы были внимательны, когда ее делали.

Когда опишите проблему более детально (например: что именно не работает - функциональность или сам скрипт? Как именно параметризировали? И т.п.), тогда можно будет давать советы.

При этом я вижу что извлеченный параметр действительно подставляется.


Самая распространенная ошибка при работе с viewstate - забывают увеличть размер буфера под переменные, сохраняемые web_reg_save_param().
Делается это функцией web_set_max_html_param_len(). Проверьте, действительно ли подставляется весь параметр.

А вот еще вопрос, при помощи функции web_reg_save_param() регистрируется параметр, тот же viewstate например, он большой и в логе его не видно полностью. А где создается этот параметр и как его можно посмотреть? В списке параметров у меня вообще пусто и переменных никаких не объявлено.


Параметр создается в памяти. Посмотреть его можно в стандартном окне параметров LR во время выполнения скрипта. Можно также вывести его в лог стандартными методами типа lr_log_message() или записать в файл, или что угодно.
  • 0

#4 Yury

Yury

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

  • Members
  • PipPipPipPip
  • 258 сообщений
  • ФИО:Yury

Отправлено 23 июня 2007 - 20:32

Автоматическая корелляция применительно к viewstate работает плохо. Почему - вопрос к представителю HP.
Ручная корелляция работает настолько хорошо, насколько Вы были внимательны, когда ее делали.

А что, конкретно, плохо работает при автоматической корреляции viewstate?
  • 0

#5 Tikonderoga

Tikonderoga

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

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

Отправлено 25 июня 2007 - 11:21

Автоматическая корелляция применительно к viewstate работает плохо. Почему - вопрос к представителю HP.
Ручная корелляция работает настолько хорошо, насколько Вы были внимательны, когда ее делали.

А что, конкретно, плохо работает при автоматической корреляции viewstate?


Конкретно плохо работает имеющееся правило автоматического поиска корелляции. Или сам механизм автоматической корелляции.

Выражается это в том, что автоматическое распознавание viewstate (с сохранением значения в параметр и дальнейшую подстановку параметра в реквест) происходит реже чем 1 раз из 10, когда этот самый viewstate встречается. То есть практически никогда. Понять, почему так происходит, мне не удалось - записывая одну и ту же операцию я иногда получал автокорелляцию, но чаще нет, при прочих равных условиях. (LR 8.1 fp4).
  • 0

#6 Soda

Soda

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

  • Members
  • Pip
  • 50 сообщений
  • ФИО:Тиша

Отправлено 25 июня 2007 - 12:00

Примерно так, вот у меня несколько обращений к серверу, и везде VIEWSTATE парсится при помощи web_reg_save_param() кроме одной странички, где этот viewstate передается в явном виде. При этом, все работает нормально. Но если я добавляю вручную функцию для извлечения этого недостающего параметра для того чтобы заменить им тот viewstate, что отправляется в явном виде, я получаю сообщения от сервера "некорректный viewstste"
  • 0

#7 Tikonderoga

Tikonderoga

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

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

Отправлено 25 июня 2007 - 13:42

Примерно так, вот у меня несколько обращений к серверу, и везде VIEWSTATE парсится при помощи web_reg_save_param() кроме одной странички, где этот viewstate передается в явном виде. При этом, все работает нормально. Но если я добавляю вручную функцию для извлечения этого недостающего параметра для того чтобы заменить им тот viewstate, что отправляется в явном виде, я получаю сообщения от сервера "некорректный viewstste"


1. Убедиться, что используется правильный viewstate. Возможно, отправлять нужно не последний полученный, а один из более ранних. Либо нужно знать логику работы сайта, либо вручную, проверяя ответы сервера, выяснить, какой именно viewstate нужен.
2. Проверить, помещается ли viewstate в буфер для переменных. По умолчанию динамические переменные имеют размер N байт (N = 1024, кажется), т.е. web_reg_save_param сохраняет только первые N символов. web_set_max_html_param_len() позволяет устанавливать любой размер для N.
  • 0

#8 Soda

Soda

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

  • Members
  • Pip
  • 50 сообщений
  • ФИО:Тиша

Отправлено 25 июня 2007 - 14:15

2. Проверить, помещается ли viewstate в буфер для переменных. По умолчанию динамические переменные имеют размер N байт (N = 1024, кажется), т.е. web_reg_save_param сохраняет только первые N символов. web_set_max_html_param_len() позволяет устанавливать любой размер для N.

Ну тут я вроде увеличил до 50000, потому как посмотрел что размер этой переменной быает выше 10кб

1. Убедиться, что используется правильный viewstate. Возможно, отправлять нужно не последний полученный, а один из более ранних. Либо нужно знать логику работы сайта, либо вручную, проверяя ответы сервера, выяснить, какой именно viewstate нужен.


А вот тут интеренсно, есть ли какие материалы по поводу такой работы веб приложений, как тоесть узнать какой viewstate нужно совать в именно эту форму. Я к сожалению сейчас занят на другом проекте и не могу в логе посмотреть что откуда берется и куда отправляется. Но давно меня этот механизм интересует, наши программисты не знают на него ответ. Вот думаю полезно было бы читануть что-нить, но ума не приложу что, пытался копать гуглом и тоже ничего интересного не нашел.
  • 0

#9 Dmitry_NJ

Dmitry_NJ

    Консультант

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

Отправлено 25 июня 2007 - 20:43

Вот думаю полезно было бы читануть что-нить, но ума не приложу что, пытался копать гуглом и тоже ничего интересного не нашел.

Ничего интереснее execution логов VuGen скрипта с включенной опцией "data returned by server" для вашего конкретного приложения вы не найдете. Если, конечно, вас интересует решение вполне конкретной утилитарной задачи по корреляции viewstate. Кстати, правила для автоматической корреляции вы можете модифицировать по своему усмотрению, в том числе и добавляя свои собственные. Если уж ручная корреляция вам не нравится.
  • 0
Дмитрий Шевченко

HP Software

#10 Yury

Yury

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

  • Members
  • PipPipPipPip
  • 258 сообщений
  • ФИО:Yury

Отправлено 26 июня 2007 - 10:08

У всех из моей группы "автоматическая корелляция применительно к viewstate" работает за исключением того случая, когда они совершают ошибки, описанные выше.

Ну тут я вроде увеличил до 50000, потому как посмотрел что размер этой переменной быает выше 10кб

А где же тут логика? А почему не 100KB?
В одном случае у нас были viewstate до 3 MB.

P.S. Viewstate больше 1 MB может приводить к ошибкам типа "stack overflow". Это лечится применением "privat patch" от Mercury.
  • 0


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

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