apache / apache/jmeter

Allow no response on TCP Sampler

Open
#5,750 0 comments 0 reactions 0 assignees View on GitHub
enhancement to-triage
Dominant language
Java
Stars
9.5k
Forks
2.3k
Avg merge
1d 22h
Merged PRs (30d)
5

Description

### Use case

Performance testing a TCP endpoint that is asynchronous, or otherwise doesn't acknowledge receipt of each line of traffic.
For example, performance testing a Splunk indexer, Cribl worker group, ELK stack, etc.

These things accept data over TCP but don't acknowledge receipt of each event (to do so would torpedo performance).

They rate limit themselves by not acking further TCP packets until they have enough space in their buffers to accept more - this is known as 'Backpressure', and it's the application of backpressure that indicates a system is at load, and is what we want to test.

### Possible solution

Have a check box on the TCPSampler configuration titled 'Dont' require responses', or 'Asynchronous endpoint', or similar. When unchecked (the default) it operate as it does now. When checked, it doesn't require a response and immediately send the next entry, relying on the TCP stack to block when it can no longer send.

### Possible workarounds

At present I work around it by setting the response timeout to 1 millsecond. The downside of this though is that everything counts as an error.

### JMeter Version

5.5

### Java Version

openjdk 11.0.17 2022-10-18

### OS Version

Ubuntu 22.10

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.