python - 如何将响应值保存到 Tavern 中的变量?
问题描述
我正在Tavern
使用python3
. Tavern
是基于预定义的yaml
文件来测试服务。当向客户端响应自动生成的 id 值时,我有一个后端 API。如何测试自动生成的响应?以及如何保存对变量的响应并将其用于其他测试?
test_name: Test phonebook service
stages:
- name: Make sure we can create new contact
request:
url: http://localhost:8080/v2/contact
method: POST
json:
username: testUser
first_name: first
last_name: last
email: test@email.com
password: "123456"
phone: "111111"
response:
status_code: 200
body:
contact_id: # This is auto generated id from backend
如上例,它向服务器发送一个 POST 请求,并期望在响应中包含 200 个状态码。但我不知道如何检查contact_id
哪个是后端生成的整数。另外,我想将contact_id
变量保存为其他 API 的输入。
解决方案
它可以通过save
在响应中使用来解决,例如:
response:
status_code: 200
headers:
content-type: application/json
save:
body:
contact_id: id
对于tavern >= 1.0,使用json
代替body
:
response:
status_code: 200
headers:
content-type: application/json
save:
json:
contact_id: id
它将响应 json 对象中的 id 值保存到一个名为contact_id
. 然后,您可以通过 引用此变量"{contact_id}"
,或者"{contact_id:d}"
如果您想将变量类型转换为“十进制整数”。
推荐阅读
- python - 在 Flask 工作人员之间共享可变数据
- scala - 如何通过火花映射器传递数据而不在参数类中建模?
- javascript - 另存为“网页,完成” javascript 失败
- java - 如何更改 Play 类中的背景颜色?
- python - 在 .csv 文件的字符串列中标记字符串
- php - 如何将媒体:缩略图放入 RSS 提要
- javascript - 从高阶组件返回的组件是否称为闭包?
- c# - SQL查询返回双数据
- javascript - window.print() 和 window.close() 函数 Safari IOS 关闭窗口而不等待打印预览
- javascript - 如何退出 Google 表格中的宏?