Puppeteer:使用 Puppeteer 进行负载测试

3
我正在设计使用Puppeteer控制的 headless Chrome 进行负载测试设置。 哪种方法最好? 我考虑了以下两种方法。
假设我需要模拟1000个用户登录。
  1. 使用await puppeteer.launch() API创建1000个 headless Chrome 实例,然后访问登录页面、输入用户名/密码并点击登录按钮。这看起来很直接,但它可能会占用大量系统资源,并且模拟1000个用户登录可能不可能(会是这样吗?)。
  2. 仅启动一个Chrome实例,创建1000个CDP会话。但我不确定这种方法是否可行,因为使用相同的缓存(userDataDir)路径。是否可以为每个CDP会话设置不同的缓存。
还是有更好的使用Puppeteer进行负载测试的方法吗?
1个回答

3

在puppeteer-loadtest和puppeteer-cluster中,Chrome实例的数量将受到限制。缓存部分如何处理?比如我已经使用user1/password1登录了一个用户,当我转到下一个用户时,可能会导致该用户已登录。对此有什么想法/建议吗? - Austin
请阅读有关负载测试和集群的规范,对于登录方案,您需要进行用户轮换。 您需要测试与您特定应用程序相关的这些解决方案,如果遇到任何问题,请将它们提交到适当的支持中心。 CDP会话可以帮助一些以字节流形式发送到服务器的负载,但手动复制太困难了,请勿忘记JS运行时与WebApi上下文之间的事件循环差异。因此,看起来我们正在谈论一个新的性能测试产品。 - storenth
2
@Austin,我是puppeteer-cluster的作者。Chrome实例的数量没有限制,您可以生成单独的浏览器来分离会话。 - Thomas Dondorf
谢谢Thomas。我面临的基本问题是,如果我运行40个无头实例,我的笔记本电脑就会进入停滞模式。我在考虑设计 - 假设我有一个无头浏览器实例,并创建更多页面。每页我可以为不同的用户登录吗?比如说page1,我为user1登录,page2我为user2登录,以此类推...,这里会有缓存问题或者登录会成功吗? - Austin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接