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

TestComplete и .NET Web Application


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

#1 Гость_Guest_Alisa_*_*

Гость_Guest_Alisa_*_*
  • Guests

Отправлено 03 августа 2005 - 12:30

Добрый день! Не знаю, полезно ли использование TestComolete для моей задачи.
Нужно протестировать клиентскую часть ASP.NET приложения. Используются VB.NET и java script.

Вопросы:
1. Какой язык скрипта выбрать, С#?
2. Какую модель выбрать?
3. Если элементы управления создаются динамически, можно ли использовать приемущества Open Application?
4. Когда нужно писать скрипт руками, а когда нужно использовать recorder?

Заранее очень благодарна за помощь!

#2 Dmitry N

Dmitry N

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

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

Отправлено 03 августа 2005 - 13:44

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

1. Какой язык скрипта выбрать, С#?

Какой удобнее. Лично я предпочитаю JScript, хотя приходится и на других писать.
Единственное, что могу посоветовать, это не выбирать C#Script или C++Script - это тот же самый JScript, только с корявым синтаксисом. Такой синтаксис необходим при работе с C# и C++ Connected Applications, но вы вряд ли будете с ними работать, раз тестируете ASP.NET приложение.

2. Какую модель выбрать?

Опять-таки, какая самому удобнее. На мой взгляд, работать с Tag моделью удобнее. Но для многих привычнее работать с DOM моделью.

3. Если элементы управления создаются динамически, можно ли использовать приемущества Open Application?

Если вы тестируете Веб приложение, то все HTML объекты, независимо от того, как они были созданы, будут для TestComplete доступными.

4. Когда нужно писать скрипт руками, а когда нужно использовать recorder?

Рекордер можно и нужно использовать для создания скриптов-скелетов, которые уже потом можно и нужно менять руками для повышения надежности и достижения желаемой функциональности.
  • 0
С уважением,
Дмитрий

#3 Ali$a

Ali$a

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

  • Members
  • Pip
  • 8 сообщений
  • Город:Днепропетровск

Отправлено 03 августа 2005 - 14:53

Спасибо за быстрый и полный ответ. Буду "копать" дальше :lol:
  • 0

#4 Ali$a

Ali$a

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

  • Members
  • Pip
  • 8 сообщений
  • Город:Днепропетровск

Отправлено 04 августа 2005 - 13:06

Еще вопрос, общий: Как в TestComplete определить в каком месте скрипта произошла ошибка?
  • 0

#5 Dmitry N

Dmitry N

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

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

Отправлено 05 августа 2005 - 16:35

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

К сожалению, если верить help'у, то точно это узнать можно только если используешь DelphiScript.
Для других языков надо самому находить место ошибки по эвентам в логе. То есть, смотреть по скрипту очередность действий (Click, Activate, Drag и т.д.) соответствующую логу. Еще можно время от времени можно выводить в лог свои сообщения, которые будут показывать для какого участка кода пишется лог.

Если же ошибка воспроизводится постоянно, то надо скрипт дебажить. Для этого можно поставить в коде брейкпоинт - кликнуть на серой полоске слева от Editor'а напротив интересующей строки. Как только скрипт остановиться на брейкпоинте, можно наживать клавиши F8 для выполнения текущей строки и перехода к следующей, и F7 для входа в процедуру, выполняемую в текущей строке. Подробнее об этом в разделах справки 'Using the Script Debugger' и 'Stepping Through Your Script Code'.
  • 0
С уважением,
Дмитрий

#6 ...

...

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

  • Members
  • Pip
  • 23 сообщений
  • ФИО:...

Отправлено 07 декабря 2005 - 12:55

а как определять какой элемент в этой самой DOM модели к чему относитя на форме??
  • 0

#7 Dmitry N

Dmitry N

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

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

Отправлено 07 декабря 2005 - 13:32

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

Определить, какой объект на странице соответствует объекту в Object Browser непросто - надо по значениям свойств смотреть. Гораздо проще сделать обратное, найти в Object Browser объект, соответствующий объекту на странице. Для этого надо использовать Finder Tool, который находится на диалоге 'Object Properties' (можно вызвать, нажав соответствующую кнопку на тулбаре). После того, как вы найдете нужный объект с помощью Finder Tool, можно подсветить его в Object Browser'е выбрав пункт 'Highlight in Object Tree' из контекстного меню.
  • 0
С уважением,
Дмитрий

#8 ...

...

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

  • Members
  • Pip
  • 23 сообщений
  • ФИО:...

Отправлено 07 декабря 2005 - 14:10

но в Internet Explorer-е он не подсвечивает отдельные элементы...
  • 0

#9 Dmitry N

Dmitry N

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

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

Отправлено 07 декабря 2005 - 14:49

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

Вы про Finder Tool? Все должно подсвечиваться. У вас стоит плагин WebClient?
  • 0
С уважением,
Дмитрий

#10 ...

...

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

  • Members
  • Pip
  • 23 сообщений
  • ФИО:...

Отправлено 07 декабря 2005 - 15:09

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

Вы про Finder Tool? Все должно подсвечиваться. У вас стоит плагин WebClient?

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


видимо нет.... :crazy:
первый день с прогой разбираюсь.... :rtfm: нашал про то что нужен WebClient... а где его взять? не подскажете? :rtfm:
эм.. похоже глупый вопрос.. :fool: наверняка на сайте разработчика.... :)
  • 0

