Test Complete и Web-приложения (Toolbar)
#1
Отправлено 25 ноября 2010 - 08:56
Я новичок автоматизированого тестирования, после пересмотра ряда видео материалов и некоторых доков, коечто у меня начало получатса, но ето очень маленькая часточка того щто нужно. Возмоно я повторюсь потомушто перечитать весь форум сложно, я б хотел задать несколько вопросов:
Введение: Проект собой предстовляет "тулбар" которий интегритса в браузер (IE8; FF3.6) вот его я и буду тестить со сторони вебки и со сторони десктопа куда записуютса преференсы.
1. как правильно вибрать тип проекта для запису кликов в браузере, штобы он смог их воспроизвести а не выдавал ошыбку "The object does not exist"
2. как я могу запустить інсталяшку из папки без ошыбки "Overlapping window"
3. и последние, я использую Він7(64) - поетаму стоит "NCP Secure Client Entry" иногда имею проблеми с запису ТС - выбивает ошыбка...
И на конець: Я новичок тому буду очень признателен любым советам, и постараюсь освоить ето дело быстро :). Если есть кокойто опыт тестирувания тулбаров - подилитесь им, или хотябы кокойто книжкой для новичков. Извиняйте за ламаное написание, не родная мова, СПОСИБО НАПЕРЕД.
#2
Отправлено 25 ноября 2010 - 09:07
PS
Когда идет набор, то ошибки подчеркиваются красным цветом...
PSPS
Осторожно предполагаю, что Вы из Республики Беларусь.
#3
Отправлено 25 ноября 2010 - 09:33
#4
Отправлено 29 ноября 2010 - 18:34
Советую посмотреть Учебник по TestComplete на русском.
По поводу конкретных вопросов - они очень специфичные чтобы ответить не имея проекта, теста, лога и даже, может быть, приложения. Лучше задавать их по одному, предоставляя как можно больше информации: версия ТС, проект с логами.
Дмитрий
#5
Отправлено 03 декабря 2010 - 08:19
Интересует не автогенерирование кода. Если возможно приведите пример кода в Jscript.
#6
Отправлено 03 декабря 2010 - 16:51
Есть много способов. Например, можно использовать FindChild:
function test() { var page = Sys.Process("iexplore").ToUrl("http://www.google.com"); var btn = page.FindChild(["type", "value"], ["submit", "Google Search"], 100); if (btn.Exists) { Log.Message("Кнопка найдена"); } else { Log.Message("Кнопка не найдена"); } }
Дмитрий
#7
Отправлено 06 декабря 2010 - 09:15
Спасибо за пример.Здравствуйте.
Есть много способов. Например, можно использовать FindChild:function test() { var page = Sys.Process("iexplore").ToUrl("http://www.google.com"); var btn = page.FindChild(["type", "value"], ["submit", "Google Search"], 100); if (btn.Exists) { Log.Message("Кнопка найдена"); } else { Log.Message("Кнопка не найдена"); } }
Не совсем понял что означают вот эти значения ["type", "value"], ["submit", "Google Search"] если рассматривать кнопку поиска Google то у нее какие значения?
Этот скрипт пишет в лог что кнопка не найдена, хотя она есть.
И еще вопрос если мне нужно проверить много ссылок, можно ли создать ,например, массив этих ссылок и потом в цикле подставлять их значения используя функцию FindChild для того что бы не дублировать код?
#8
Отправлено 06 декабря 2010 - 11:06
Спасибо за пример.
Здравствуйте.
Есть много способов. Например, можно использовать FindChild:function test() { var page = Sys.Process("iexplore").ToUrl("http://www.google.com"); var btn = page.FindChild(["type", "value"], ["submit", "Google Search"], 100); if (btn.Exists) { Log.Message("Кнопка найдена"); } else { Log.Message("Кнопка не найдена"); } }
Не совсем понял что означают вот эти значения ["type", "value"], ["submit", "Google Search"] если рассматривать кнопку поиска Google то у нее какие значения?
Этот скрипт пишет в лог что кнопка не найдена, хотя она есть.
И еще вопрос если мне нужно проверить много ссылок, можно ли создать ,например, массив этих ссылок и потом в цикле подставлять их значения используя функцию FindChild для того что бы не дублировать код?
При использовании FindChild ты должен указать какието свойства объекта и их значения, по которым TC должен найти этот объект..
В данном примере нашли кнопку Google Search по свойству type со значением submit(кнопка) и свойству value со значением Google Search (можешь их псомотреть в Object Spy)
По поводу массива ссылок - конечно можно!для этого массив и нужен
P.S. у меня данный пример с кнопкой сработал на ура!)
#9
Отправлено 06 декабря 2010 - 12:34
А у меня вот такое заработало только. IE 7. Имеет ли значение версия IE ?
Спасибо за пример.
Здравствуйте.
Есть много способов. Например, можно использовать FindChild:function test() { var page = Sys.Process("iexplore").ToUrl("http://www.google.com"); var btn = page.FindChild(["type", "value"], ["submit", "Google Search"], 100); if (btn.Exists) { Log.Message("Кнопка найдена"); } else { Log.Message("Кнопка не найдена"); } }
Не совсем понял что означают вот эти значения ["type", "value"], ["submit", "Google Search"] если рассматривать кнопку поиска Google то у нее какие значения?
Этот скрипт пишет в лог что кнопка не найдена, хотя она есть.
И еще вопрос если мне нужно проверить много ссылок, можно ли создать ,например, массив этих ссылок и потом в цикле подставлять их значения используя функцию FindChild для того что бы не дублировать код?
При использовании FindChild ты должен указать какието свойства объекта и их значения, по которым TC должен найти этот объект..
В данном примере нашли кнопку Google Search по свойству type со значением submit(кнопка) и свойству value со значением Google Search (можешь их псомотреть в Object Spy)
По поводу массива ссылок - конечно можно!для этого массив и нужен
P.S. у меня данный пример с кнопкой сработал на ура!)
var page = Sys.Process("iexplore").ToUrl("http://www.google.com"); var btn = page.Form("f").Table(0).Cell(0, 1).SubmitButton("btnG"); if ( btn.Exists) { Log.Message("Кнопка найдена"); } else { Log.Message("Кнопка не найдена"); } }Пишет в лог "кнопка найдена".
А ваш код пишет "кнопка не найдена".
#10
Отправлено 06 декабря 2010 - 12:47
Помнится были проблемы както с FF 3.6...вообще в нем объекты не воспринимались,а в 3.5 все отл было
#11
Отправлено 06 декабря 2010 - 14:10
#12
Отправлено 06 декабря 2010 - 16:02
Работоспособность кода действительно в данном случае может зависеть от версии IE и TC. У меня IE8 и TC8.10. А ещё от версии самой страницы - у меня Google настроен на англоязычную версию.
Ваш код не ищет кнопку, а берёт её по полному имени. Если такой вариант устраивает, то вам просто нужно использовать Property Checkpoint или Object Checkpoint.
Насчёт массивов, рекомендую обратить внимание на возможность Data-Driven Testing.
Дмитрий
#13
Отправлено 07 декабря 2010 - 15:11
А если такой вариант не устраивает как можно в IE7 искать кнопку ? И можно ли вообще?Ваш код не ищет кнопку, а берёт её по полному имени. Если такой вариант устраивает, то вам просто нужно использовать Property Checkpoint или Object Checkpoint.
Спасибо , интересная возможность . Если я правильно понял то можно просто составить Doc в из которого будут браться все необходимые ссылочки , либо вообще из БД?Насчёт массивов, рекомендую обратить внимание на возможность Data-Driven Testing.
А насчет массивов можно ли использовать в TC8 многомерные ассоциативные массивы, если да то можно пример либо на help ссылочку.
#14
Отправлено 08 декабря 2010 - 09:19
Можно. Используйте FindChild, как я уже писал ранее. Если мой код не работает, надо подобрать правильные параметры. Ещё может быть у вас TC8.0, в котором, кажется, не работала передача JScript массивов в параметрах FindChild. В TestComplete 8.10 работает.А если такой вариант не устраивает как можно в IE7 искать кнопку ? И можно ли вообще?
Если я правильно понял то можно просто составить Doc в из которого будут браться все необходимые ссылочки , либо вообще из БД?
Да.
А насчет массивов можно ли использовать в TC8 многомерные ассоциативные массивы, если да то можно пример либо на help ссылочку.Поддержка ассоциативных массивов есть в JScript. Также, есть системный объект Dictionary, который реализует эту функциональность. Многомерные массивы это просто массивы массивов. Например (код пишу прямо тут, не проверял):
function test() { var myArr = new Array(); myArr["Red"] = new Array(); myArr["Red"].push("Apple"); myArr["Red"].push("Tomato"); myArr["Green"] = new Array(); myArr["Green"].push("Cucumber"); myArr["Green"].push("Onion"); for (var color in myArr) { Log.Message("-- Color: " + color); for (var i = 0; i < myArr[color].length; i++) { Log.Message(myArr[color][i]); } } }
Дмитрий
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных