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

Фотография

This is not AJAX script


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

#1 Kostik_Minsk

Kostik_Minsk

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Вадим

Отправлено 18 июля 2008 - 08:52

Ситуация такая, нужно было написать скрипт для нагрузочного тестирования с помощью LoadRunner 9.10 использую протокол Ajax(Лицензии для 9.10 нет). Мои действия:
- File->New
- New single Protocol Script - Ajax (Click and Script)
Вообщем записал я скрипт, параметризовал, кореллировал, отослал заказчику. Мне приходит ответ:
This is not AJAX script:
Example:
web_custom_request("tot.gus_3",
"URL=https://{URL1}/mpf/express/tot.gus",
"Method=POST",
"Resource=0",
"RecContentType=text/plain",
"Referer=https://{URL1}/mpf/express/gwt/com.abnamro.tbg.ade.mpf.mte.express.MPFExpress/{LONGVALUE}.cache.html",
"Snapshot=t75.inf",
"Mode=HTTP",
"EncType=text/plain; charset=utf-8",
"BodyBinary=3\\xEF\\xBF\\xBF0\\xEF\\xBF\\xBF4\\xEF\\xBF\\xBFhttps://{URL1}/mpf/express/gwt/com.abnamro.tbg.ade.mpf.mte.express.MPFExpress/\\xEF\\xBF\\xBFD428B6464692B013C223A69D890FA32A\\xEF\\xBF\\xBFcom.abnamro.tbg.ade.mpf.mte.common.client.service.logout.TimeoutService\\xEF\\xBF\\xBFgetSessionTimeOut\\xEF\\xBF\\xBF1\\xEF\\xBF\\xBF2\\xEF\\xBF\\xBF3\\xEF\\xBF\\xBF4\\xEF\\xBF\\xBF0\\xEF\\xBF\\xBF",
LAST);

Я в этом деле (нагрузочное тестирование) новенький. Подскажите, что я сделал не так и в чем может быть дело? Спасибо!
  • 0

#2 Troubleshooter

Troubleshooter

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

  • Members
  • PipPipPipPip
  • 398 сообщений
  • Город:Киев

Отправлено 18 июля 2008 - 13:32

Исходя из вашего поста, напрашивается вопрос - вы уверены что выбрали правильно протокол (Ajax)?
Возможно вы зарекордили не то что нужно ?
Прикиньте почему заказчик именно так сказал, если есть возможность спросите у него что не так.
  • 0

#3 Kostik_Minsk

Kostik_Minsk

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Вадим

Отправлено 18 июля 2008 - 14:42

Исходя из вашего поста, напрашивается вопрос - вы уверены что выбрали правильно протокол (Ajax)?
Возможно вы зарекордили не то что нужно ?
Прикиньте почему заказчик именно так сказал, если есть возможность спросите у него что не так.

В том то и дело, что не я сам выбирал протокол, мне сказали записать скрипт, используя Ajax protocol. Записывал я скрипт по сценарию, утвержденному заказчиком. Если можно, объясните мне, чем будут отличаться два скрипта, записанные по одному и тому же сценарию, но с использование разных протоколов (i.e. http/html and ajax)?
  • 0

#4 vik

vik

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

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

Отправлено 18 июля 2008 - 15:21

Исходя из вашего поста, напрашивается вопрос - вы уверены что выбрали правильно протокол (Ajax)?
Возможно вы зарекордили не то что нужно ?
Прикиньте почему заказчик именно так сказал, если есть возможность спросите у него что не так.

В том то и дело, что не я сам выбирал протокол, мне сказали записать скрипт, используя Ajax protocol. Записывал я скрипт по сценарию, утвержденному заказчиком. Если можно, объясните мне, чем будут отличаться два скрипта, записанные по одному и тому же сценарию, но с использование разных протоколов (i.e. http/html and ajax)?


разница принципиальная. при записе в в аяксе записываються действия с гуи. при записи в http\html записываються http запросы.
  • 0

#5 Dmitry_NJ

Dmitry_NJ

    Консультант

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

Отправлено 18 июля 2008 - 18:19

Ajax C&S может быть записан как GUI-based, HTML-based или URL-based. Заказчик, скорее всего, ожидал записи на уровне GUI, а вы, наверное, записали по-другому.
  • 0
Дмитрий Шевченко

HP Software

#6 Kostik_Minsk

Kostik_Minsk

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Вадим

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

