Существуют различные способы обработки ошибок в QTP. Существует три возможных типа ошибок, с которыми можно столкнуться при работе с QTP. Они —
- Синтаксические ошибки
- Логические ошибки
- Ошибки времени выполнения
Типы ошибок
Синтаксические ошибки
Синтаксические ошибки — это опечатки или фрагмент кода, который не подтверждается грамматикой языка VBscripting. Синтаксические ошибки возникают во время компиляции кода и не могут быть выполнены, пока ошибки не будут исправлены.
Чтобы проверить синтаксис, используйте сочетание клавиш Ctrl + F7, и результат отобразится, как показано ниже. Если окно не отображается, можно перейти к «Вид» → «Ошибки».
Логические ошибки
Если сценарий синтаксически правильный, но дает неожиданные результаты, он называется логической ошибкой. Логическая ошибка обычно не прерывает выполнение, но дает неверные результаты. Логические ошибки могут возникать из-за множества причин, а именно из-за неправильных предположений или неправильного понимания требования и иногда из-за неправильной логики программы (с использованием do-while вместо do-till) или бесконечных циклов.
Одним из способов обнаружения логической ошибки является выполнение экспертных проверок, а также проверка выходного файла / файла результатов QTP, чтобы убедиться, что инструмент выполнил работу, которую он должен был выполнить.
Ошибки RunTime
Как следует из названия, такого рода ошибки происходят во время выполнения. Причиной такого рода ошибок является то, что сценарий, пытающийся что-то выполнить, не может этого сделать, и сценарий обычно останавливается, поскольку он не может продолжить выполнение. Классические примеры ошибок во время выполнения —
- Файл НЕ найден, но скрипт пытается прочитать файл
- Объект НЕ найден, но скрипт пытается воздействовать на этот конкретный объект
- Деление числа на ноль
- Индекс массива вне границ при доступе к элементам массива
Обработка ошибок во время выполнения
Существуют различные способы обработки ошибок в коде.
1. Использование настроек теста — обработку ошибок можно определить настройками теста, перейдя на вкладку «Файл» >> «Настройки» >> «Выполнить», как показано ниже. Мы можем выбрать любую из указанных настроек и нажать «ОК».
2. Использование оператора On Error — оператор «On Error» используется для уведомления модуля VBScript о намерениях обработчика ошибок времени выполнения тестером, а не позволяет модулю VBScript отображать сообщения об ошибках, которые не являются удобными для пользователя.
-
On Error Resume Next — On Error Resume Next информирует модуль VBScript для обработки выполнения следующей строки кода при обнаружении ошибки.
-
При ошибке Перейти к 0 — это помогает тестерам отключить обработку ошибок.
On Error Resume Next — On Error Resume Next информирует модуль VBScript для обработки выполнения следующей строки кода при обнаружении ошибки.
При ошибке Перейти к 0 — это помогает тестерам отключить обработку ошибок.
3. Использование объекта Err — объект ошибки — это встроенный объект в VBScript, который фиксирует номер ошибки времени выполнения и описание ошибки, с помощью которой мы можем легко отладить код.
-
Err.Number — свойство Number возвращает или задает числовое значение, указывающее ошибку. Если значение Err.Number равно 0, то ошибки не произошло.
-
Err.Description — Свойство Description возвращает или задает краткое описание ошибки.
-
Err.Clear — метод Clear сбрасывает объект Err и очищает все предыдущие значения, связанные с ним.
Err.Number — свойство Number возвращает или задает числовое значение, указывающее ошибку. Если значение Err.Number равно 0, то ошибки не произошло.
Err.Description — Свойство Description возвращает или задает краткое описание ошибки.
Err.Clear — метод Clear сбрасывает объект Err и очищает все предыдущие значения, связанные с ним.
пример
'Call the function to Add two Numbers Call Addition(num1,num2) Function Addition(a,b) On error resume next If NOT IsNumeric(a) or IsNumeric(b) Then Print "Error number is " & err.number & " and description is : " & err.description Err.Clear Exit Function End If Addition = a+b 'disables error handling On Error Goto 0 End function
4. Использование оператора Exit — операторы Exit могут использоваться вместе с объектом Err для выхода из теста, действия или итерации на основе значения Err.Number. Давайте рассмотрим каждое из этих утверждений Exit подробно.
-
ExitTest — выход из всего теста QTP, независимо от настроек итерации во время выполнения.
-
ExitAction — выход из текущего действия.
-
ExitActionIteration — Выход из текущей итерации действия.
-
ExitTestIteration — Выход из текущей итерации теста QTP и переход к следующей итерации.
ExitTest — выход из всего теста QTP, независимо от настроек итерации во время выполнения.
ExitAction — выход из текущего действия.
ExitActionIteration — Выход из текущей итерации действия.
ExitTestIteration — Выход из текущей итерации теста QTP и переход к следующей итерации.
5. Сценарии восстановления — при возникновении ошибки сценарии восстановления запускаются на основе определенных условий, и это подробно рассматривается в отдельной главе.
6. Reporter Object — Reporter Object помогает нам сообщать о событии в результаты выполнения. Это помогает нам определить, является ли соответствующее действие / шаг успешным или неудачным.