TestComplete: зависание при попытке использования Process.Terminate()

В одном из проектов мы столкнулись с ситуацией, когда TestComplete зависал при попытке воспользоваться методом Process.Terminate(). В индикаторе висело сообщение Waiting for PROCNAME, а сам TestComplete просто чего-то ждал. Единственное решение — закрыть этот процесс вручную с помощью Task Manager, однако для автоматических запусков такой способ, естественно, не подходит. Решение было достаточно простым: мы воспользовались утилитой taskkill.exe, которая входит в состав Windows.

(more…)

Недостатки TestComplete

У TestComplete, как у любого программного продукта, есть недостатки, которые могут оказаться неприятным сюрпризом, когда вы освоились с продуктом и пытаетесь делать, казалось бы, обычные вещи. В этой статье я рассмотрю такие недостатки. Если вы хотите добавить сюда что-то — пришлите мне письмо на karkadil@gmail.com.

(more…)

TestComplete: полезные ссылки на разные статьи и решения от SmartBear

Сборник полезных ссылок с различными решениями от SmartBear по TestComplete:

Рекомендую всем, работающим с TestComplete, хотя бы просмотреть, чтобы не изобретать велосипед и в случае чего быстро находить готовые решения.

TestComplete: пауза скрипта при выполнении операции Delay

У TestComplete есть недостаток: во время выполнении задержки с помощью метода aqUtils.Delay невозможно нажать на паузу и войти в режим отладки. Точнее нажать-то можно, но в режим отладки мы войдём лишь после того, как истечёт всё время ожидания. Естественно, это не очень удобно, если по какой-то причине у нас в скрипте используются длинные паузы (например, несколько минут). В этой статье мы рассмотрим, как решить эту проблему.

(more…)

Что делать, если TestComplete не распознаёт элементы в приложении?

Иногда на форумах проскакивает вопрос “TestComplete не распознаёт ничего внутри моего приложения” или “Не видны внутренние элементы сложного элемента управления”. TestComplete поддерживает огромное количество различных сред разработки и элементов управления, однако не всегда начинающие (и даже опытные) пользователи могут сходу разобраться, что и как необходимо настраивать для максимально эффективной работы.

В этой статье я попытаюсь дать общий алгоритм решения подобных проблем. (more…)

TestComplete: ожидание окончания активности приложения без использования TestComplete

В этой статье я рассмотрю случай, когда стандартные методы TestComplete WaitProcess и WaitProperty не подходят из-за особенностей архитектуры приложения и необходимо найти другой способ определения, когда тестируемое приложение запустилось и готово к работе.

(more…)

TestComplete: какой код выполняется первым или проблема JScript Global Code

Какой код выполняется первым, когда мы запускаем тест в TestComplete? Новичок скажет, что первой выполнится первая строка теста, более опытный пользователь TestComplete вспомнит про обработчик события OnStartTest, однако в реальности всё может оказаться сложнее. Именно такую сложную ситуацию мы разберём в этой статье.

(more…)

TestComplete: автоматическая пауза скриптов при блокировке компьютера

Иногда бывает так, что во время выполнения тестов компьютер блокируется, в результате чего тесты перестают работать,, так как TestComplete-у нужна активная сессия. В этой статье мы рассмотрим, как в такой ситуации автоматически приостановить выполнение тестов, а затем продолжить их выполнение после разблокировки компьютера.

(more…)

TestComplete: Использование необъявленных переменных в JScript

Язык JScript позволяет использовать необъявленные переменные в скриптах. Безусловно, это плохо, так как при первой же попытке считать значение этой переменной мы получим ошибку “Microsoft JScript runtime error. VAR_NAME is undefined”, где VAR_NAME – имя необъявленной переменной.

Тем не менее, необъявленные переменные можно использовать в цикле FOR. При этом переменная автоматически будет создана и проинициализирована. Есть лишь одна проблема: при выходе из цикла эта переменная не будет уничтожена. (more…)

TestComplete: особенности настроек Stop on Error

TestComplete по умолчанию останавливает выполнение скриптов, если в лог попадает ошибка. Так как такое поведение не всегда бывает удобно, его можно изменить на уровне настроек проекта.
(more…)