Ajax C&S может быть записан как GUI-based, HTML-based или URL-based. Заказчик, скорее всего, ожидал записи на уровне GUI, а вы, наверное, записали по-другому.

Вы оказались правы, заказчик хотел скрипт на уровне GUI! Но, от этого не легче. Скрипт, записанный на GUI уровне, координально отличается от скрипта, записанного на HTTP/HTML уровне. Вот, например:
- я создаю в приложение объект, потом удаляю его. Каждому такому объекту сервер присваивает динамическое значение, поэтому, чтобы созданный мной объект каждый раз удалялся, я вытаскиваю это значение из лога, и вставляю в запрос на удаление как параметр, вместо первоночального, захардкоженного значения (полученного при записи скрипта). Так я действовал со скриптом записанным на HTTP/HTML уровне. Но, я мягко говоря не понимаю, как действовать в аналагичной ситуации со скриптом записанным на GUI уровне??? Помогите, пожалуйста!
  • 0

#7 Troubleshooter

Troubleshooter

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

  • Members
  • PipPipPipPip
  • 398 сообщений
  • Город:Киев

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

Так я действовал со скриптом записанным на HTTP/HTML уровне. Но, я мягко говоря не понимаю, как действовать в аналагичной ситуации со скриптом записанным на GUI уровне??? Помогите, пожалуйста!


А что вам мешает иcпользовать те же механизмы параметризации в GUI моде. Вам даже легче должно быть, так как GUI мод предоставлят API который "скрывает" сложные структуры http/html мода (например сабмиты с большим к-вом айтемов). В тоже время у вас есть все те же возможности использовать параметризацию и отлавливать динамические з-ния используя web_reg_save_param().
  • 0

#8 Kostik_Minsk

Kostik_Minsk

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Вадим

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

Так я действовал со скриптом записанным на HTTP/HTML уровне. Но, я мягко говоря не понимаю, как действовать в аналагичной ситуации со скриптом записанным на GUI уровне??? Помогите, пожалуйста!


А что вам мешает ичпользовать те же механизмы параметризации в GUI моде. Вам даже легче должно быть, так как GUI мод предоставлят API который "скрывает" сложные структуры http/html мода (например сабмиты с большим к-вом айтемов). В тоже время у вас есть все те же возможности использовать параметризацию и отлавливать динамические з-ния используя web_reg_save_param().

Вот как выглядит запрос на открытие айтема, созданного заранее:
web_text_link("Test2000",
"Snapshot=t15.inf",
DESCRIPTION,
"Text=Test2000",
ACTION,
"UserAction=Click",
LAST);
где, Test2000 - название айтема. Когда я делаю replay, вылеатает ошибка, Internal Error - Item not found in LrwDomHtmlCollectionGeneral::RemoveItem(mptReferencedNode=02415268, mbIssueErrorIfFails=1) for this=00CFBFF8, _ptOwnerNode=00CFBD18 [MsgId: MWAR-26499].
Т.е. я так понимаю, этой информации не достаточно, чтобы открыть айтем. Вот у меня и возникает вопрос, что не так?
  • 0

#9 Troubleshooter

Troubleshooter

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

  • Members
  • PipPipPipPip
  • 398 сообщений
  • Город:Киев

Отправлено 22 июля 2008 - 09:02

Internal Error - Item not found in LrwDomHtmlCollectionGeneral::RemoveItem(mptReferencedNode=02415268, mbIssueErrorIfFails=1) for this=00CFBFF8, _ptOwnerNode=00CFBD18 [MsgId: MWAR-26499].
Т.е. я так понимаю, этой информации не достаточно, чтобы открыть айтем. Вот у меня и возникает вопрос, что не так?


Информации достаточно.
А вы случайно этот айтем не удаляете(в предыдущей итерации ?) перед тем как пытаетесь кликнуть на него?
  • 0

#10 Kostik_Minsk

Kostik_Minsk

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Вадим

Отправлено 22 июля 2008 - 12:59

Этот вопрос я решил! Ура! Возник другой, мне нужно выбрать айтем, который находиться не на первой странице, количество страниц может меняться, поиска в приложении нет. Когда я записывал скрипт на HTTM/HTML уровне, в логе отображались id всех айтемов, со всех страниц, и я, в запрос вставлял этот id, не было проблем. Может кто-нибудь сталкивался с подобной проблемой?
  • 0

#11 mangazey

