Testcomplete 3.0. Возможности, глюки, фичи...
#1
Отправлено 08 октября 2003 - 06:49
--------------------------------------------
-- Дано
Приложение на C#. Данные организованы иерархически, доступ через дерево. Одни и те же команды можно отдать по разному (drag'n'drop, контекстное меню, горячие клавиши, ...).
-- Пишем простенький тест сьют для проверки дерева:
1) активация приложения
2) Создание папок и обьектов
3) Перемещение папок и обьектов
4) Удаление папок и обьектов
-- В результате было установлено:
1) После активации приложения нужно ставить задержку. Минимально – 650 мсек, рекомендуется 1500 мсек.
2) Очень плохо реагирует на щелчки на попап окошках. Стабильная работа достигается только при использовании клавиатуры. Получается, что работу мыши на попах окошках тестировать вообще нельзя?
3) Глючит на drag’n’drop. Срабатывает примерно в 25% случаев. Нельзя тестировать?
4) Не воспринимает самодельное меню модулей. Обойти можно, но накладно. Либо перед каждым тестом инициализировать правильное состояние вручную, либо дописывать дополнительный программный интерфейс
-----------------------------
Что скажете состоятельные кроты?
--
Сергей Мартыненко
Блог 255 ступеней (байки для оруженосца)
facebook (Дети диаграммы Ганта)
ВебПосиделки клуба имени Френсиса Бэкона
#2
Отправлено 08 октября 2003 - 07:08
Часть проблем вы обознали сразу с решением, я тогда чуток покоментирую.
Была такая трабла - активизация и окошко логина. Активизация одной функцией, обработка логина другой. Пока не поставили задержку, окошко логина "ожидалось" - скипт отваливался.1) После активации приложения нужно ставить задержку. Минимально – 650 мсек, рекомендуется 1500 мсек.
Смотрим в код.2) Очень плохо реагирует на щелчки на попап окошках. Стабильная работа достигается только при использовании клавиатуры. Получается, что работу мыши на попах окошках тестировать вообще нельзя?
Вы активизируете попап-окошки? То есть у нас был такой трабл с окнами, решилось добавлением строчек вида
Set w = p.MainForm
w.Activate
То есть сначала активизируем явно это окошко, потом опять таки активизируем контрол (сет фокус), потом говорим клик. Потому как просто клик иногда просто не срабатывает.
То есть такой вот код:
Call w.cmdReference_3.SetFocus
Call Sys.Keys("[Enter]")
Вместо однострочно клика на кнопке.
Не пробовал - скоро будем, скажу. (может даже сегодня)3) Глючит на drag’n’drop. Срабатывает примерно в 25% случаев. Нельзя тестировать?
Что такое самодельное меню? У нас меню генерируется программой в рантайме и мы по нему очень неплохо умеем ходить.4) Не воспринимает самодельное меню модулей
Надеюсь что к нам присоединятся разработчики тула, ответы будут полнее да и меньше будут напоминать тыкание слепого.
Редактор портала www.it4business.ru
#3
Отправлено 08 октября 2003 - 09:00
Call m.Object_9.Drag(229, 131, -140, 5)
Вот такая к примеру кострукция работает замечательно и устойчиво. С чем у Вас проблемка?
Редактор портала www.it4business.ru
#4
Отправлено 10 октября 2003 - 10:44
2.
Честно говоря не понял. Последняя строка Call Sys.Keys("[Enter]") означает нажатие Enter. Так это у меня прекрасно работает. Мне клик нужен. Приведу более подробно.Смотрим в код.
Вы активизируете попап-окошки? То есть у нас был такой трабл с окнами, решилось добавлением строчек вида
Set w = p.MainForm
w.Activate
То есть сначала активизируем явно это окошко, потом опять таки активизируем контрол (сет фокус), потом говорим клик. Потому как просто клик иногда просто не срабатывает.
То есть такой вот код:
Call w.cmdReference_3.SetFocus
Call Sys.Keys("[Enter]")
Вместо однострочно клика на кнопке.
-- Последовательность
a) Из контектного меню отдать команду на удаление папки. -> Выскочит окно запроса на удаление.
B) Подтвердить удаление. -> Папка удалена.
-- Первый вариант реализации: нажатие Enter.
Set p = Sys.Process("explorer") Set w = p.Window("Shell_TrayWnd") w.Activate Call w.Window("ToolbarWindow32", "Выполнение приложений").Click("Имя приложения", True) Set p = Sys.Process("Имя процесса") Set w = p.ClientMainForm_6 w.Activate Call w.tvCardfile.ClickR("|рутовый элемент|2") Call w.PopupMenu.Click("[6]") ' команда на удаление Call Sys.Keys("[Enter]")
Все работает прекрасно, никакой допонительной активации не надо.
-- Второй вариант. Клик на "Ok".
Set p = Sys.Process("explorer") Set w = p.Window("Shell_TrayWnd") w.Activate Call w.Window("ToolbarWindow32", "Выполнение приложений").Click("Имя приложения", True) Set p = Sys.Process("Имя процесса") Set w = p.ClientMainForm_6 w.Activate Call w.tvCardfile.ClickR("|рутовый элемент|2") Call w.PopupMenu.Click("[6]") ' команда на удаление Set w = p.ClientMainForm_8 w.Activate w.ClientMainForm.Click
Не работает. Пробовал и так и эдак. Ни в какую ни идет. Вернее срабатывает изредка, что еще хуже.
Еще момент. Что означает цифра после p.ClientMainForm_ ? Она разная при записи одного и того же скрипта в разное время. Что ЭТО? И, главное, как с ЭТИМ бороться?
--
Сергей Мартыненко
Блог 255 ступеней (байки для оруженосца)
facebook (Дети диаграммы Ганта)
ВебПосиделки клуба имени Френсиса Бэкона
#5
Отправлено 10 октября 2003 - 11:26
Set p = Sys.Process("explorer") Set w = p.Window("Shell_TrayWnd") w.Activate Call w.Window("ToolbarWindow32", "Выполнение приложений").Click("Имя приложения", True) Set p = Sys.Process("Имя процесса") Set w = p.ClientMainForm w.Activate Call w.Object.CardfilePanel.tvCardfile.Drag(46, 41, 0, 20)
Кроме того с завидной регулярностью делает неправильную запись скрипта.
Вместо:
Call w.Object.CardfilePanel.tvCardfile.Drag(46, 41, 5, 21)Пишет:
Call w.Object.CardfilePanel.tvCardfile.Click("|123|2")Без комментариев.
4) У нас вызов рабочих полей организован как в последнем "Касперском". Там слева два модуля "стандарт"/ "эксперт" и в каждом набор юнитов. У нас организация такая же. Так вот, переключаться из одного в другое testcomplete не умеет.
--------------
В общем, если бы я тестировал testcomplet, в моем отчете стояло бы заключение:
В данный момент продукт не готов к поставке конечному пользователю, ввиду наличия большого числа серьезных ошибок и неполной реализации основного функционала. Продукт готов к передаче в бета тестирование для демонстрации потенциальных возможностей и сбора откликов.
--
Сергей Мартыненко
Блог 255 ступеней (байки для оруженосца)
facebook (Дети диаграммы Ганта)
ВебПосиделки клуба имени Френсиса Бэкона
#6
Отправлено 10 октября 2003 - 12:37
Вот мы клики на кнопках (в вашем случае на пункте меню - имхо не суть) заменили на сет фокус и ентер. (по отдельности сет фокус и ентер работают хорошо - вместе дают желаемый клик на кнопке :))Честно говоря не понял. Последняя строка Call Sys.Keys("[Enter]") означает нажатие Enter. Так это у меня прекрасно работает. Мне клик нужен.
Приведу более подробно.
А если попробоватьSet w = p.ClientMainForm_8
w.Activate
w.ClientMainForm.Click
Не работает. Пробовал и так и эдак. Ни в какую ни идет. Вернее срабатывает изредка, что еще хуже.
w.ClientMainForm.SetFocus
Call Sys.Keys("[Enter]")
? Я как раз об этом варианте и говорю. Передать фокус, потом ткнуть как по ентеру.
С этим сталкнулись ещё в такой ситуации. есть контрол который просто стоит в форме два раза - тул ему чесно во второй раз даёт своё имя, с циферькой. Если много раз запускать и стопать тул под тестом из комплита получаем в приставке новую цифру.Еще момент.
Что означает цифра после p.ClientMainForm_ ? Она разная при записи одного и того же скрипта в разное время. Что ЭТО? И, главное, как с ЭТИМ бороться?
Мы решали "классически" - перезапускали сам ТестКомплит. После этого он начинал вопросизводить как бы в режиме в котором и записывал. Имхо бага, но мы так выворачивались.
Редактор портала www.it4business.ru
#7
Отправлено 10 октября 2003 - 12:48
Вы таскаете какой то обычный обьект (папка, файлик, не знаю, то что студия предлагает)? Потому как в моём случяае перетаскивается наш обьект, графический, в графическом пакете, его тул просто таскал эмулируя "взять с таких координат, опустить на такой", что в моём слуаче логично, как мне кажется.при драг энд дропе этот тул работает не с обьектами
Может не до конца представил проблему, но таки попробую :)переключаться из одного в другое testcomplete не умеет
Когда есть переход на другую закладку с элементами (ваше переключение в другой режим) я записываю скрипт с вызова этой самой закладки - тогда тул видит и закладку и элементы. Если записывать нечто с большим кол-вом элементов, потом перейти на другой контрол с другим набором элементов - тул не все видит. Проблема имхо ваша, так?
Если таки так - то побейте срипт на маленькие, которые начинаются с вызова контрола с которым будете работать.
Вот тут пардон - не понял. А как вы будете ходить по дереву, то есть работать с его моделью, обращаться к узлам дерева кроме как через модель парента - то есть контрола самого дерева?каждый раз вручную активировать правильное состояние дерева - это знаете ли накладно
Или я не так понял, или вы действительно очень многого хотите от тула, коллега.
Хочу с чем то работать - начинаю с нулевой точки, передаю фокус, перехожу на элемент, потом работаю с его свойствами и так далее. По-моему логично. Могу ошибаться, но это опчее для тулов такого ранга.
Редактор портала www.it4business.ru
#8
Отправлено 14 октября 2003 - 12:52
При использовании trial версии TestComplete 3.0 наблюдался такой баг --- под операционкой Windows2003 небыло функциональности для Open Application. То есть все возможности которые так интересно описывались в Helpe были недоступны. Например:
Set w = p.MainForm
w.Activate
Никакого MainForm (а также Form1 и пр.) не наблюдалось, несмотря на то, что у приложения в ObjectBrowser'е стоит значок открытости. Кроме того, не мог запустить программы на C#, когда был установлен NETClient.pls.
После письма в службу поддержки, пришел ответ --- ошибка будет исправлена в следующей версии (TestComplete 3.0.1).
В связи с этим хочу спросить --- как будут распространяться (похоже многочисленные) новые версии, если я, все таки приобрету этот замечательный продукт.
#9 Гость_Guest_*
Отправлено 14 октября 2003 - 15:44
--
Regards,
Alex
[TeamAQA]
================================
#10
Отправлено 10 ноября 2003 - 16:01
Обнаружил еще один неприятный дефект:
Делаю следующее
1. Создаю новый проект (например Delphi)
2. Добавляем к примеру следующий код :
a:=123;
a:=123;
a:=123;
a:=123;
a:=123;
a:=123;
3. Сохраняю проет с любым именем.
4. Вызываю "Replace Text" диалог (Ctrl+R).
5. "Text to find" = 123
"Replace with" = 321
Press "Replace All" button.
6. Ответ "All" на подверждение замены.
7. Все "123" будут заменены на "321" в редакторе.
8. Сохраняем проект
9. Закрываем и открываем проект заново.
Добавленный код будет выглядить вот так :
a:=321;
a:=321;
a:=123;
a:=123;
a:=123;
a:=123;
Т.е. только превые два элемента были заменены а остальные нет.
Мелочь а неприятно, причем самое неприятное, что прога ругается на код которого визуально уже нет :(
#11 Гость_Guest_*
Отправлено 21 января 2004 - 08:29
После письма в службу поддержки, пришел ответ --- ошибка будет исправлена в следующей версии (TestComplete 3.0.1).
В связи с этим хочу спросить --- как будут распространяться (похоже многочисленные) новые версии, если я, все таки приобрету этот замечательный продукт.
Добрый день,
Смотрите на сайте компании http://www.automated...ort/version.asp. Текущая версия TestComplete 3.0.3. Она же сейчас доступна в качестве триала.
Минорные обновления TestComplete выпускаются периодически раз в 1-2 месяца. Они бесплатны. О выпуске обновлений уведомляются все зарегестрированные пользователи. Вы также можете подписаться на получение новостей о выпуске новых версий и продуктов компании при скачивании демо версии или по ссылке http://www.automated...ubscription.asp
Обновления до следующей major версии связаны с серьезным улучшение характеристик и возможностей продукта, видимо поэтому компания берет за это деньги. Однако, для зарегестрированных пользователей предыдущих версий компания предлагает специальную цену обновления. Так TestComplete Standart 3.x стоит $349.99, а для пользователей TestComplete 2.x - 179.99$. TestComplete Enterprise 3.x стоит $599.99, а для пользователей TestComplete 2 Standard - $429.99 и для пользователей TestComplete 2 Enterprise - $299.99.
Подробную информацию о ценах можно найти на сайте компании http://www.automated.../order.asp?id=0
Удачи !
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных