尝试在赛普拉斯中进行多个请求后如何清除请求缓存?
How to clear request cache after attempting to multiple request in cypress?
这是我的代码,我传递了 id 数组,对于每个 id,我都点击了 Api 请求。
for (let i = 0; i < 10; i++) {
cy.request({
method: 'GET',
url: `https://[API endpoint ]/api/v1/[requst]/${ids[i]}`,
headers: {
"authorization": token
}
})
.then((res) => {
return usernames.push([{ value: res.body.instagrams[0].username }])
})
.then((res) => {
return cy.wait(2000)
})
}
每当我执行代码时,对于 2-3 个请求,它工作正常,然后抛出类似
的错误
Uncaught Error: invalid payload
我可以看到我的 URI 是正确的并且发送了正确的请求。
您应该修改您的代码以将所有待处理的承诺包装到一个数组中。修改后的代码段如下:
async function processRequest(){
let result;
let promises = [];
for (let i = 0; i < 10; i++) {
promises.push(cy.request({
method: 'GET',
url: `https://[API endpoint ]/api/v1/[requst]/${ids[i]}`,
headers: {
"authorization": token
}
}))
}
result = await Promise.all(promises);
for(let i = 0; i < 10; i++){
usernames.push([{ value: result[i].username }])
}
}
这里 cy.request
不能与 Promise 一起正常工作。
在将其推送到 promise 数组时,删除 cy.request()
或纯粹使用 javascript.
处理
async findUserName(ids, token) {
let promise = []
let usernames = []
ids.forEach(id => {
promise.push(
fetch(`https://[host]/api/v1/[endpoint]/${id}`, {
headers: {
'Content-Type': 'application/json',
"authorization": token
}
})
.then((res) => {
return res.json();
})
)
})
let result = await Promise.all(promise);
result.forEach((data) => {
usernames.push([{ value: data.instagrams[0].username }])
})
return usernames
}
这是我的代码,我传递了 id 数组,对于每个 id,我都点击了 Api 请求。
for (let i = 0; i < 10; i++) {
cy.request({
method: 'GET',
url: `https://[API endpoint ]/api/v1/[requst]/${ids[i]}`,
headers: {
"authorization": token
}
})
.then((res) => {
return usernames.push([{ value: res.body.instagrams[0].username }])
})
.then((res) => {
return cy.wait(2000)
})
}
每当我执行代码时,对于 2-3 个请求,它工作正常,然后抛出类似
的错误Uncaught Error: invalid payload
我可以看到我的 URI 是正确的并且发送了正确的请求。
您应该修改您的代码以将所有待处理的承诺包装到一个数组中。修改后的代码段如下:
async function processRequest(){
let result;
let promises = [];
for (let i = 0; i < 10; i++) {
promises.push(cy.request({
method: 'GET',
url: `https://[API endpoint ]/api/v1/[requst]/${ids[i]}`,
headers: {
"authorization": token
}
}))
}
result = await Promise.all(promises);
for(let i = 0; i < 10; i++){
usernames.push([{ value: result[i].username }])
}
}
这里 cy.request
不能与 Promise 一起正常工作。
在将其推送到 promise 数组时,删除 cy.request()
或纯粹使用 javascript.
async findUserName(ids, token) {
let promise = []
let usernames = []
ids.forEach(id => {
promise.push(
fetch(`https://[host]/api/v1/[endpoint]/${id}`, {
headers: {
'Content-Type': 'application/json',
"authorization": token
}
})
.then((res) => {
return res.json();
})
)
})
let result = await Promise.all(promise);
result.forEach((data) => {
usernames.push([{ value: data.instagrams[0].username }])
})
return usernames
}