我一直试图用Cypress的截取方法拦截一个服务器请求。我注意到Cypress可以拦截通过前端/浏览器发出的请求,但是,如果我直接向后端服务器发出请求,则拦截方法不能工作。
让我澄清我的意思:
例如:我可以使用前端界面创建用户,也可以创建一个用户直接调用后端端点(直接调用服务器)。
回到我的问题上。是否有一种方法可以拦截直接到后端端点的呼叫?
这就是我迄今尝试过的:
api/v0/customers
http://locahost:5440/api/v0/customers
(即服务器的URL )提出了一个请求。 cy.intercept(/^\/api\/v0\/customers\/$/).as('createCustomer');
cy.request(createCustomer(customerData, headers));
cy.wait('@createCustomer').then(({ status, body }) => {
const customerId = body.customer_id;
console.log(body);
expect(status).equal(201);
});
问题是:出现了超时错误。
http://locahost:5440
提出了一个请求,即服务器URL。注意:我确保服务器已经启动并运行。http://locahost:5440/api/v0/customers
匹配。我怀疑拦截只适用于通过浏览器发出的请求。这个说法正确吗?我在Cypress文档里找不到这个答案。有什么方法可以让我拦截直接打到服务器的电话(不使用浏览器)?
发布于 2021-12-17 11:11:26
您不必拦截您使用柏树显式发出的请求,只需使用.then
获得响应,如下所示:
cy.request(createCustomer(customerData, headers)).then((response) => {
const customerId = response.body.customer_id;
console.log(response.body);
expect(response.status).equal(201);
});
https://stackoverflow.com/questions/70397791
复制相似问题