如何使用JMeter对Vaadin 10进行负载测试/性能测试

如何使用JMeter对Vaadin 10进行负载测试/性能测试,jmeter,vaadin,load-testing,vaadin10,Jmeter,Vaadin,Load Testing,Vaadin10,我在一个Vaadin 10项目上工作,我们想在我们的网站上进行负载测试。在我们使用Vaadin10之前,我们可以用Jmeter实现这一点,但在Vaadin10中,Jmeter似乎不起作用 我们尝试使用JMeter 5.1.1并记录了测试用例。第一个问题是CSRF令牌和推送id。两者都可以通过正则表达式提取器提取,我们将它们放在正文数据中: {"csrfToken":"${csrf}","rpc": [{"type"

我在一个Vaadin 10项目上工作,我们想在我们的网站上进行负载测试。在我们使用Vaadin10之前,我们可以用Jmeter实现这一点,但在Vaadin10中,Jmeter似乎不起作用

我们尝试使用JMeter 5.1.1并记录了测试用例。第一个问题是CSRF令牌和推送id。两者都可以通过正则表达式提取器提取,我们将它们放在正文数据中:

{"csrfToken":"${csrf}","rpc":  [{"type":"mSync","node":5,"feature":1,"property":"invalid","value":true}],"  syncId":0,"clientId":0}
就我所见,至少这是有效的,但我们得到的唯一结果是一个HTML页面,上面写着“你必须在浏览器中启用javascript才能使用这个网站。”

有人知道是否有更好的方法在Vaadin 10应用程序上执行负载测试,或者如何让它与JMeter一起工作吗


到目前为止,我找到的大多数答案都是针对Vaadin 8或7的,但没有针对Vaadin 10+的答案。

是的,可以将JMeter用于负载测试Vaadin 10+应用程序。您应该能够使用以下正则表达式提取csrf令牌:

Vaadin-Security-Key":"(.+?)"
针对Vaadin 13烘焙应用程序starter进行测试时,我的JMeter的屏幕截图:

除了JMeter之外,在可伸缩性测试Vaadin(任何版本)应用程序时,Gatling也是一个不错的选择。在Bakery App starter for Vaadin 13中有一个非常好的Gatling测试脚本示例:请参阅项目的路径:\src\test\scala\BaristaFlow.scala

编辑:

我在这里上传了一个针对V13应用程序(同一个烘焙流程启动器)的小型但功能完整的JMeter测试:


示例脚本显示了csrf令牌提取,还显示了如何提取组件id(例如用于“新建”按钮的id)以及客户端和同步id。提取这些ID并将其用作以下请求中的变量(而不是使用记录的ID)可以使您的测试更加稳定。

我在一段时间前提出了这个问题,因为有些人对这个问题有意见,我将发布一些我们如何处理这种情况的信息

  • 我们的应用程序不想与J-Meter一起工作,它应该可以与jmeter一起工作,但我没有设法使它进入工作状态
  • 我们使用了neoLoad(试用版对于我们的用例来说已经足够了),neoLoad对于Vaadin 10来说很容易使用 但是我不能提供详细的信息,说明如何将neoLoad与vaadin 10一起使用,但也许有人可以利用这些信息来缩短研究时间

  • 关于JS部分,它是可以预期的,与流无关。更多关于这个主题的讨论请点击这里:这里非常感谢您提供的示例。我已经下载了面包房应用程序初学者。请问如何运行scala?有两种方法可以运行Gatling scala文件。1.通过Gatling Maven集成:查看Bakery应用程序初学者的自述文件。2.下载Gatling后通过命令行:(参见命令行选项)