0) Пишите на РУССКОМ языке! Ваш вопрос будут читать люди, которые ничего не знают ни о вас, ни о вашей работе, ни о вашем приложении. Поэтому постарайтесь как можно более подробно описать суть проблемы. Ошибки в словах, опечатки, использование "падонкавской" лексики, неправильно расставленные знаки препинания - всё это только усложняет чтение и понимание сути проблемы.
Вот пример того, к чему может привести неправильно заданный вопрос.
1) Постарайтесь в теме сообщения поместить краткое описание проблемы.
Правильные примеры:
Не могу считать текст из текстового поля
Записанный скрипт не выполняется
Неправильные примеры:
ПАМАГИТИ!!!!
Подскажите новичку...
2) В поле "Описание темы" можно добавить некоторое пояснение
Правильный пример:
Возвращается неправильное значение
Неправильный пример:
Все облазил, но так и не нашел
Если нечего добавить в описание существенного, то лучше и не писать ничего.
3) В основном тексте сообщения обязательно указывайте:
а) версию TestComplete'a (4.28, 5.1, и т.д.)
б) используемый скриптовый язык в TestComplete'e (VBScript, JScript, C++ Script, C# Script, Delphi Script)
в) тип тестируемого приложения, на чем оно написано (.NET, Java, FoxPro, Visual C++, C++ Builder, Delphi, и т.п.)
г) используются ли контролы сторонних производителей (Infragistic, DevExpress, Syncfusion и т.д.)
Если не знаете ответы на эти вопросы и нет возможности узнать, то укажите это отдельно.
4) В случае если проблема касается какого-либо определенного контрола, то неплохо бы привести его скриншот и прикрепить его к вопросу. Особенно это полезно в том случае, если вы не знаете на чем написано приложение, или какие дополнительные контролы использовались.
5) Если проблема связана с записью/воспроизведением скрипта, приведите пример кода, указав строку, в которой возникает ошибка. Приведите текст ошибки, генерируемый TestComplet'ом.
Обратите внимание: зачастую большая часть информации об ошибке содержится не в самом тексте ошибки, а в комментариях (Remarks) к ней. Лучше привести текст как того, так и другого.
6) Если речь идет о работе с базами данных, то указывайте ее тип и версию. Например: MS SQL Server 2005, Oracle 8 и т.п.
Таким образом, правильный пример вопроса будет выглядеть так:
Подскажите, как считать значение из ячейки DataGrid?
Приложение написано на C#, используется .NET 2.0.
TestComplete 4.30
Возможно, это контрол стороннего производителя, точно сказать не могу.
При записи он видится как WinFormsObject("ultraGrid1")
Неправильный пример:
Кто знает, как работать с гридом в ТестКомплите?
Ну и под конец некоторые вопросы, которые зачастую задаются и на которые даются одинаковые по сути ответы.
В.: Есть ли документация по TestComplete на русском языке? И где ее взять?
О.: Есть русскоязычная версия сайта AutomatedQA. Внизу там есть Скачать на русском. Качайте на здоровье!
В.: Мне на работе дали тестовое задание (например, протестировать виндовый Блокнот или Калькулятор), вы можете его сделать за меня? (Конечно, никто обычно не признается в этом, но суть вопроса именно такая)
О.: Ага, можем. И, что самое интересное, обычно даже делаем. Однако имейте ввиду: на этом форуме сидит много людей, в том числе есть ОЧЕНЬ большая вероятность того, что тут сидят ваши будущие работодатели. И естественно они узнают свое задание. И скорее всего вычислят вас. А вот к каким последствиям это приведет - неизвестно. Для примера почитайте вот эти две темы
http://software-test...?showtopic=9399
http://software-test...showtopic=10638
Ну и, конечно, вы должны понимать, что тестовое задание-то вам сделают, но знаний у вас от этого появится немного. А работать за вас никто не будет.
В.: ТестКомплит не видит внутренние свойства/методы приложения/контрола
О.: Скорее всего приложение написано на Visual C++/Builder/Delphi/... Его необходимо скомпилировать как Open Application. Подробнее см. раздел справки Using TestComplete -> Testing with TestComplete -> Open, Connected and Self-Testing Applications -> Open Application
В.: А если нет возможности перекомпилировать приложение как Open, как достучаться до нужных свойств/методов?
О.: Никак. Хотя теоретически можно написать DLLку, которая вам поможет, но сделать это труднее, чем найти возможность перекомпилировать приложение.
В.: Как в ТестКомплит преобразовать что-то в нечто (обычно имеются ввиду типы данных).
О.: Зависит от используемого скриптового языка. Указывайте язык, подскажем
В.: Где взять кряк на ТестКомплит?
О.: ЗДесь такие вопросы не обсуждаются, см. Правила форума
В.: Как работать с файлами Excel?
О.: Тоже достаточно часто встречающийся вопрос. Можно поискать по форуму - обязательно что-то найдете
В.: Где взять документацию по скриптовым языкам ТестКомплита?
О.: Почитайте вот этот ответ. Там сказано про JScript и VBScript. С++/С# Script - это, по сути, тот же JScript, отличия лишь в синтаксисе. Описание DelphiScript есть в хэлпе TestComplete'a
В.: А не могли бы вы толково объяснить когда надо ставить квадратные скобки, а когда круглые ?
О.: Квадратные скобки это синтакс доступа к элементам хэш таблицы в JScript. Все объекты в JScript реализованы в виде подобных таблиц и поэтому вы можете получить доступ к их свойствам и методам как через точку, так и через эти скобки.
Вы пользуетесь скриптовым языком C#Script, который на самом деле является JScript. Вся разница в том, что TestComplete использует скобки вместо точки при генерации скриптов. Это нужно для работы C# Connected приложений, то есть таких приложений, которые позволяют выполнять скрипты TestComplete'а из себя. Так как C# не поддерживает позднее связывание, а это является обязательным условием работы Connected приложений (в скриптах все переменные - варианты, в них может лежать что угодно), то можно использовать эти вот скобки -- их в C# можно перекрыть. А уже в перекрытой операции скобок и реализуется недостающее позднее связывание.
В.: Как проверить, что окно, контрол или процесс существует? Я использую свойство Exists, оно возвращает False, но при этом ждет некоторое время, да еще и кидает в лог сообщение об ошибке...
О.: Для проверки того, что объект существует, есть методы Wait... (WaitProcess, WaitWindow, WaitVCLObject, WaitWinFormsObject, и т.д.). Используйте их, если надо проверить, существует ли объект, или нет. Вот примеры кода:
if ( Sys.WaitProcess("MyProcess", 1000).Exists ) // do something if ( Sys.Process("MyProcess").WaitWindow("wndClass", "wndCaption", -1, 1000)) // do something
В.: У меня не работает Debug, скрипт не останавливается на брекпоинтах. Что делать?
О.: Прежде всего убедитесь, что у вас в ТестКомплите включена опция Script -> Enable Script debugging.
Во-вторых, если вы используете языки JScript, C++Script, C#Script или VBScript, то вам необходимо дополнительно проинсталлировать одну из следующих утилит:
1) Microsoft Visual InterDev
2) Microsoft Script Debugger
Вторая из них бесплатная, ее можно скачать на сайте Майкрософта ( http://www.microsoft.com/downloads )
Если вы пишете на DelphiScript, то никакие дополнительные утилиты вам не нужны.
В.: Один и тот же скрипт работает на одной машине, но не работает на другой. Почему?
О.: Скорее всего на одной машине включен плагин TestComplete 3 Compatibility, а на другой - нет. Если вы не переносили свои скрипты из ТестКомплита версии 3 на текущую - отключите его. В зависимости от того, используется он или нет, ТестКомплит может по-разному именовать объекты, используются другие методы объекта Log, и т.п.
______________________________________________________________________
Ну и еще напоследок.
Если один из предложенных вариантов у вас сработал - сообщите об этом. После вас эта информация может кому-то пригодиться. Также если вы сами нашли решение, то сообщите об этом в ответе на свой пост, а также как вы решили проблему. Многим будет интересно, а некоторые могут сэкономить потом время, пытаясь ответить на вопрос, когда ответ уже известен.