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

Фотография

Тестирование WEB-приложения..


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

#1 WildPioneer

WildPioneer

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

  • Members
  • Pip
  • 7 сообщений
  • ФИО:Тростянко Александр

Отправлено 30 июня 2006 - 09:48

Объясните пожалуйста, как создать проект для тестирования WEB-приложения... Какие галочки надо там ставить, или это не доступно в демо версии...
Был бы очень признателен, если бы это было бы подробное описание действия.. Так как надо в сжатые сроки провести анализ и вынести решение о необходимости приобретения продукта...
  • 0

#2 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 30 июня 2006 - 17:00

Здравствуйте.

Ничего включать не надо - все должно работать по умолчанию. Простейшая схема такова:
- Создать новый проект.
- Открыть тестируемую страницу в Internet Explorer.
- Начать запись теста нажав кнопку Record (красный круг) на панели инструментов в TestComplete.
- Не торопять (дав ТС время прочитать все объекты) выполнить желаемые действия над страницей.
- Остановить запись нажатием кнопки Stop (синий квадрат) на панели Recording ТС.
- Воспроизвести тест кликнув правой кнопкой на него в редакторе и выбрав Run Current Routine из контекстного меню.
- Посмотреть, как ТС будет повторять ваши действия и затем посмотреть открывшийся лог.
  • 0
С уважением,
Дмитрий

#3 Olga_

Olga_

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

  • Members
  • Pip
  • 25 сообщений
  • ФИО:Olya

Отправлено 14 августа 2006 - 09:02

Добрый день!
У меня сейчас стоит задача протестировать web-приложение.
Помогите пожалуйста с чего вообще начинать.
С Test Complete я никогда не работала.
Запись теста я уже сделала, что дальше делать?
Мне надо проверить приложение на валидацию данных. После записи теста, у меня есть программный скрипт. Подскажите, как мне обращаться к web-приложению. Мне надо написать скрипты по всем тест-кейсам, кот.имеются к этому приложению.
Проверка на корректность данных...и т.д.
Очень жду ответа заранее спасибо!!
  • 0

#4 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 14 августа 2006 - 16:47

Здравствуйте, Ольга.

Вот так просто про то, как работать с TestComplete, не расскажешь. :)
Советую просмотреть пример '<TestComplete>\Samples\Open Apps\OrdersDemo\Web\TCProject', там демонстрируется простой тест несложной веб страницы.

Также можете посмотреть раздел справки 'Getting Started'. Там подробно по шагам описаны основные принципы работы с TestComplete.

Вкратце, вам надо модифицировать записанные TestComplete'ом скрипты так, чтобы они не просто кликали на кнопки и вбивали в поля текст, а еще и сравнивали текст других контролов с некоторым предопределенным текстом, взятым из переменной, файла, базы данных, и т.д. Взять текст контрола можно через какое-нибудь его свойство (например innerText). Сам контрол можно найти в панели Object Browser в дереве объектов - просто выделите его и смотрите справа все доступные свойства и методы. Если затрудняетесь найти нужный контрол, можете воспользоваться Finder Tool. Для этого нажмите на панели инструментов кнопку 'Display Object Properties Window' (белое окошко перекрывающее еще два окошка) и перетащите перекрестье на нужный контрол.
Для сравнения данных используйте стандартные средства выбранного языка. Как правило, это оператор 'if...then...else'.
  • 0
С уважением,
Дмитрий

#5 Olga_

Olga_

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

  • Members
  • Pip
  • 25 сообщений
  • ФИО:Olya

Отправлено 15 августа 2006 - 11:47

Здравствуйте, Ольга.

Вот так просто про то, как работать с TestComplete, не расскажешь. :)
Советую просмотреть пример '<TestComplete>\Samples\Open Apps\OrdersDemo\Web\TCProject', там демонстрируется простой тест несложной веб страницы.

Также можете посмотреть раздел справки 'Getting Started'. Там подробно по шагам описаны основные принципы работы с TestComplete.

Вкратце, вам надо модифицировать записанные TestComplete'ом скрипты так, чтобы они не просто кликали на кнопки и вбивали в поля текст, а еще и сравнивали текст других контролов с некоторым предопределенным текстом, взятым из переменной, файла, базы данных, и т.д. Взять текст контрола можно через какое-нибудь его свойство (например innerText). Сам контрол можно найти в панели Object Browser в дереве объектов - просто выделите его и смотрите справа все доступные свойства и методы. Если затрудняетесь найти нужный контрол, можете воспользоваться Finder Tool. Для этого нажмите на панели инструментов кнопку 'Display Object Properties Window' (белое окошко перекрывающее еще два окошка) и перетащите перекрестье на нужный контрол.
Для сравнения данных используйте стандартные средства выбранного языка. Как правило, это оператор 'if...then...else'.

