UiPath: Вычитка asset-ов при недоступном Orchestrator-е

Темплейт Robotic Enterprise Framework в UiPath по умолчанию настроен так, чтобы продолжать выполнение процесса, если Оркестратор недоступен. При этом в лог отправляются предупреждения о каждом asset-e, который UiPath не смог вычитать. Это хорошо только в том случае, если у вас есть значения всех переменных в локальном файле Config.xlsx, но если все данные хранятся в asset-ах, то такой подход может привести к неприятным последствиям.

(more…)

UiPath: упрощённый вид конструкции IF

Конструкция If-Then-Else в UiPath, как и большинство других конструкций (активити), выглядит довольно громоздко, занимая на экране много места. Конечно, её можно свернуть, однако в этом случае мы не будем видеть её содержимого при просмотре “кода”, а значит придётся добавлять комментарий, описывающий то, что происходит внутри. Однако есть ещё один способ, позволяющий сделать конструкцию весьма компактной и довольно легко читаемой.

(more…)

Что такое 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…)