如何在环境变量中保存 API 响应正文或 属性 或 json 以便稍后在赛普拉斯的其他请求中使用它
How can I save API response body or property in an environment variable or json to use it later in other requests in Cypress
API 在本地运行(将来会在 circleCI 容器中运行)所以我不需要存根响应,只需要真实的请求和真实的响应。
当我发送 POST 请求时,它会创建一个事件和 returns 包含唯一 ID 的大响应正文。
我需要将该唯一 ID 存储在某处(作为 env 变量,json 或最坏情况下的常量),以便我可以稍后在更新请求中访问和使用它,最后在删除请求中从中删除该事件系统.
有办法吗?
有一种方法可以从数据库中检索该 ID,但我真的不想那样做
您可以将唯一 ID 保存在夹具文件中,然后更新或从中读取:
cy.request({
method: 'POST',
url: '/someurl',
}).then((resp) => {
// Expect success response
expect(resp.status).to.eq(200)
//Write Unique ID to a fixture file
cy.writeFile('cypress/fixtures/testdata.json', {
"id": resp.uniqueID
})
})
如果你想更新唯一ID的值,你可以这样做:
cy.readFile("cypress/fixtures/testdata.json", (err, data) => {
if (err) {
return console.error(err);
};
}).then((data) => {
data.id = newUniqueID //save the New Value of Unique ID
cy.writeFile("cypress/fixtures/testdata.json", JSON.stringify(data)) //Write it to the fixtures file
})
API 在本地运行(将来会在 circleCI 容器中运行)所以我不需要存根响应,只需要真实的请求和真实的响应。
当我发送 POST 请求时,它会创建一个事件和 returns 包含唯一 ID 的大响应正文。 我需要将该唯一 ID 存储在某处(作为 env 变量,json 或最坏情况下的常量),以便我可以稍后在更新请求中访问和使用它,最后在删除请求中从中删除该事件系统.
有办法吗?
有一种方法可以从数据库中检索该 ID,但我真的不想那样做
您可以将唯一 ID 保存在夹具文件中,然后更新或从中读取:
cy.request({
method: 'POST',
url: '/someurl',
}).then((resp) => {
// Expect success response
expect(resp.status).to.eq(200)
//Write Unique ID to a fixture file
cy.writeFile('cypress/fixtures/testdata.json', {
"id": resp.uniqueID
})
})
如果你想更新唯一ID的值,你可以这样做:
cy.readFile("cypress/fixtures/testdata.json", (err, data) => {
if (err) {
return console.error(err);
};
}).then((data) => {
data.id = newUniqueID //save the New Value of Unique ID
cy.writeFile("cypress/fixtures/testdata.json", JSON.stringify(data)) //Write it to the fixtures file
})