在 ROBOT 框架的变量中添加 Json 数据

Adding Json data in a variable in ROBOT framework

我开始致力于使用 ROBOT 框架自动处理 API 请求,并遇到了以下问题。

我有这个JSON数据

{
"password": "123456789",
"username": "test@test.com"
}

我想把上面的内容放在一个变量中并生成一个标记作为响应。

之前我用过下面的

${body}=  create dictionary       username=test@test.com     password=123456789

我收到以下错误响应 HTTPError:415 客户端错误:url 不支持的媒体类型:

有人可以帮我解决这个问题吗?

更新代码

*** Settings *** 
Library String 
Library Collections 
Library RequestsLibrary 

*** Variables *** 
Credentials 
${prod_url} localhost:3000/api 

*** Test Cases *** 
User login and token generation.

Create Session demo ${prod_url} 

${body}= create dictionary username=test@test.com password=123456789 

${header}= create dictionary Content-Type=application/json 

${login}= post on session demo /login data=${body} headers=${header} 

log to console ${login.content} 

以上是完整代码。我需要的是用户名和密码需要采用 JSON 格式,因为我的 API 只接受这些值..

尝试将字典传递给 json 参数而不是 data 参数:

${login}=  post on session    demo    /login    json=${body}  
  headers=${header} 

当您使用 data 时,库按原样传递对象的字符串表示形式 - 而在 python 中,字典的 str 是 {'password': '123456789' ,... - 例如它使用单引号,而不是双引号,这是无效的 json.
将 dict 传递给另一个参数 json,将使其转换为正确的格式。