Просмотр сообщения

А если мне надо проверить RequiredFieldValidatorControl на сервере и на клиенте?
RequiredFieldValidator Control
Evaluates the value of an input control to ensure that the user enters a value.
<asp:RequiredFieldValidator
id="ProgrammaticID"
ControlToValidate="ProgrammaticID of control to validate"
InitialValue="value"
ErrorMessage="Message to display in ValidationSummary control"
Text="Message to display in control"
ForeColor="value"
BackColor="value" Â…
runat="server" >
</asp:RequiredFieldValidator>
Скажем мне надо проверить мандаторное поле....после submit....
как мне обратиться тогда к моему приложению...
Есть у меня это поле w3 = w2["Item"]("ctl00_ContentMainView_CustomField4");
Как дальше быть? :(
  • 0

#6 Olga_

Olga_

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

  • Members
  • Pip
  • 25 сообщений
  • ФИО:Olya

Отправлено 16 августа 2006 - 13:45

Дмитрий,
не подскажите как из скрипта обращаемся к валидатору по ID?
у меня есть ID ctl00_ContentMainView_btnSave
Пишу на с++script
  • 0

#7 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 16 августа 2006 - 13:50

Здравсвуйте, Ольга.

Если вам надо проверить, отображается ли валидатор на странице в данный момент, вы можете проверить его стиль 'Visibility'. Например:
var validator = page["document"]["all"]["Item"]("aRequiredFieldValidator13");
if (validator["style"]["visibility"] == "hidden")
  Log["Message"]("Валидатор скрыт!");
else
  Log["Message"]("Валидатор отрисован!");
Определить, к какому контролу привязан валидатор со стороны клиента (TestComplete'а), скорее всего невозможно. В исходный код удаленной серверной части TestComplete влезть также не может.
  • 0
С уважением,
Дмитрий

#8 Olga_

Olga_

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

  • Members
  • Pip
  • 25 сообщений
  • ФИО:Olya

Отправлено 16 августа 2006 - 15:44

Спасибо большое за ответ.
Дмитрий,
дело в том что мне надо проверить правильность работы валидатора на страничке.
То есть скажем после нажатия кнопки 'Submit' должны быть cоответствующие сообщения (скажем не заполнены мандаторные поля) - это validator server control
И скажем ClientSide_Validator (без post back)
Надо проверить сработал ли валидатор или нет
Валидатор - это тот же объект, его состояние можно опросить после каждого клика. тогда надо определить ID объекта
из скрипта обращаемся к валидатору по ID
Правильно я понимаю????
Заранее спасибо
  • 0

#9 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 17 августа 2006 - 04:53

Здравствуйте, Ольга.

Валидатор - это тот же объект, его состояние можно опросить после каждого клика. тогда надо определить ID объекта
из скрипта обращаемся к валидатору по ID
Правильно я понимаю????

Да, все так. Вы можете найти объект и посмотреть его свойства с помощью Finder Tool (я про него говорил в первом ответе). Конечно, для этого надо сначала сделать его видимым.
Хочу обратить ваше внимание на то, что свойство 'id' объектов на веб страничках на самом деле свойство, добавляемое TestComplete'ом и не является нативным свойством объекта, по которому его можно адресовать. Нативное свойство храниться в пространстве имен NativeWebObject. Чтобы его посмотреть, найдите свойство nativeWebObject в Object Browser и раскройте его нажав на кнопку '...' справа.
  • 0
С уважением,
Дмитрий

#10 Olga_

Olga_

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

  • Members
  • Pip
  • 25 сообщений
  • ФИО:Olya

Отправлено 17 августа 2006 - 09:21

Здравствуйте, Дмитрий!
Спасибо Вам большое за ответ
Последний вопросик :)
До конца не могу разобраться в синтаксисе Си++ Script
Вот скажем
window["document"]["frames"]["leftFrame"]["document"]["all"]["Item"](8)["Click"](10, 10);
- что означает (8) (10, 10);
)


