Я создаю набор тестов дыма для серии API, используя RobotFramework и RobotRequestsLibrary. Это мой первый раз, используя RobotFramework. Пытаясь очистить код и сделать его более удобным, я решил попробовать использовать ключевые слова, чтобы удалить все случайные данные.RobotFramework Переменная ключевого слова, не заданная
Например, вот два теста, которые я хочу, чтобы очистить:
*** Variables ***
${sint} http://int.somecoolwebsite.com
*** Test Cases ***
Retrieve Store Info By Code Should Return Successful
[Tags] get
Create Session data-int ${sint}
${resp}= Get Request int /store/1234
Should Be Equal As Strings ${resp.status_code} 200
Retrieve All Store Info Should Return Successful
[Tags] get
Create Session data-int ${sint}
${resp}= Get Request int /stores
Should Be Equal As Strings ${resp.status_code} 200
И моя попытка, используя Ключевые слова:
*** Variables ***
${sint} http://int.somecoolwebsite.com
*** Keywords ***
Make ${call} Call To ${end_point}
Create Session ${sint} ${sint}
${resp} = Get Request ${sint} ${end_point}
${status} = ${resp.status_code}
Set Test Variable ${status}
Status Should Be ${required_status}
Should Be Equal ${status} ${required_status}
*** Test Cases ***
Retrieve Store Info By Code Should Return Successful
[Tags] get
Make Get Call To /store/1234
Status Should Be 200
Retrieve All Store Info Should Return Successful
[Tags] get
Make Get Call To /stores
Status Should Be 200
Когда я запускаю тестовые случаи с ключевыми словами, которые я получаю следующее сообщение об ошибке:
Keyword name cannot be empty.
Я пытался отладить выдать и поставить точку останова в назначении ключевого слова, и я замечаю, что ${resp}
получает назначение и ${resp.status_code}
также работает. Но когда я пытаюсь назначить {$status}= ${resp.status_code}
, возникает ошибка.
Я попытался изменить способы переназначения переменной с помощью встроенной переменной Set, но не повезло. Не можете ли вы присвоить переменные таким образом в ключевых словах? Любое понимание будет полезно. Благодаря!!
Извините, у меня нет времени, чтобы вникать в это, но из краткого прочитанного, стиль, управляемый данными, может работать лучше для того, что вы пытаетесь do - http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#data-driven-style – shicky
Код в вашем вопросе не дает ошибки, о которой вы говорите. Этот код отлично работает для меня. –
@BryanOakley вы правы. Я добавил объявление «Установить переменную» при написании кода здесь. Без этого он дает ошибку. Но в тестовых случаях мне не нужно использовать эту декларацию. – Ptrkcon