Load test vaadin 7.0.4 return error No UIProvider

2019-05-25 00:59发布

问题:

I would like to load test a vaadin app with 5000 users. I found this https://vaadin.com/wiki/-/wiki/Main/JMeter%20Testing and trying to emulate with a single user. With the simplest step of Login and Logout, i encounter this error during playback.

No UIProvider returned a UI for the request

Any idea what is this error regards or how to troubleshoot it?

回答1:

It looks like that jMeter example is for Vaadin 6. Vaadin 7 refactored the servlet class, and the Application class is now the UI class. So instead of that section of the web.xml looking like this:

<servlet>
    <servlet-name>FeatureBrowser</servlet-name>
    <servlet-class>com.vaadin.terminal.gwt.server.ApplicationServlet</servlet-class>
    <init-param>
        <param-name>application</param-name>
        <param-value>com.vaadin.demo.featurebrowser.FeatureBrowser</param-value>
    </init-param>

    <init-param>
        <param-name>disable-xsrf-protection</param-name>
        <param-value>true</param-value>
    </init-param>
</servlet>

It would look like this:

<servlet>
    <servlet-name>FeatureBrowser</servlet-name>
    <servlet-class>com.vaadin.server.VaadinServlet</servlet-class>
    <init-param>
        <param-name>UI</param-name>
        <param-value>com.vaadin.demo.featurebrowser.FeatureBrowserUI</param-value>
    </init-param>

    <init-param>
        <param-name>disable-xsrf-protection</param-name>
        <param-value>true</param-value>
    </init-param>
</servlet>

Assuming the FeatureBrowser class is renamed to FeatureBrowserUI, and subclasses the UI class, and all the other little changes Vaadin 7 introduced, as explained in the migration guide: link.



回答2:

Vaadin uses a lot of technical ids, so in order to create a realistic simulation you need to correlate those ids. XSRF protection is only part of the correlation.

You can read this blog which illustrate the use of a commercial plugin for JMeter that does auto correlation for you. You just record and you can replay, all correlation is done by plugin.

Disclaimer : We are provider of this solution