2.5 Отладка скрипта (debug)

Назад Содержание Дальше

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

 

Для осуществления отладки скрипта используется специальный режим – режим Debug. В этом режиме нельзя редактировать текст скрипта, что не очень удобно, поскольку в случае обнаружения причины некорректной работы скрипта в одном месте приводит к необходимости выхода из данного режима для внесения корректив, после чего нужно все по-новой сделать для новой проблемы (если их несколько). Тем не менее обходные пути все равно имеются.

 

Итак, Debug режим можно включить следующими способами:

  • Выбираем меню Run > Testcase; выбираем тесткейс для отладки и нажимаем кнопку Debug
  • Выбираем меню Run > Debug или комбинацию клавиш Ctrl-F9

Разница между этими способами активации режима заключается в том, что в первом случае режим отладки включится для выбранного тесткейса (то есть другой тесткейс запустить не получится). Во втором случае запускаться будет либо функция main или все тесткейсы. То есть 2-й вариант активирует режим отладки для запуска всего файла. В этом проявляется основное отличие.

 

Теперь перейдем к подготовке скрипта к отладке. Первым делом нужно поставить точки остановки (breakpoints) в проблемных местах, требующих детального рассмотрения отладчиком. Делается это нажатием клавиши F5 напротив нужной строчки кода или выбором меню Breakpoint > Toggle. Аналогичным способом точка остановки и удаляется. Также для этих целей можно выбрать пунт меню Breakpoint > Delete. В появившемся диалоге выдается список всех точек остановки, среди которых можно выбрать нужную. Если нужно удалить все точки остановки, то для этого удобно использовать Breakpoint > Delete All. Вызов этого пункта требует только подтверждения очистки всех точек остановки. Если нужно установить точку остановки в начало некоторого модуля (тесткейса, функции, метода) в некотором файле (не обязательно в том, который будет запускаться) то можно воспользоваться меню Breakpoint > Add . В появившемся диалоге можно выбрать файл и модуль, в котором поставить точку остановки.

 

Теперь рассмотрим непосредственно отладку во время работы скрипта. Допустим скрипт выполнялся до тех пор, пока не была достигнута точка остановки. Что мы можем разведать, какую информацию получить?

  • Значения локальных переменных. Окно отображения локальных переменных вызывается меню View > Local Variables. В этом окне перечислены все переменные, определенные в пределах локального модуля, на котором было приостановлено выполнение скрипта. В этом окне вверху есть поле для установки значения. Достаточно выбрать нужную переменную и ввести требуемое значение в данное поле.
  • Значения внешних переменных. Окно отображения внешних переменных вызывается меню View > Global Variables. В этом окне перечислены все переменные, определенные вне модулей. По аналогии с окном отображения внешних переменных, имеется поле для ввода значений данных переменных.
  • Значения выражений. Как правило, переменные используются не поодиночке, а в определенных выражениях (зачастую весьма заковыристых). Соответственно многие некорректности могут быть связаны с неправильно построенным выражением. Чтобы это проверить, желательно знать не только текущие значения переменных, но и значение некоторого выражения использующего их. Для этих целей используется окно Expression View > Expression. В этом окне есть поле для ввода выражения и секция для вывода результата. Выражение использует локальные переменные того блока, в котором произошла остановка, а также внешние переменные. То есть сохраняется текущая область видимости.
  • Подключаемые файлы. Через меню View > Module мы можем выбрать и активировать один из файлов, подключаемых отлаживаемым скриптом.
  • Стэк вызовов. Позволяет отобразить все функции, которые выполняются в данный момент в порядке вложенности.
  • Transcript. Вызывается меню View > Transcript. По большому счету это такой же вывод результатов, что и в стандартном .res файле. Исключением является возможность выполнить определенные действия. В окне Transcript внизу есть поле, в которое можно ввести выражение, которое тут же и выполняется. Фактически это выражение – очередная строчка скрипта, только ввести ее можно не изменяя сам файл скрипта. Данная возможность вполне удобна для корректировки значений переменных, для выполнения дополнительных действий, для вызовов недостающих функций и т.п.

Все эти средства позволяют осуществлять просмотр/корректировку отладочной информации.

 

Безусловно, есть стандартные средства пошагового выполнения. В частности выполнение следующей команды (Run > Step Over F8) или следующей строки кода (Run > Step Into или клавиша F7), выполнение команд до курсора (Run > Run to Cursor).

 

Прекращение выполнения скрипта в режиме отладки осуществляется выбором пункта меню Debug > Abort. При этом выхода из режима отладки не происходит. Выбор пункта меню Debug > Exit остановит все отладочные процессы и осуществит выход из режима отладки вообще.

 

Вот основные возможности отладки скриптов в SilkTest.


Назад Содержание Дальше