如何将响应值保存到Tavern中的变量?

时间:2019-08-26 00:41:55

标签: python tavern

我正在使用Tavernpython3中测试我的Web服务器。 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的输入。

1 个答案:

答案 0 :(得分:0)

可以通过在响应中使用save来解决此问题,例如:

response:
     status_code: 200
     headers:
      content-type: application/json
     save:
      body:
        contact_id: id

它将把响应json对象中的id的值保存到名为contact_id的变量中。然后,您可以通过"{contact_id:d}"引用此变量。