java.lang.RuntimeException: unsupported frame type: 0. Can't get the complete response data

Issue #43 resolved
Former user created an issue

I want to use JMeter with the Plugin to make some websocket tests.

At the server side I have running a tomcat with a java websocket endpoint. So I'm using the websocket library from the tomcat 8.0.

In my test I send with the jmeter sampler a request message with a number to the server. If the OnMessage event is fired, I use the number to read a number of datasets out of a mongodb. After reading the datasets I want to send them back to jmeter. It works like a echo server. If I send the number 100 for 100 datasets and use the loop one time it works fine. But if I want more datasets like 1000 or use in the loop 100 it doesn't work. My tomcat throws exceptions like this.

And the server can send only 113 datasets instead of 1000 because the connection is closed bevor the datasets can arrive.

My goal is to send different numbers of datasets over the websocket connection and change the number of loops. For example I want to send 100 times a request and receive 1000 datasets to jmeter. Additionally I want to simulate different numbers of users. So I want to analyse the different response times.

I think the problem is on the jmeter side because with a simple websocket client in my browser I have no problems....

Any ideas what I did wrong? How can I test something like that with Jmeter? No support for long response lengths?

I asked the problem on stackoverflow. But there I used a other plugin. I got a answer of a user that i should try this plugin. But now I have the same problem and Jmeter throws a java.lang.RuntimeException: unsupported frame type: 0.

Problem on Stackoverflow

Comments (8)

  1. Martin Kovacs

    Hi Peter,

    thanks for your fast answer. I downloaded the Branche continuation-frames. After the the download I built it with gradle. Then I got a JMeterWebSocketSamplers-dev.jar in the build lib. I deleted the JMeterWebSocketSamplers-0.10.jar (which I used before) from the JMETER_HOME/lib/ext folder and put the JMeterWebSocketSamplers-dev.jar to the same folder. Now it works. In the following image you can see my test. In the WebSocket Single Write Sampler I send a number to the WebSocket-Endpoint. After that I use the number to read datasets from the db. After that I send the datasets back and receive them in the WebSocket Single Read Sampler.

    Now if I send 1000 I don't get a Error in Jmeter and the response data is complete! Now I do some other tests to see if it works in different scenarios.

    websocket-jmeter.PNG

    If I want to simulate different users I change the number of Threads in the thread properties/configs?

    Thanks

  2. Peter Doornbosch repo owner

    Hi Philippe,

    I appreciate the suggestion, but that's not necessary. Thanks anyway.

    Regards, Peter

  3. Peter Doornbosch repo owner

    Hi makome,

    Yes of course, you can increase the number of threads in the thread group. Each thread will get it's own websocket connection, just like real users would.

    Hth, Peter

  4. Log in to comment