Cypress-从json响应正文中获取值 [英] Cypress - get value from json response body

查看:23
本文介绍了Cypress-从json响应正文中获取值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Cypress进行一些API测试,但我很难访问JSON响应正文中的值;但是,我可以对正文执行断言,这表明它正在正确地接收它。

下面,我尝试为JSON主体(响应.Body)赋值,然后从中获取‘id’的值:

describe('Creating a board', () => {    
it('should create a board', () => {
    cy.request({
    method : 'POST',
    url:`${requestUrl}/boards/`, 
    qs: {
      name : "test-board",
      token : token,
      key : key
    }
    }).then((response) => {
      expect(response).property('status').to.equal(200)
      expect(response.body).property('id').to.not.be.oneOf([null, ""])
      const body = (response.body)
      boardId = body['id']
    })
})

我已经搜索了很多次,但找不到具体的方法。如有任何帮助,我们将不胜感激...

推荐答案

我通过承诺设法解决了这个问题;

进一步阅读,我发现我正在执行的then函数是同步的(我是JS新手,请不要伤害我)。

我将then函数重构为以下内容:

.then((response) => {
        return new Promise(resolve => {        
            expect(response).property('status').to.equal(200)
            expect(response.body).property('id').to.not.be.oneOf([null, ""])
            const respBody = response.body;
            boardId = respBody['id']
            resolve(boardId)
        })

这可能不是完全正确或最佳的做法,但它适用于我的演示

这篇关于Cypress-从json响应正文中获取值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