2016-11-23 13 views
2

Я создаю набор тестов дыма для серии 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, но не повезло. Не можете ли вы присвоить переменные таким образом в ключевых словах? Любое понимание будет полезно. Благодаря!!

+0

Извините, у меня нет времени, чтобы вникать в это, но из краткого прочитанного, стиль, управляемый данными, может работать лучше для того, что вы пытаетесь do - http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#data-driven-style – shicky

+0

Код в вашем вопросе не дает ошибки, о которой вы говорите. Этот код отлично работает для меня. –

+0

@BryanOakley вы правы. Я добавил объявление «Установить переменную» при написании кода здесь. Без этого он дает ошибку. Но в тестовых случаях мне не нужно использовать эту декларацию. – Ptrkcon

ответ

1

Хотя код в вопросе по-прежнему не дает ошибку вы сказать, что это делает, потому что есть другие ошибки, которые мешают ему работать на всех, проблема эта линия:

${status} = ${resp.status_code} 

То есть а не правильный способ назначения переменных. Вы должны использовать Set Variable ключевое слово (или некоторые другие «Набор» ключевых слов), например так:

${status}= Set Variable ${resp.status_code} 

Причина вы получаете ошибки вы делаете то, что каждый тест или ключевое слово шаг должен иметь ключевое слово. У вас есть только имена переменных и нет ключевого слова, поэтому вы получаете ошибку. Keyword name cannot be empty.

 Смежные вопросы

  • Нет связанных вопросов^_^