Введение
Отладка — это этап разработки алгоритма, на котором можно обнаружить, локализовать и устранить ошибки. Studio Pro имеет собственный отладчик, позволяющий наблюдать за выполнением алгоритма, останавливать и перезапускать его.
Отладка алгоритма в Studio Pro
Отладку в Studio Pro необходимо использовать в тех случаях, когда требуется выяснить, на каком именно этапе работы алгоритма возникает ошибка. После того, как ошибка локализована — можно понять причины ее возникновения и устранить их. Ниже мы рассмотрим возможности режима отладки и покажем их на примере.
Действия и понятия
Точка останова
Точка останова — это основной инструмент по работе с режимом отладки. При установке точки останова на каком-то действии, все предыдущие действия будут выполнены, выполнение алгоритма остановится перед обозначенным точкой останова действием. Тем самым, вы сможете зафиксировать текущее состояние системы и проанализировать работоспособность алгоритма. Для установки точки останова необходимо навести курсор на нужный порт входа нужного действия и нажать левую кнопку мыши.
Также точку останова можно добавить или убрать, нажав на нужное действие на рабочей области правой кнопкой мыши.
Еще один способ добавить точку останова — использовать опцию «Переключить точку останова» во вкладке «Отладка». Перед этим необходимо выделить блок действия, куда нужно поставить добавить точку останова.
После этого порт выделится зеленым кругом, обозначая точку останова.
Удалить точку останова можно обратными действиями: нажать левой кнопкой мыши на порт, где точка установлена, нажать правой кнопкой мыши на блок действия и выбрать опцию «Убрать точку останова» или воспользоваться опцией «Переключить точку останова». С помощью опции «Удалить все точки останова из файла» во вкладке «Отладка» можно убрать все точки останова из алгоритма.
Работа с отладкой
После установки хотя бы одной точки останова на верхней панели инструментов появляется действие «Запустить режим отладки». Запустившись в режиме отладки, бот выполнит все действия до точки останова.
После этого, на верхней панели появятся инструменты по работе с отладкой.
Эти символы (слева направо) обозначают:
- «Возобновить» — продолжить выполнение алгоритма в режиме отладки до следующей точки останова. Если точек останова больше нет — алгоритм выполнится до конца и выполнение бота в режиме отладки завершится.
- «Шаг с обходом» — выполнить шаг с обходом.
- «Шаг с заходом» — выполнить шаг с заходом.
- «Шаг с выходом» — выполнить шаг с выходом.
- «Остановить» — остановить выполнение алгоритма в режиме отладки. В этом случае никакие дальнейшие действия выполнены не будут.
Режим отладки можно запустить и непосредственно во время выполнения алгоритма. Это удобно при выполнении большого алгоритма — вам не придется запускать весь алгоритм заново в режиме отладки, вы можете просто поставить точку останова у какого-то действия (конечно, если бот еще не начал его выполнять). Таким образом, дойдя до точки останова, выполнение алгоритма остановится и запустится режим отладки.
Действия «Возобновить» и «Остановить» применяются для возобновления или остановки режима отладки в целом. Действия «Шаг с обходом», «Шаг с заходом» и «Шаг с выходом» применяются непосредственно к блокам действий. Они применимы как к простым действиям, так и к действию Подпрограмма. Рассмотрим их подробнее:
Шаг с заходом
При использовании «Шага с заходом» с любым действием, кроме «Подпрограммы», бот просто выполнит это действие. В случае с подпрограммой — шаг с заходом откроет ее и алгоритм остановится, после чего вы сможете продолжить отладку действий подпрограммы всеми доступными инструментами отладки.
Шаг с обходом
«Шаг с обходом» так же, как и «Шаг с заходом» просто выполнит любое действие, кроме «Подпрограммы». В случае с подпрограммой — «Шаг с обходом» выполнит ее полностью, не останавливаясь на каждом действии и не открывая подпрограмму.
Шаг с выходом
«Шаг с выходом» выполняет действие и заканчивает выполнение алгоритма в режиме отладки в текущей подпрограмме. Таким образом, если вы используете «Шаг с выходом» внутри подпрограммы, которая больше нигде не вызывается, то после использования этого шага бот остановится. Если же это действие выполняется не в основной подпрограмме, то после нажатия на «Шаг с выходом» вы выйдете из дочерней подпрограммы и сможете продолжить работать с режимом отладки в основной подпрограмме.
По умолчанию Studio Pro будет каждый раз сворачиваться при выполнении какого-либо действия в режиме отладки, это необходимо для проверки работы бота с интерфейсами (сайтов или приложений). Если же вы отлаживаете алгоритм, не требующий работу с интерфейсами, то сворачивание Studio Pro можно отключить для уменьшения времени работы алгоритма. Сделать это можно в меню «Настройки» → «Выполнение» → «Настройки отладки» → «Не сворачивать Studio Pro в режиме отладки».
Пример отладки
Рассмотрим пример отладки алгоритма. Обратите внимание, что в примере ниже мы показываем только принцип работы с отладкой, ошибок в этом алгоритме нет. В реальности могут возникать самые разные ошибки, а обработка алгоритма всегда будет иметь индивидуальные особенности.
Для простоты демонстрации возьмем алгоритм, который выводит сообщения в консоль Studio Pro.
Поставим точку останова на действие «Подпрограмма Вывод сообщений» и запустим алгоритм в режиме отладки.
Будут выполнены два действия до точки останова — в консоли мы увидим два лога.
Предположим, что на данном этапе нас все устраивает. Далее мы хотим продолжить с действиями «Подпрограммы». Оставим точку останова на прежнем месте и выполним «Шаг с заходом».
Так мы попадем внутрь подпрограммы, но находящиеся в ней действия выполнены не будут. Поставим точку останова на второе действие и нажмем «Возобновить».
Так будет выполнено действие до точки останова.
Далее выполним «Шаг с выходом» — чтобы вернуться в основную подпрограмму.
Последнее действие подпрограммы будет выполнено, а мы вернемся в основную подпрограмму. Обратите внимание, что последнее действие в алгоритме еще не выполнено, мы по-прежнему находимся в режиме отладки.
Теперь можно вновь нажать «Возобновить», чтобы закончить выполнение алгоритма последним действием после «Подпрограммы».
Обратите внимание на некоторые особенности работы с переменными:
- Если в вашем алгоритме присутствует действие Задать значение переменной, то значение переменной будет задано только после выполнения этого действия в режиме отладки.
- Переменные будут сохранены после создания. Если вам необходимо, чтобы при повторении действия при отладке переменные задавались каждый раз заново, используйте опцию «Очистить до выполнения workflow».