Browser 如何使用Cypress.io检查和查询出站网络请求?

Browser 如何使用Cypress.io检查和查询出站网络请求?,browser,e2e-testing,cypress,Browser,E2e Testing,Cypress,我正在尝试加载一个页面,然后我想使用Cypress.io检查匹配https://securepubads.g.doubleclick.net/gampad/ads?*并使用特定的查询参数查看请求(通常至少有两个或更多这样的请求)。在Chrome中,如果我想手动检查页面的网络请求,我只需转到Chrome开发工具中的网络选项卡并检查这些请求。我在另一个半相关的SO问题()中被告知,我应该能够使用 cy.route({ url: '', onRequest: (req) => {

我正在尝试加载一个页面,然后我想使用Cypress.io检查匹配
https://securepubads.g.doubleclick.net/gampad/ads?*
并使用特定的查询参数查看请求(通常至少有两个或更多这样的请求)。在Chrome中,如果我想手动检查页面的网络请求,我只需转到Chrome开发工具中的网络选项卡并检查这些请求。我在另一个半相关的SO问题()中被告知,我应该能够使用

cy.route({
   url: '', 
   onRequest: (req) => { 
      // Some code in here
   } 
});
使之自动化。但是,当我使用cy.server()设置这个cy.route()示例时,我没有看到这个回调中有任何内容正在执行。到
https://securepubads.g.doubleclick.net/gampad/ads?*
被选中,但我看到对
https://securepubads.g.doubleclick.net/gampad/ads?*
在Chrome开发工具的“网络”选项卡中返回400。如果我正常点击页面,我看不到这个错误


似乎cy.route是用于存根请求和响应的。我不需要存根任何请求或响应。我只想看到和查询网络请求,而不需要修改它们,就像Chrome开发工具一样,但它是自动化的。Cypress.io是否支持此用例?谢谢。

我在Cypress github页面上问了一个问题后,就可以解决我的问题了

根据Cypress文档,启动cy.server(),然后调用路由,但将实际的正则表达式模式传递到url参数中(该参数没有文档记录)。我不知道文档中显示的字符串glob版本有什么问题,但实际的正则表达式模式导致了路由触发

cy.server();

cy.route({
  url: /gampad\/ads\?/,
  onRequest: (req) => {
     debugger;
     // Do checks here.
  }
});

您还可以使用
cy.wait()
检查与
cy.route()
匹配的请求的查询参数。像这样:


赛道(”https://securepubads.g.doubleclick.net/gampad/ads?*")
.as(“myAds”);
cy.wait(@myAds)
。然后(请求=>{
expect(request.url).to.match(/\?param1=true/);
});
此外,如果您只想手动查看查询参数,则可以单击
等待

控制台将向您显示整个XMLHttpRequest,您可以在其中单击以检查请求和响应的URL或其他属性: