Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

RobotFramework - Continue on failure


(rmerkushin) #1

Всем доброго времени суток!

Для некоторых тестов есть необходимость продолжать выполнение теста после failure при выполнении любого keyword’а в рамках одного test case.

Использование keyword’а Run Keyword And Continue On Failure не очень удобно. В “интернетах” нашел способ написания wrapper’а для keyword’ов, но это тоже не очень удобно.

Есть у кого нибудь какие-то идеи по этому поводу?

P.S.: Можно конечно разбить тест на много маленьких test case, но это будет выглядеть не очень красиво. Разве что есть какой нибудь способ группровать test case’ы в рамках одного test suite в еще какую то группу?


(5am) #2

правильнее наверно будет, изначально - не валить тесты на фейл на шагах, при не прохождении которого, тест может продолжать работать. а просто писать например о том что шаг не прошел, в лог/результат.

есть еще так называемые мягкие ассерты, но не знаю есть ли они в RobotFramework


(Dmitriy Zverev) #3

Я думаю, Вы прочитали именно этот пост.

В нём руководитель команды разработки Robot Framework пишет:

As Janne wrote, there is no simple way to do this currently. In
addition to the workarounds he proposed, you can also create your own
user keyword wrappers, for example, like this:

*** Keywords ***
Should Be Equal [Arguments] @{args}
Run Keyword And Continue On Failure BuiltIn.Should Be Equal @{args}

Because user keywords have higher priority that library keywords, the
above keyword would hide the original Should Be Equal in BuiltIn
library. That’s also why the keyword itself needs to use
BuiltIn.Should Be Equal to use the BuiltIn keyword. If you don’t
want to hide the original keywords, you can obviously name your
wrappers e.g. like Should Be Equal With Continue.

Having some easier way to enable the continue on failure more would be
nice. I haven’t figured out any good syntax for that, though, but if
others have ideas we can continue brainstorming here.

Cheers,
.peke

Поэтому других вариантов нет.

Имхо, Вы хотите странного.


(rmerkushin) #4

Да, имнно этот пост я читал. Но я не вижу в моей хотелке ничего странного. К примеру мне нужно проверить текст кнопки и что она доступна. Да эти проверки можно засунуть в разные test case. Но повторюсь, это будет выглядеть не очень красиво, если нет возможности сгруппировать эти case’ы в один в рамках одного test suit’а, т.к. создавать кучу test suite в рамках одного тест домена будет только путать, т.к. в итоге их будет очень много. Мне приходится автоматизировать по готовым тест кейсам которые подгонять под автоматизацию нет времени к сожалению.


(Dmitriy Zverev) #5

В этой фразе странно слово “любого”. Оно нивелирует смысл теста, если все кейворды теста будут всегда passed.

Псевдокод:

BuiltIn.Wait Until Keyword Succeeds    30 seconds    1 second    Check avaible my button
Get text of my button

Также в роботе есть возможность выполнить отдельный кейворд и обработать его exception отдельно, продолжая выполнение теста.

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