如何在不影响其速度的情况下打开多个 puppeteer 实例

how to open multiple puppeteer instances without effecting it's speed

所以发生在我身上的是,当我打开 1 个 puppeteer 实例时,它会运行得很快,但我打开的越多,它需要加载的时间就越多 URL + 填充信息是正常的吗?

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.screenshot({ path: 'example.png' });

  await browser.close();
})();

回答

的表现
  1. 多个人偶操作实例 和
  2. 运行在同一台机器上 和
  3. 测试单个应用程序

高度依赖于您机器的性能(4 cored , 8 threads , corei7 7700hq)

在我的本地设置中,我不能 运行 超过 10 个并行实例,而且我启动的实例越多,性能下降就越明显。

我的故事

当我尝试模拟多个用户并行使用同一个应用程序时,我遇到了类似的挑战。

我知道: pupeteer (and/or) 类似ui-测试自动化工具不是压力测试的好工具 你的申请;或者:有更好的工具。

尽管如此,我的情况是:

  1. 运行“类似用户”的行为
  2. 来自世界的另一端
  3. 收集 HAR 个文件 - 代表浏览器与 10-20 个不同系统交互的网络时间
  4. 分析行为

我的方法是——也许这对你有帮助:

  1. 创建人偶测试
  2. 启用无头运行宁
  3. 通过curl
  4. 使其可触发
  5. 将其 Docker 化
  6. 运行 10 台不同机器上的 docker 图像(5-10 dockerized pupeteer tests/machine)
  7. 通过curl
  8. 一次触发它们