如何在不影响其速度的情况下打开多个 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();
})();
回答
的表现
- 多个人偶操作实例
和
- 运行在同一台机器上
和
- 测试单个应用程序
高度依赖于您机器的性能(4 cored , 8 threads , corei7 7700hq
)
在我的本地设置中,我不能 运行 超过 10 个并行实例,而且我启动的实例越多,性能下降就越明显。
我的故事
当我尝试模拟多个用户并行使用同一个应用程序时,我遇到了类似的挑战。
我知道: pupeteer (and/or) 类似ui-测试自动化工具不是压力测试的好工具 你的申请;或者:有更好的工具。
尽管如此,我的情况是:
- 运行“类似用户”的行为
- 来自世界的另一端
- 收集
HAR
个文件 - 代表浏览器与 10-20 个不同系统交互的网络时间
- 分析行为
我的方法是——也许这对你有帮助:
- 创建人偶测试
- 启用无头运行宁
- 通过
curl
使其可触发
- 将其 Docker 化
- 运行 10 台不同机器上的
docker
图像(5-10
dockerized pupeteer tests/machine)
- 通过
curl
一次触发它们
所以发生在我身上的是,当我打开 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();
})();
回答
的表现- 多个人偶操作实例 和
- 运行在同一台机器上 和
- 测试单个应用程序
高度依赖于您机器的性能(4 cored , 8 threads , corei7 7700hq
)
在我的本地设置中,我不能 运行 超过 10 个并行实例,而且我启动的实例越多,性能下降就越明显。
我的故事
当我尝试模拟多个用户并行使用同一个应用程序时,我遇到了类似的挑战。
我知道: pupeteer (and/or) 类似ui-测试自动化工具不是压力测试的好工具 你的申请;或者:有更好的工具。
尽管如此,我的情况是:
- 运行“类似用户”的行为
- 来自世界的另一端
- 收集
HAR
个文件 - 代表浏览器与 10-20 个不同系统交互的网络时间 - 分析行为
我的方法是——也许这对你有帮助:
- 创建人偶测试
- 启用无头运行宁
- 通过
curl
使其可触发
- 将其 Docker 化
- 运行 10 台不同机器上的
docker
图像(5-10
dockerized pupeteer tests/machine) - 通过
curl
一次触发它们