gpt4 book ai didi

puppeteer - 如何使用 puppeteer 启用并行测试?

转载 作者:行者123 更新时间:2023-12-04 04:36:59 25 4
gpt4 key购买 nike

我直接使用 chrome puppeteer 库来运行浏览器集成测试。我现在在单个文件中编写了一些测试。有没有办法并行运行它们?实现这一目标的最佳方法是什么?

最佳答案

要并行运行 puppeteer 实例,您可以查看我写的这个库:puppeteer-cluster

它有助于在多个浏览器、上下文或页面中并行运行不同的 puppeteer 任务,并处理错误和浏览器崩溃。这是一个最小的例子:

const { Cluster } = require('puppeteer-cluster');

(async () => {
const cluster = await Cluster.launch({
concurrency: Cluster.CONCURRENCY_CONTEXT, // use one browser per worker
maxConcurrency: 4, // cluster with four workers
});

// Define a task to be executed for your data
cluster.task(async ({ page, data: url }) => {
await page.goto(url);
const screen = await page.screenshot();
// ...
});

// Queue URLs
cluster.queue('http://www.google.com/');
cluster.queue('http://www.wikipedia.org/');
// ...

// Wait for cluster to idle and close it
await cluster.idle();
await cluster.close();
})();

您还可以像这样直接将函数排队:

  const cluster = await Cluster.launch(...);

cluster.queue(async ({ page }) => {
await page.goto('http://www.wikipedia.org');
await page.screenshot({path: 'wikipedia.png'});
});

cluster.queue(async ({ page }) => {
await page.goto('https://www.google.com/');
const pageTitle = await page.evaluate(() => document.title);
// ...
});

cluster.queue(async ({ page }) => {
await page.goto('https://www.example.com/');
// ...
});

关于puppeteer - 如何使用 puppeteer 启用并行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46597304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com