В конктретное поле я занашу значение
function Сheckdata()
{
var data;

data["custname"]["value"] = "content";
Как мне проверить:
если поле проверямое пустое - занчит одно сообщение
если нет - другое сообщние

Вот думаю так....(надеюсь правильно)
if data["custname"]["value"] пустое
Log["Message"] ("Field is empty");
else Log["Message"]("Value " +
"Content: " + data["item"](17)["innerText"]

какой номер айтема бртать..и что это вообще означает (в help смотрела, ну что-то по синтаксису ничего не нашла...не знаю где еще посмотреть)
Я извиняюсь за такие вопросы...понимаю, что примитивные...ну ничего поделать не могу, надо просто разобраться
Вам еще раз спасибо
Ольга
  • 0

#11 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 17 августа 2006 - 15:14

Здравствуйте, Ольга.

window["document"]["frames"]["leftFrame"]["document"]["all"]["Item"](8)["Click"](10, 10);
- что означает (8) (10, 10);
)

'(8)' - единственный параметр метода Item и означает он индекс объекта. '(10, 10)' - параметры метода Click. Это координаты точки, по которой надо совершить клик. Эти координаты относительны верхнему левому углу контрола, для которого вызывается метод. Эта строка равносильна следующей:
window.document.frames.leftFrame.document.all.Item(8).Click(10, 10);

В конктретное поле я занашу значение
function Сheckdata()
{
var data;

data["custname"]["value"] = "content";

Не совсем ясно, что такое 'data'. Очень похоже, что это переменная, содержащая какой-то объект, но что это за объект из кода не понятно.
Переменная где-нибудь инициализируется?
Если 'data' это объект 'page["document"]["all"]', то вам надо использовать 'data["Item"]("custname")["value"]' (что равносильно 'data.Item("custname").value').

Вот думаю так....(надеюсь правильно)
if data["custname"]["value"] пустое
Log["Message"] ("Field is empty");
else Log["Message"]("Value " +
"Content: " + data["item"](17)["innerText"]

C#Script - этот тот же JScript (или JavaScript). Можете использовать такой код:
if (data["Item"]("custname")["value"] == "") {
  Log["Message"]("Field is empty");
}
else {
  Log["Message"]("Content: " + data["Item"](17)["innerText"]);
}
Однако, я не понял, почему в последней строке вы используете 'data["Item"](17)', тогда как в первой использовали 'data["Item"]("custname")'. Это, скорее всего, разные объекты.
  • 0
С уважением,
Дмитрий

#12 Olga_

Olga_

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

  • Members
  • Pip
  • 25 сообщений
  • ФИО:Olya

Отправлено 18 августа 2006 - 15:32

Спасибо большое.
Буду пробывать
  • 0

#13 Olga_

Olga_

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

  • Members
  • Pip
  • 25 сообщений
  • ФИО:Olya

Отправлено 19 августа 2006 - 06:39

Скажите пожалуйста,
я получила ID контрола на моей страничке
ID = w2.Item("ctl00_ContentMainView_btnSave")["NativeWebObject"]["id"];
как мне вынести в логи этот ай ди (узнать что это за айдишка)
Log ["Message"]....а как дальше записать

Спасибо большое
Ольга

Где можно посмотреть синтаксис С++Script. В help, к сожалению, мало что естью
  • 0

#14 Dmitry N

Dmitry N

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 742 сообщений
  • ФИО:Николаев Дмитрий
  • Город:Где-то в России

Отправлено 21 августа 2006 - 06:52

Здравствуйте, Ольга.

ID = w2.Item("ctl00_ContentMainView_btnSave")["NativeWebObject"]["id"];
как мне вынести в логи этот ай ди (узнать что это за айдишка)

В лог это значение можно вывести так:
Log["Message"](ID);
Однако, я и так вам скажу, что там будет:

ctl00_ContentMainView_btnSave

В коде, который вы используете, вы берете объект именно по значению аттрибута ID - w2.Item("ctl00_ContentMainView_btnSave").

Где можно посмотреть синтаксис С++Script. В help, к сожалению, мало что естью

C++Script - это JScript. Разница в том, что рекордер TestComplete'а записывает скрипты используя квадратные скобки (язык это позволяет). А так - это абсолютно совместимые языки. Нужен C++Script для работы фичи C++ Connected Applications. Это когда вы тесты вставляете внутрь C++ приложения и запускаете их оттуда. Если вы не тестируете C++ приложение и не интересуетесь это возможностью, я рекумендую перейти на JScript. Вам будет граздо проще с ним работать.

Документация по JScript лежит в MSDN.
  • 0
С уважением,
Дмитрий

#15 Olga_

Olga_

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

  • Members
  • Pip
  • 25 сообщений
  • ФИО:Olya

Отправлено 22 августа 2006 - 10:09

Большое спасибо.
Все понятно.
  • 0


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

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