Я создал тест с 1 действием, который содержит n действий. Есть ли способ проверить после выполнения каждого действия n действий результат, если он терпит неудачу или пройдет и продолжит соответственно?UFT. Могу ли я получить результат действия во время запуска?
ответ
Не напрямую.
Аналогичная идея заключалась бы в том, чтобы запросить текущий статус результата выполнения, см. How can I get the run result status according to the current report node?, но это в настоящее время не разрешено.
Вы можете, однако, называть свои действия, и потреблять там возвращают значение, как это:
ActionSucceeded=RunAction ("myTest [Action2]", oneIteration)
If not ActionSucceeded then
' The Action2 call signalled "failure" (false)
End If
Это означает, что Action2
должен возвращать такой результат, как здесь:
ExitActionIteration (false)
Опасайтесь, однако, что необходимо указать инструкции RunAction
usi ng QTP's IDE (Вставка/Вызов к действию ...), что приводит к вызову RunAction
без скобок. Когда вы редактируете это в форме присваивания выше (с помощью скобок), убедитесь, что вы правильно это сделали в первый раз, прежде чем сохранить тест - потому что , если вы сохраните тест, содержащий сломанный вызов RunAction
, QTP дезактивирует вызванный тест и тест завершится неудачно во время выполнения, даже если вы отредактируете скрипт для правильного синтаксиса. Это связано с тем, что QTP сохраняет невидимым образом в скрипте, и если вы сохраняете недействительный вызов действия, этот метаинфо отбрасывается. (Вы можете видеть, когда это произойдет, потому что вызов действия исчезнет с точки зрения испытания потока.)
И: Если вам не хранить RunAction
результат в переменной, но и использовать его непосредственно, как в
If not RunAction ("myTest [Action2]", oneIteration) then
' The Action2 call signalled "failure" (false)
End If
такой же беспорядок возникает: QTP не понимает, что это действительный вызов действия, и он не будет работать, даже если вы отредактируете его обратно в исходную форму.
За исключением подсказки «Остерегайтесь», то же самое верно для LoadAndRunAction
, который вызывает действие во время выполнения. LoadAndRunAction
можно назвать функцией, и если вызываемые действия возвращают значение через ExitActionIteration
, оно возвращает это значение.
Еще один «берегись» намек: ExitActionIteration
действительно требует, чтобы его аргументы должны быть заключены в скобки, даже если это Sub
(или, по крайней мере, называется как Sub
). Я подозреваю, что это связано с тем, что он не является реальным Sub
или Function
, но специальным заявлением, «заделанным» в двигателе MS VBScript каким-то экзотическим способом.
О, я использую QTP, но я думаю, что это то же самое в UFT. – TheBlastOne