RobotFramework关键字变量未设置



我正在使用RobotFramework和RobotRequestSlibrary为一系列API创建一个烟雾测试套件。这是我第一次使用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}时,错误会丢弃。

我尝试使用内置设置变量重新分配变量的方法,但没有任何运气。您不能在关键字中以这种方式分配变量吗?任何洞察力都会有所帮助。谢谢!

即使问题中的代码仍然没有给出您说的错误,因为还有其他错误阻止其运行,但问题是:

${status} =  ${resp.status_code}

这不是分配变量的正确方法。您必须使用设置的变量关键字(或其他一些" SET"关键字),例如:

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

您获得错误的原因是每个测试或关键字步骤都必须具有关键字。您只有可变名称,没有关键字,因此您会收到错误Keyword name cannot be empty.

最新更新