Что такое UiPath: краткий обзор инструмента

UiPath — это инструмент для эмуляции действий пользователя с различными приложениями. При этом программирование действий в UiPath делается не с помощью написания кода, а в виде создания своеобразных блок-схем. Кроме того, UiPath позиционируется не как инструмент для автоматизации тестирования, а как средство для автоматизации бизнес-процессов, из чего следуют сразу 2 важных отличия от классической автоматизации:

(more…)

UiPath: исключения при выполнении Invoke Code

Если в UiPath вы используете блок Invoke Code и в этом коде возникает исключение, то текст исключения всегда будет одинаковым: «Invoke code: Exception has been thrown by the target of an invocation.». Это нам ни о чём не говорит, поэтому необходимо добраться до изначального исключения, чтобы понять, какая именно ошибка произошла. Для этого мы воспользуемся свойством InnerException нашего исключения.

(more…)

UiPath: Git и файлы .xaml и .json

По какой-то необъяснимой причине UiPath считает, что у него эксклюзивные права на файлы .xaml и .json. Поэтому при открытии проекта он прописывает в файл \.git\info\attributes две строчки:

*.json binary
*.xaml binary

(more…)

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…)