Нагрузочное тестирование ПО

вторник, 10 февраля 2009 г.

Работа с модальным окном

Web Click&Script : HP Load Runner

При работе с модальными окнами в технологии Web Click and Script может не происходить запись трафика для операций, выполняемых в самом модальном окне. Напомним, что под модальным окном понимается всплывающее диалоговое окно, вызываемое методом ShowModalDialog в javascript-e. Технологией, по которой сделано Приложение, использующееся в качестве примера, является ASP.Net, это значит, что в данное модальное окно загружается динамически сформированная на сервере форма (технология Active Server Page). Фактически запись трафика прекращается после отработки оператора, вызывающего модальное окно. В нашем случае это:

web_text_link("Запросить баланс из банка",
"Snapshot=t91.inf",
DESCRIPTION,
"Text= Запросить баланс из банка ",
ACTION,
"UserAction=Click",
LAST);

Предлагаемое решение заключается в регистрации, так называемой call back функции, в которую и включаются Click and Script операторы обработки полей и кнопок формы, расположенной в модальном окне. Регистрация call back функции происходит с использованием оператора web_reg_dialog, применить который необходимо перед использованием оператора непосредственно вызывающего модальное окно. Вот так:


web_reg_dialog(
DESCRIPTION,
"Type=Modal",
ACTION,
"SetCallback=ModalDialog1",
LAST);

web_text_link("Запросить баланс из банка",
"Snapshot=t91.inf",
DESCRIPTION,
"Text= Запросить баланс из банка",
ACTION,
"UserAction=Click",
LAST);

А теперь пример обработки полей и кнопок внутри call back функции. Реализовано в виде добавленного в скрипт файла с именем МodalDialog1.c и одной функцией ModalDialog1(). Разумеется, что кусок кода в файл ModalDialog1 приходится добавлять вручную, зная идентификаторы или имена объектов находящихся на форме внутри модального окна.

ModalDialog1()
{
...
web_edit_field("pin code",
"Snapshot=t21117.inf",
DESCRIPTION,
"Type=password",
"name=PinCode",
"WindowType=Modal",
ACTION,
"SetValue=хххх",
LAST);

web_button("btnSubmitModalDialog",
"Snapshot=t21118.inf",
DESCRIPTION,
"Type=submit",
"WindowType=Modal",
"name=btnSubmit",
LAST);
...
Return 0;
}

Кнопка с названием “btnSubmit” выполняет submit формы модального окна.

Остается добавить, что в этом случае необходимо присутствие в скрипте (*.h) файла (modal_dialog_callbacks.h) с определениями.

#ifndef _MODALDIALOGCALLBACKS_H
#define _MODALDIALOGCALLBACKS_H
#include "ModalDialog1.c"
#endif // _MODALDIALOGCALLBACKS_H

Файл globals.h также должен учитывать внесенные в скрипт изменения.

#ifndef _GLOBALS_H
#define _GLOBALS_H
//-----------------------------------------------------
// Include Files
#include "lrun.h"
#include "web_api.h"
#include "lrw_custom_body.h"
#include "modal_dialog_callbacks.h"
//-----------------------------------------------------
// Global Variables
#endif // _GLOBALS_H

Еще раз замечу, что при использовании операторов, выполняющих операции в модальном окне необходимо указывать тип окна – модальное (“WindowType=Modal”).

Комментарии: 1:

Отправить комментарий

Подпишитесь на каналы Комментарии к сообщению [Atom]



<< Главная страница