![Фотография](https://secure.gravatar.com/avatar/85e5eac980142d838a1e64afeba0b7dd?s=100&d=https%3A%2F%2Fsoftware-testing.ru%2Fforum%2Fpublic%2Fstyle_images%2Fmaster%2Fprofile%2Fdefault_large.png)
VIEWSTATE парсится автоматически но не для всех запросов
#1
Отправлено 21 июня 2007 - 06:53
Настроил автоматическое извлечение и подставление VIEWSTATE, все ок за исключением того, что в некоторых местах она не извлекается и в следующий запрос вставляется в явном виде. При запуске тест отрабатывает нормально, а как толлько я параметризую это дело вручную, ралотать перестает. При этом я вижу что извлеченный параметр действительно подставляется.
Ума не приложу, в чем может быть дело.
#2
Отправлено 21 июня 2007 - 09:09
#3
Отправлено 21 июня 2007 - 13:43
Ручная корелляция работает настолько хорошо, насколько Вы были внимательны, когда ее делали.
Когда опишите проблему более детально (например: что именно не работает - функциональность или сам скрипт? Как именно параметризировали? И т.п.), тогда можно будет давать советы.
При этом я вижу что извлеченный параметр действительно подставляется.
Самая распространенная ошибка при работе с viewstate - забывают увеличть размер буфера под переменные, сохраняемые web_reg_save_param().
Делается это функцией web_set_max_html_param_len(). Проверьте, действительно ли подставляется весь параметр.
А вот еще вопрос, при помощи функции web_reg_save_param() регистрируется параметр, тот же viewstate например, он большой и в логе его не видно полностью. А где создается этот параметр и как его можно посмотреть? В списке параметров у меня вообще пусто и переменных никаких не объявлено.
Параметр создается в памяти. Посмотреть его можно в стандартном окне параметров LR во время выполнения скрипта. Можно также вывести его в лог стандартными методами типа lr_log_message() или записать в файл, или что угодно.
#4
Отправлено 23 июня 2007 - 20:32
А что, конкретно, плохо работает при автоматической корреляции viewstate?Автоматическая корелляция применительно к viewstate работает плохо. Почему - вопрос к представителю HP.
Ручная корелляция работает настолько хорошо, насколько Вы были внимательны, когда ее делали.
#5
Отправлено 25 июня 2007 - 11:21
А что, конкретно, плохо работает при автоматической корреляции viewstate?Автоматическая корелляция применительно к viewstate работает плохо. Почему - вопрос к представителю HP.
Ручная корелляция работает настолько хорошо, насколько Вы были внимательны, когда ее делали.
Конкретно плохо работает имеющееся правило автоматического поиска корелляции. Или сам механизм автоматической корелляции.
Выражается это в том, что автоматическое распознавание viewstate (с сохранением значения в параметр и дальнейшую подстановку параметра в реквест) происходит реже чем 1 раз из 10, когда этот самый viewstate встречается. То есть практически никогда. Понять, почему так происходит, мне не удалось - записывая одну и ту же операцию я иногда получал автокорелляцию, но чаще нет, при прочих равных условиях. (LR 8.1 fp4).
#6
Отправлено 25 июня 2007 - 12:00
#7
Отправлено 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.
#8
Отправлено 25 июня 2007 - 14:15
Ну тут я вроде увеличил до 50000, потому как посмотрел что размер этой переменной быает выше 10кб2. Проверить, помещается ли viewstate в буфер для переменных. По умолчанию динамические переменные имеют размер N байт (N = 1024, кажется), т.е. web_reg_save_param сохраняет только первые N символов. web_set_max_html_param_len() позволяет устанавливать любой размер для N.
1. Убедиться, что используется правильный viewstate. Возможно, отправлять нужно не последний полученный, а один из более ранних. Либо нужно знать логику работы сайта, либо вручную, проверяя ответы сервера, выяснить, какой именно viewstate нужен.
А вот тут интеренсно, есть ли какие материалы по поводу такой работы веб приложений, как тоесть узнать какой viewstate нужно совать в именно эту форму. Я к сожалению сейчас занят на другом проекте и не могу в логе посмотреть что откуда берется и куда отправляется. Но давно меня этот механизм интересует, наши программисты не знают на него ответ. Вот думаю полезно было бы читануть что-нить, но ума не приложу что, пытался копать гуглом и тоже ничего интересного не нашел.
#9
Отправлено 25 июня 2007 - 20:43
Ничего интереснее execution логов VuGen скрипта с включенной опцией "data returned by server" для вашего конкретного приложения вы не найдете. Если, конечно, вас интересует решение вполне конкретной утилитарной задачи по корреляции viewstate. Кстати, правила для автоматической корреляции вы можете модифицировать по своему усмотрению, в том числе и добавляя свои собственные. Если уж ручная корреляция вам не нравится.Вот думаю полезно было бы читануть что-нить, но ума не приложу что, пытался копать гуглом и тоже ничего интересного не нашел.
#10
Отправлено 26 июня 2007 - 10:08
А где же тут логика? А почему не 100KB?Ну тут я вроде увеличил до 50000, потому как посмотрел что размер этой переменной быает выше 10кб
В одном случае у нас были viewstate до 3 MB.
P.S. Viewstate больше 1 MB может приводить к ошибкам типа "stack overflow". Это лечится применением "privat patch" от Mercury.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных