Есть ли какой-нибудь способ, я могу запустить ключевое слово, проверив условие и проигнорировав ошибку в robot framework

#python #python-3.x #robotframework

#python #python-3.x #robotframework

Вопрос:

У меня есть список переменных

 ${Var1}=     Create List    item1    item2    item3
 

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

Итак, когда у нас есть item2, мне нужно вызвать «Проверить элементы». Если по какой-либо причине, когда мы вызываем «Check Items», ключевое слово завершается ошибкой, выполнение НЕ должно останавливаться, пока не будут повторены все элементы в списке.Для других я буду вызывать ключевое слово «Check node»

 *** Keywords ***
Check Items
    [Arguments]    ${F}
    Should be Equal     1      ${F}

Check node
    log    ${sample}
 

Я проверил с Run Keyword If помощью ключевого слова, которое поможет в проверке условия, но выполнение останавливается, когда ключевое слово завершается ошибкой.
Run Keyword And Ignore Error С этим я не могу проверить условие.
Пожалуйста, помогите

Ответ №1:

Я думаю, что ключевое слово, которое вы ищете, — это ключевое слово Run и продолжить при сбое, это вернет сбой, если условие не выполнено, но выполнение будет продолжено.

Ключевое слово Run Ключевое слово и ошибка игнорирования всегда будут передаваться, но оно также возвращает статус. Вы можете сохранить этот статус в var, а затем оценить его впоследствии. Что-то вроде этого:

 Set Test Variable    ${var}    ${2}
    ${output}=    Run Keyword And Ignore Error     Should Be Equal    ${var}    ${0}
 

На выходе будет сохранено (‘FAIL’, ‘2! = 0’)

Комментарии:

1. Я отредактировал ваш ответ и вставил ссылку. Большие URL-адреса делают ответы менее читабельными, поэтому, пожалуйста, попробуйте их встроить. 🙂

Ответ №2:

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

Вы можете настроить список в таблице переменных our в наборе или тестовой настройке, это не имеет значения.

Вот полный пример, который завершится неудачей item1 , и после этого он все равно будет запущен и будет успешным для остальных элементов в списке.

 *** Variables ***
@{Var1}    item1    item2    item3    item4    item5

*** Test Cases ***
Test 1
    [Template]    Test Template
    FOR    ${element}    IN    @{Var1}
        ${element}
    END
    
*** Keywords ***
Test Template
    [Arguments]    ${item}
    Run Keyword If    '${item}' == 'item1'    Check Items    ${item}
    ...    ELSE    Check node

Check Items
    [Arguments]    ${F}
    Should be Equal     1      ${F}

Check node
    log    sample
 

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

введите описание изображения здесь

Для получения дополнительной информации прочитайте главу «Тестовый шаблон» Руководства пользователя.