Тестирование WEB-приложения..
#1
Отправлено 30 июня 2006 - 09:48
Был бы очень признателен, если бы это было бы подробное описание действия.. Так как надо в сжатые сроки провести анализ и вынести решение о необходимости приобретения продукта...
#2
Отправлено 30 июня 2006 - 17:00
Ничего включать не надо - все должно работать по умолчанию. Простейшая схема такова:
- Создать новый проект.
- Открыть тестируемую страницу в Internet Explorer.
- Начать запись теста нажав кнопку Record (красный круг) на панели инструментов в TestComplete.
- Не торопять (дав ТС время прочитать все объекты) выполнить желаемые действия над страницей.
- Остановить запись нажатием кнопки Stop (синий квадрат) на панели Recording ТС.
- Воспроизвести тест кликнув правой кнопкой на него в редакторе и выбрав Run Current Routine из контекстного меню.
- Посмотреть, как ТС будет повторять ваши действия и затем посмотреть открывшийся лог.
Дмитрий
#3
Отправлено 14 августа 2006 - 09:02
У меня сейчас стоит задача протестировать web-приложение.
Помогите пожалуйста с чего вообще начинать.
С Test Complete я никогда не работала.
Запись теста я уже сделала, что дальше делать?
Мне надо проверить приложение на валидацию данных. После записи теста, у меня есть программный скрипт. Подскажите, как мне обращаться к web-приложению. Мне надо написать скрипты по всем тест-кейсам, кот.имеются к этому приложению.
Проверка на корректность данных...и т.д.
Очень жду ответа заранее спасибо!!
#4
Отправлено 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'.
Дмитрий
#5
Отправлено 15 августа 2006 - 11:47
А если мне надо проверить RequiredFieldValidatorControl на сервере и на клиенте?Здравствуйте, Ольга.
Вот так просто про то, как работать с TestComplete, не расскажешь. :)
Советую просмотреть пример '<TestComplete>\Samples\Open Apps\OrdersDemo\Web\TCProject', там демонстрируется простой тест несложной веб страницы.
Также можете посмотреть раздел справки 'Getting Started'. Там подробно по шагам описаны основные принципы работы с TestComplete.
Вкратце, вам надо модифицировать записанные TestComplete'ом скрипты так, чтобы они не просто кликали на кнопки и вбивали в поля текст, а еще и сравнивали текст других контролов с некоторым предопределенным текстом, взятым из переменной, файла, базы данных, и т.д. Взять текст контрола можно через какое-нибудь его свойство (например innerText). Сам контрол можно найти в панели Object Browser в дереве объектов - просто выделите его и смотрите справа все доступные свойства и методы. Если затрудняетесь найти нужный контрол, можете воспользоваться Finder Tool. Для этого нажмите на панели инструментов кнопку 'Display Object Properties Window' (белое окошко перекрывающее еще два окошка) и перетащите перекрестье на нужный контрол.
Для сравнения данных используйте стандартные средства выбранного языка. Как правило, это оператор 'if...then...else'.
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");
Как дальше быть? :(
#6
Отправлено 16 августа 2006 - 13:45
не подскажите как из скрипта обращаемся к валидатору по ID?
у меня есть ID ctl00_ContentMainView_btnSave
Пишу на с++script
#7
Отправлено 16 августа 2006 - 13:50
Если вам надо проверить, отображается ли валидатор на странице в данный момент, вы можете проверить его стиль 'Visibility'. Например:
var validator = page["document"]["all"]["Item"]("aRequiredFieldValidator13"); if (validator["style"]["visibility"] == "hidden") Log["Message"]("Валидатор скрыт!"); else Log["Message"]("Валидатор отрисован!");Определить, к какому контролу привязан валидатор со стороны клиента (TestComplete'а), скорее всего невозможно. В исходный код удаленной серверной части TestComplete влезть также не может.
Дмитрий
#8
Отправлено 16 августа 2006 - 15:44
Дмитрий,
дело в том что мне надо проверить правильность работы валидатора на страничке.
То есть скажем после нажатия кнопки 'Submit' должны быть cоответствующие сообщения (скажем не заполнены мандаторные поля) - это validator server control
И скажем ClientSide_Validator (без post back)
Надо проверить сработал ли валидатор или нет
Валидатор - это тот же объект, его состояние можно опросить после каждого клика. тогда надо определить ID объекта
из скрипта обращаемся к валидатору по ID
Правильно я понимаю????
Заранее спасибо
#9
Отправлено 17 августа 2006 - 04:53
Да, все так. Вы можете найти объект и посмотреть его свойства с помощью Finder Tool (я про него говорил в первом ответе). Конечно, для этого надо сначала сделать его видимым.Валидатор - это тот же объект, его состояние можно опросить после каждого клика. тогда надо определить ID объекта
из скрипта обращаемся к валидатору по ID
Правильно я понимаю????
Хочу обратить ваше внимание на то, что свойство 'id' объектов на веб страничках на самом деле свойство, добавляемое TestComplete'ом и не является нативным свойством объекта, по которому его можно адресовать. Нативное свойство храниться в пространстве имен NativeWebObject. Чтобы его посмотреть, найдите свойство nativeWebObject в Object Browser и раскройте его нажав на кнопку '...' справа.
Дмитрий
#10
Отправлено 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 смотрела, ну что-то по синтаксису ничего не нашла...не знаю где еще посмотреть)
Я извиняюсь за такие вопросы...понимаю, что примитивные...ну ничего поделать не могу, надо просто разобраться
Вам еще раз спасибо
Ольга
#11
Отправлено 17 августа 2006 - 15:14
'(8)' - единственный параметр метода Item и означает он индекс объекта. '(10, 10)' - параметры метода Click. Это координаты точки, по которой надо совершить клик. Эти координаты относительны верхнему левому углу контрола, для которого вызывается метод. Эта строка равносильна следующей:window["document"]["frames"]["leftFrame"]["document"]["all"]["Item"](8)["Click"](10, 10);
- что означает (8) (10, 10);
)
window.document.frames.leftFrame.document.all.Item(8).Click(10, 10);
Не совсем ясно, что такое 'data'. Очень похоже, что это переменная, содержащая какой-то объект, но что это за объект из кода не понятно.В конктретное поле я занашу значение
function Сheckdata()
{
var data;
data["custname"]["value"] = "content";
Переменная где-нибудь инициализируется?
Если 'data' это объект 'page["document"]["all"]', то вам надо использовать 'data["Item"]("custname")["value"]' (что равносильно 'data.Item("custname").value').
C#Script - этот тот же JScript (или JavaScript). Можете использовать такой код:Вот думаю так....(надеюсь правильно)
if data["custname"]["value"] пустое
Log["Message"] ("Field is empty");
else Log["Message"]("Value " +
"Content: " + data["item"](17)["innerText"]
if (data["Item"]("custname")["value"] == "") { Log["Message"]("Field is empty"); } else { Log["Message"]("Content: " + data["Item"](17)["innerText"]); }Однако, я не понял, почему в последней строке вы используете 'data["Item"](17)', тогда как в первой использовали 'data["Item"]("custname")'. Это, скорее всего, разные объекты.
Дмитрий
#12
Отправлено 18 августа 2006 - 15:32
Буду пробывать
#13
Отправлено 19 августа 2006 - 06:39
я получила ID контрола на моей страничке
ID = w2.Item("ctl00_ContentMainView_btnSave")["NativeWebObject"]["id"];
как мне вынести в логи этот ай ди (узнать что это за айдишка)
Log ["Message"]....а как дальше записать
Спасибо большое
Ольга
Где можно посмотреть синтаксис С++Script. В help, к сожалению, мало что естью
#14
Отправлено 21 августа 2006 - 06:52
В лог это значение можно вывести так:ID = w2.Item("ctl00_ContentMainView_btnSave")["NativeWebObject"]["id"];
как мне вынести в логи этот ай ди (узнать что это за айдишка)
Log["Message"](ID);Однако, я и так вам скажу, что там будет:
ctl00_ContentMainView_btnSave
В коде, который вы используете, вы берете объект именно по значению аттрибута ID - w2.Item("ctl00_ContentMainView_btnSave").
C++Script - это JScript. Разница в том, что рекордер TestComplete'а записывает скрипты используя квадратные скобки (язык это позволяет). А так - это абсолютно совместимые языки. Нужен C++Script для работы фичи C++ Connected Applications. Это когда вы тесты вставляете внутрь C++ приложения и запускаете их оттуда. Если вы не тестируете C++ приложение и не интересуетесь это возможностью, я рекумендую перейти на JScript. Вам будет граздо проще с ним работать.Где можно посмотреть синтаксис С++Script. В help, к сожалению, мало что естью
Документация по JScript лежит в MSDN.
Дмитрий
#15
Отправлено 22 августа 2006 - 10:09
Все понятно.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных