如何使用Vaadin 10执行负载测试/性能测试(使用Jmeter可以吗?)

时间:2019-05-16 11:47:56

标签: jmeter vaadin vaadin10

我正在研究Vaadin 10项目,我们想在我们的网站上执行负载测试,因为我们使用Vaadin 10可以使用Jmeter做到这一点,但是使用Vaadin 10似乎不适用于Jmeter

我们尝试使用Jmeter 5.1.1并记录了测试用例,第一个问题是csrf Toaken和push id,它们都可以用正则表达式提取器提取,然后将它们放在Body数据中

{"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的,而对于vadin 10+则没有答案。

2 个答案:

答案 0 :(得分:5)

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

Vaadin-Security-Key":"(.+?)"

针对Vaadin 13 Bakery应用入门测试时,我的JMeter屏幕截图:

enter image description here

除了JMeter之外,在对Vaadin(任何版本)应用程序进行可伸缩性测试时,Gatling也是不错的选择。面包店App入门版中有一个很好的示例加特林测试脚本,用于Vaadin 13:https://vaadin.com/start/latest/full-stack-spring请参见路径:项目的\ src \ test \ scala \ BaristaFlow.scala。

编辑:

我在此处上传了一个针对V13应用程序(相同的Bakery Flow入门程序)的小型但功能齐全的JMeter测试:https://gist.github.com/johannest/593309e31e35789f8e5b03bed074f13c

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

答案 1 :(得分:0)

我前一次发布这个问题是因为有人对此问题有所了解,我将发布一些有关我们如何处理这种情况的信息。

  1. 我们的应用程序不想与J-Meter一起使用,因此jmeter应该可以,但我没有设法使其进入工作状态
  2. 我们使用了neoLoad(对于我们的用例而言,跟踪版本就足够了),而对于Vaadin 10,neoload易于使用 但是我无法提供有关如何将vaadin 10与neoLoad一起使用的详细信息,但也许有人可以使用此信息来缩短研究时间