#11 Dmitry N

Dmitry N

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

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

Отправлено 08 декабря 2005 - 08:08

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

Он ставиться вместе с демкой и Enterprise версией продукта. Посмотреть, установлен ли он у вас можно в диалоге 'Enternsions' - File -> Install Extensions...
  • 0
С уважением,
Дмитрий

#12 ...

...

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

  • Members
  • Pip
  • 23 сообщений
  • ФИО:...

Отправлено 08 декабря 2005 - 09:54

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

Он ставиться вместе с демкой и Enterprise версией продукта. Посмотреть, установлен ли он у вас можно в диалоге 'Enternsions' - File -> Install Extensions...

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


да вчера все это нашла.... установлен....

а поля в IE не выделяются :cray:
  • 0

#13 Dmitry N

Dmitry N

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

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

Отправлено 08 декабря 2005 - 14:00

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

А скрипты записываются? А воспроизводятся? Пример записанного скрипта пришлите.
  • 0
С уважением,
Дмитрий

#14 ...

...

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

  • Members
  • Pip
  • 23 сообщений
  • ФИО:...

Отправлено 09 декабря 2005 - 13:34

всмысле записываются скрипты??
скрипты я ручками пишу...
потому как если пытаюсь автоматически через запись последовательности действий... то клики мышки записываются через координаты на экране а не как обращение к определенному полю
  • 0

#15 Dmitry N

Dmitry N

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

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

Отправлено 09 декабря 2005 - 14:36

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

А какая у вас версия Internet Explorer? Может, TestComplete не может работать с этой версией.
  • 0
С уважением,
Дмитрий

#16 ...

...

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

  • Members
  • Pip
  • 23 сообщений
  • ФИО:...

Отправлено 22 декабря 2005 - 07:40

Версия шестая... тут получилась какая штука... как оказалось проблемы возникают только с нужным мне веб-интерфейсом.
Сейчас пробую 4-й TestComplete вроде работает....

Но теперь появилась другая проблема :(
есть меню... такое где при наведении мышки на один из пунктов выпадает еще подменю... пока делаю так....
определяю координаты этого пуменю... перемещаю туда мышку.. дальше делаю клик на выпавшем подменю... но это не совсем то что нужно...
можно как-то не двигая мышку добиться чтоб мое подменю считалось нажатым??
я пробовала с помощью BuiltIn["RaiseEvent"](.......) сгенерить событие onmouseover... не выходит... либо я не правильно понимаю для чего нужен "RaiseEvent"... либо не правильно пользуюсь... мне кстати не понятно какие параметы надо задавать после объекта и события...
  • 0

#17 Dmitry N

Dmitry N

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

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

Отправлено 23 декабря 2005 - 11:18

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

Согласно топику 'BuiltIn.RaiseEvent' в хелпе TestComplete'а "The RaiseEvent function does not support HTML objects.".

У TestComplete 4 появилась замечательная способность посылать нажатия клавиш конкретному объекту. Попробуйте послать нужному объекту нажатие Enter - может это именно то, что вам надо.

Например:
[JScript]
function Test1()
{
  var  w1;
  var  w2;
  w1 = Sys.Process("IEXPLORE").Window("IEFrame", "*").Window("Shell DocObject View").Window("Internet Explorer_Server");
  w1.ToURL("http://www.google.ru/");
  w2 = w1.Page("http://www.google.ru/").INPUT;
  w2.Item("q").Keys("TestComplete");
  w2.Item("btnG").Keys("[Enter]");
}

  • 0
С уважением,
Дмитрий

#18 ...

...

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

  • Members
  • Pip
  • 23 сообщений
  • ФИО:...

Отправлено 23 декабря 2005 - 11:58

это меню вроде бы не поддерживает управление с клавиатуры... по-крайней мере двигаться по нему с помощью кнопок я не могу.... да и ко всему прочему нужен не клик.. когда наводится мышка пункт меню становится выделенным и выпадает подменю... а если сделать клик... то подменю исчезает..
т.е. нужно просто какое-то выделение..
  • 0

#19 ...

...

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

  • Members
  • Pip
  • 23 сообщений
  • ФИО:...

Отправлено 23 декабря 2005 - 12:01

и еще обнаружилась такая проблема..... при запуске окна выпадающее подменю отсутствует в objectbrowser-е.. и появляется в нем только после первого клика на это самое подменю....
т.е. если я руками открыла окно... кликнула мышкой на пункт выпадающего подменю... то дальше я могу запускать скрпт котрый к этому меню обращается... но вот как сделать чтоб не нужна была ручная предварительная подготовка..??
  • 0

#20 Dmitry N

Dmitry N

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

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

Отправлено 23 декабря 2005 - 13:46

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

Попробуйте найти нужный пункт меню с помощью метода page.NativeWebObject.Find (см. топик 'Page.NativeWebObject.Find'). Если объект может быть найден с помощью этого метода, то используйте вот этот код для того, чтобы поместить над ним курсор:
[JScript]
function MovePointer(obj)
{
  Sys.Desktop.MouseX = obj.ScreenLeft + obj.Width / 2;
  Sys.Desktop.MouseY = obj.ScreenTop + obj.Height / 2;
}

  • 0
С уважением,
Дмитрий


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

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