JMeter testing with Vaadin 7: setId() assignments not included in requests?

Hello,

I am struggling with JMeter performance tests targeting
Vaadin 7
applications. It seems that Vaadin 7 does not include IDs (“DebugIDs”) of application components in its request information.

As a first step, I started with a basic example, which is the address book application from the Vaadin tutorial:

[url]

https://vaadin.com/tutorial
[/url] (the link includes screenshots and code).

The code has been modified slightly for assigning IDs to the single components; in particular, the init() method has been enriched with explicit assignments of IDs:

    @Override
    protected void init(VaadinRequest request) {

        initLayout();
        initContactList();
        initEditor();
        initSearch();
        initAddRemoveButtons();

        id = 1; // reset IDs, otherwise they will be increased even across sessions;
        contactList.setId(newId());
        searchField.setId(newId());
        addNewContactButton.setId(newId());
        removeContactButton.setId(newId());
        editorLayout.setId(newId());
    }

whereas the newId() stuff is implemented as follows in the same class (note that this is just for testing purposes):

    pivate static int id = 0;

    private String newId () {

        return "ID" + id++;
    }

This way, each component gets a unique ID, which can be even requested via getId(); this method returns in fact the assigned IDs.

However, those IDs are
not included in the request information
which is sent whenever the user gives any input to the application. For example, the JMeter proxy server receives the following data when the “New” button is clicked:

  d9d1f4f7-8487-4adb-9e7a-8aa4fbe90056[["4","v","v",["pagelength",["i","27"]
]],
["0","com.vaadin.shared.ui.ui.UIServerRpc","resize",["609","1209","1209","609"]
],
["7","com.vaadin.shared.ui.button.ButtonServerRpc","click",
[{"relativeY":"12", "relativeX":"26", "button":"LEFT", "shiftKey":false, "metaKey":false,
"ctrlKey":false, "type":"1", "altKey":false, "clientX":"577", "clientY":"595"}]]]

There is none of the explicitly assigned IDs included. Furthermore, the included Connector IDs (“4” in the example above) are generated dynamically by the Vaadin framework; restarting the application generates new “arbitrary” IDs in the requests. This is a problem for JMeter Test Plans, which need static IDs for targeting certain components.

The settings for JMeter tests have been made following this tutorial:


https://vaadin.com/wiki/-/wiki/Main/JMeter%20Testing

In Vaadin 6, the IDs assigned via setDebugId() were included in the request information - is there any solution for Vaadin 7 available?

Thank you in advance!

Hey guys,

i know this is quite an old thread, but I recently stumbled upon the exact same issue, so I give it a push.
I also tried to implement a customized VaadinServlet to our app, as it is shown at
https://vaadin.com/wiki/-/wiki/Main/JMeter%20Testing
. Is there any other way to set static IDs to UI components, which then are used in the RPC-Calls?

Thx in advance!