【问题标题】:Mocking Puppeteer Network Requests in SUT在 SUT 中模拟 Puppeteer 网络请求
【发布时间】:2020-04-04 22:15:17
【问题描述】:

有谁知道如何模拟 Puppeteer 在用作被测系统的一部分时发出的网络请求(但不用于运行测试)?例如,被测系统使用 puppeteer 获取 URL 并返回有关页面的一些信息。使用 Jest 运行测试。我通常为此使用nock,但 Puppeteer 的网络代码似乎没有使用它们。

【问题讨论】:

  • 对不起,我没有答案,但我可以确认 Nock 在这种情况下不起作用。只有在同一个 Node 进程中运行时,它才能发挥作用。

标签: node.js jestjs puppeteer nock


【解决方案1】:

你可以使用

page.setRequestInterception(true);
page.on('request),req =>{
req.respond(data);
})

【讨论】:

  • 这不需要修改被测系统吗?
  • @StevenMusumeche 有一点点,但测试使用起来会更灵活。
【解决方案2】:

我会在您的 SUT 和您的测试运行程序之间放置一个代理。我尝试过去使用BrowserMob Proxy,但最终找到了替代解决方案(绝对不适用于您的情况),所以我对此无能为力。

可能值得尝试一下:

BrowserMob 代理允许您操纵 HTTP 请求和响应、捕获 HTTP 内容并将性能数据导出为 HAR 文件。 BMP 作为独立代理服务器运行良好,但在嵌入 Selenium 测试时尤其有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-19
    • 2019-01-26
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多