Robot Framework中带expected_status的POST请求报错:关键字名称不能为空
解决Robot Framework POST请求添加expected_status报错“Keyword name cannot be empty”的问题
问题原因
你使用的POST On Session关键字本身不支持expected_status参数,直接把这个参数加到请求关键字里,导致Robot Framework解析参数时出现语法错误,触发“Keyword name cannot be empty”报错。
修正方案
发送请求后,单独断言响应的状态码即可,同时注意要把创建的请求头传递给POST On Session关键字:
InvalidPassword Test [Tags] InvalidPassword Create Session InvalidPassword ${url_api}/${end_point_login} Log To Console ${url_api}/${end_point_login} ${body}= Create Dictionary mobile=***** password=****** key=1 ${header}= Create Dictionary Accept=application/json # 发送POST请求,传递headers参数 ${response}= POST On Session InvalidPassword ${url_api}/${end_point_login} data=${body} headers=${header} # 单独断言响应状态码是否符合预期 Should Be Equal ${response.status_code} 422 预期状态码为422,实际得到${response.status_code}
额外说明
POST On Session的合法参数包括session_id、url、data、params、headers等,没有expected_status,状态码断言需要单独用关键字实现- 原代码中创建了请求头但未传递给请求关键字,这会导致请求头不生效,修正时已补上
headers=${header}参数
内容的提问来源于stack exchange,提问作者marysh
相关产品推荐
相关产品推荐

