【问题标题】:Adding Json data in a variable in ROBOT framework在 ROBOT 框架的变量中添加 Json 数据
【发布时间】:2021-11-10 11:36:19
【问题描述】:

我开始使用 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 只接受这些值..

【问题讨论】:

  • 响应是因为请求的格式,很可能是content-type header,它的值很可能需要设置为“application/json”。在您提出请求的地方添加代码;并确保服务支持哪些类型。

标签: testing robotframework


【解决方案1】:

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

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

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

【讨论】:

  • 解决部分问题!!谢谢......如果我被卡住了,我会再次发表评论
猜你喜欢
  • 2021-09-28
  • 1970-01-01
  • 1970-01-01
  • 2019-03-20
  • 2022-11-11
  • 2020-10-27
  • 2012-09-16
  • 2021-11-21
  • 1970-01-01
相关资源
最近更新 更多