Javascript 我想将动态json正文传递给cypress request()函数&;定义有效负载值

Javascript 我想将动态json正文传递给cypress request()函数&;定义有效负载值,javascript,json,automation,cypress,web-api-testing,Javascript,Json,Automation,Cypress,Web Api Testing,我是cypress的新手,所以如果我在这里没有任何意义,我道歉。 我有一个cypress脚本,可以执行POST请求。我的最终目标是检查API验证。API是否响应给定JSON主体的正确错误消息。为此,我希望将具有不同值的相同JSON主体传递给cypress请求函数 我的JSON对象位于不同的js文件中。(channel_query.js) 我在集成文件夹(channel.js)中有我的cypress请求 我的问题是, 如何使JSON对象中的值成为动态的&然后在cypress请求函数中定义它们?因此

我是cypress的新手,所以如果我在这里没有任何意义,我道歉。 我有一个cypress脚本,可以执行POST请求。我的最终目标是检查API验证。API是否响应给定JSON主体的正确错误消息。为此,我希望将具有不同值的相同JSON主体传递给cypress请求函数

我的JSON对象位于不同的js文件中。(channel_query.js)

我在集成文件夹(channel.js)中有我的cypress请求

我的问题是,

如何使JSON对象中的值成为动态的&然后在cypress请求函数中定义它们?因此,我可以传递相同的JSON来检查不同的验证

@格雷布·巴穆托夫先生


非常感谢你们的帮助

最简单的方法可能是在JSON文件中放置一个通道数组,并使测试数据驱动

export const channelData = [
  {
    "name": "channe Name",
    ... // plus other properties
  },
  {
    "name": "name2",
    ... // plus other properties
  },
]
测试

import { channelData } from '../queries/channel_query';

describe('Test all channels', () => {

  channelData.forEach((channel, index) => {

    it(`Testing channel "${channel.name}"`, function() {
      cy.request({
        method: 'POST',
        url: '{my URL}',
        body: channel,
        headers: headers
      }).then((response) => {
        expect(response.status).to.eq(201)
        expect(response.body.name).to.eq(channel.name)
      })
    }) 
  })

最简单的方法可能是在JSON文件中放置一个通道数组,并使测试数据驱动

export const channelData = [
  {
    "name": "channe Name",
    ... // plus other properties
  },
  {
    "name": "name2",
    ... // plus other properties
  },
]
测试

import { channelData } from '../queries/channel_query';

describe('Test all channels', () => {

  channelData.forEach((channel, index) => {

    it(`Testing channel "${channel.name}"`, function() {
      cy.request({
        method: 'POST',
        url: '{my URL}',
        body: channel,
        headers: headers
      }).then((response) => {
        expect(response.status).to.eq(201)
        expect(response.body.name).to.eq(channel.name)
      })
    }) 
  })

我的身体有点大。因此,对于这种方法,我必须维护大型JSON对象。那么,有没有一种方法可以导入每个JSON对象&在将其附加到cy.request函数之前在测试中添加一些键值对?。在将json对象添加到channel.js文件中的请求之前,基本上要修改它吗@我的身体有点大。因此,对于这种方法,我必须维护大型JSON对象。那么,有没有一种方法可以导入每个JSON对象&在将其附加到cy.request函数之前在测试中添加一些键值对?。在将json对象添加到channel.js文件中的请求之前,基本上要修改它吗@史蒂夫十二生肖