#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
Вот как выглядит результат. Таким образом, все итерации по-прежнему будут рассматриваться как один тестовый пример. Если одна итерация завершается неудачно, тестовый пример будет помечен как неудачный, но вы можете проверить все остальные итерации, которые будут выполняться во всех случаях.
Для получения дополнительной информации прочитайте главу «Тестовый шаблон» Руководства пользователя.