2010-08-17 2 views
2

Есть несколько сценариев, которые я могу ожидать во время моего выполнения, я хотел бы понять лучшие практики обработки таких ошибок времени выполнения.Сценарии восстановления или обрабатывать большинство из них в самих функциях

Еще один вопрос: стоит ли загружать все сценарии восстановления во время загрузки функций или обрабатывать исключение в самих функциях.

Просьба предложить лучшие практики и почему вы предлагаете нам идти на это.

ответ

2

В моем опыте с QTP лучше всего обрабатывать известные сценарии исключений непосредственно в ваших функциях и оставить механизм обработки исключений для неизвестных или неожиданных исключений. Сценарии восстановления используют дополнительные ресурсы компьютера и могут замедлить ваши тесты, поэтому используйте их только в ограниченном режиме для поиска действительно исключительных сценариев.

2

Из-за присвоения имен, установленных в QTP, новички часто путают исключения и события GUI.
Поистине, всплывающее окно не является «исключением», даже если оно «сбивает» выполнение скрипта.

Для поиска и восстановления после неудачных операций я рекомендую использовать операторы «On Error Resume Next ... On Error GoTo 0».

Для обнаружения событий GUI, которые могут произойти или не произойти, вы можете использовать сценарии восстановления QTP, НО, как упоминал Том E, каждый активированный обработчик восстановления использует дополнительные ресурсы и влияет на производительность QTP.
Лучший способ использовать только те из них, которые вам понадобятся, и оставить все остальное дезактивированным.

Несколько примеров.

исключения 1.Catching

Таким образом, если у вас есть RegEx синтаксических ошибок, выполнение не остановится.

Set objRegEx = New RegExp 
objRegEx.Pattern = strRegEx 
On Error Resume Next 
boolRC = objRegEx.Test(strSrc) 
intRC = Err.Number 
On Error GoTo 0 
If intRC <> 0 Then boolRC = False 
Set objRegEx = Nothing 

2.Dynamically Обработчики операционной восстановления

intPos = Recovery.GetScenarioPosition("API\Exceptions\AppExceptions.qrs", "Recovery_on_Error1") 
''# You can store intPos (position in QTP's qrs file) for all handlers during initialization 

Recovery.SetScenarioStatus intPos, boolState ''# Parameterize boolState as True or False 
''# Enable or disable handlers this way. Disabled handler does not consume QTP resources. 

Спасибо,
Albert Гареев
http://automation-beyond.com/

Смежные вопросы