mangazey

    Активный участник

  • Members
  • PipPip
  • 75 сообщений

Отправлено 22 июля 2008 - 15:48

Этот вопрос я решил! Ура!

Ну так почему бы не поделиться - в чем была причина, и как она была решена?
Конечно, учиться на своих ошибках - это хорошо, но гораздо продуктивнее учиться на чужих. ))
  • 0

#12 Kostik_Minsk

Kostik_Minsk

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Вадим

Отправлено 23 июля 2008 - 08:31

Этот вопрос я решил! Ура!

Ну так почему бы не поделиться - в чем была причина, и как она была решена?
Конечно, учиться на своих ошибках - это хорошо, но гораздо продуктивнее учиться на чужих. ))

Дело было в моей невнимательности, при replay script возникала ошибка - button not found, а немного выше (в логе) был warning - item not found. Я считал, что мой айтем не открываеться, поэтому и кнопку найти не получается. На самом деле, он открывался нормально, просто в запросе на нажатие кнопки был ей динамеческий id, я его убрал, и вставил вместо него название этой кнопки. Вот и все.
  • 0

#13 Kostik_Minsk

Kostik_Minsk

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Вадим

Отправлено 23 июля 2008 - 09:40

Этот вопрос я решил! Ура! Возник другой, мне нужно выбрать айтем, который находиться не на первой странице, количество страниц может меняться, поиска в приложении нет. Когда я записывал скрипт на HTTM/HTML уровне, в логе отображались id всех айтемов, со всех страниц, и я, в запрос вставлял этот id, не было проблем. Может кто-нибудь сталкивался с подобной проблемой?

Я придумал следующее, в цикле, я ищу название искомого айтема (в данном случае Test7). Если он есть на странице, то, как я понимаю, значение параметра Test7_Count должно стать отличным от нуля. Далее идет сравнение с нулем, если >0, (значит искомое есть на странице), то, выходим из цикла, иначе, нажимаю на кнопку следующая страница. Итак, пока не найдем. Вот как это выглядит у меня:
for (i=1;i<10000;i++) {
web_reg_find("Text=Test7","SaveCount=Test7_Count",LAST);
if (atoi(lr_eval_string("{Test7_Count}")) > 0){
break;
}
else{
web_button("BUTTON",
DESCRIPTION,
"Type=button",
"Tag=BUTTON",
"ID=ext-gen27",
ACTION,
"UserAction=Click",
LAST);
}
}
web_text_link("Test7",
//"Snapshot=t10.inf",
DESCRIPTION,
"Text=Test7",
ACTION,
"UserAction=Click",
LAST);
Теперь собственно вопрос, этот цикл у меня не прекращает работать, он просто перелистывает страницу, а значение Test7_Count всегда равно 0. Помогите!!!
  • 0

#14 Troubleshooter

Troubleshooter

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

  • Members
  • PipPipPipPip
  • 398 сообщений
  • Город:Киев

Отправлено 23 июля 2008 - 09:54

Я придумал следующее, в цикле, я ищу название искомого айтема (в данном случае Test7). Если он есть на странице, то, как я понимаю, значение параметра Test7_Count должно стать отличным от нуля. Далее идет сравнение с нулем, если >0, (значит искомое есть на странице), то, выходим из цикла, иначе, нажимаю на кнопку следующая страница. Итак, пока не найдем.


А смысл этого цикла?
Почитайте лучше о принципе работы функции web_reg_find().
  • 0

#15 Kostik_Minsk

Kostik_Minsk

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

  • Members
  • Pip
  • 8 сообщений
  • ФИО:Вадим

Отправлено 23 июля 2008 - 11:11

Я придумал следующее, в цикле, я ищу название искомого айтема (в данном случае Test7). Если он есть на странице, то, как я понимаю, значение параметра Test7_Count должно стать отличным от нуля. Далее идет сравнение с нулем, если >0, (значит искомое есть на странице), то, выходим из цикла, иначе, нажимаю на кнопку следующая страница. Итак, пока не найдем.


А смысл этого цикла?
Почитайте лучше о принципе работы функции web_reg_find().

У меня возник вопрос, пытался сделать сам, читал и про функцию, но, видимо не нашел, что нужно, не получилось. Вот, задал вопрос на форуме в надежде, что помогут или объяснят, что не так. Я же не спросил, если ли смысл этого цикла? Может и нет, ну так вы бы объяснили. А если вам некогда, то другое дело.
  • 0


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

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