Skip to content

add new multi-purpose jmx for testprotocols#2

Open
martin-weidhofer wants to merge 11 commits into
feature/csmfrom
feature/csm-jmx-for-test-protocols
Open

add new multi-purpose jmx for testprotocols#2
martin-weidhofer wants to merge 11 commits into
feature/csmfrom
feature/csm-jmx-for-test-protocols

Conversation

@martin-weidhofer
Copy link
Copy Markdown
Collaborator

@martin-weidhofer martin-weidhofer commented Apr 27, 2026

Description

Motivation and Context

How Has This Been Tested?

Screenshots (if appropriate):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

  • My code follows the code style of this project.
  • I have updated the documentation accordingly.

Comment thread csm/CsmServiceJMeterTests.jmx Outdated
</elementProp>
<elementProp name="DefaultTcpImpl" elementType="Argument">
<stringProp name="Argument.name">DefaultTcpImpl</stringProp>
<stringProp name="Argument.value">BinaryTCPClientImpl</stringProp>
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Der BinaryTcpClientImpl kann nicht korrekt mit CSM Nachrichten umgehen.
Es wird sicher manchmal funktioniert, das ist dann zufall und zwar vermutlich dann wenn die Reposne genau ein einem Paket platz hat. Die Ende Byts sind ja der Hash, d.h. darauf kann man nicht schauen. Man muss auf die Ende Bytes for dem hash schauen weil die Kontsant sind.

Man muss den BinaryTCPClientSimpleImpl verwenden, dieser muss per Config file konfiguriert werden.

Unsere Clients verhalten sich so.
Verbindung öffnen, Request absetzen, Verbindung schließen.
Wurde das hier gemacht?

Timeouts für Connect (würde ich 1s nehmen) und Response 5s sollte jedenfalls gesetzt werden.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hab mal folgende Änderungen durchgeführt:

  • BinaryTCPClientSimpleImpl in die DefaultTcpImpl Variable
  • Die DefaultTcpImpl auch referenzieren
  • Timeouts wie beschrieben (1s Connect, 5s Response)
  • Bei allen Asserts noch die letztmöglichen Bytes überprüft, damit sollte immer die volle Nachricht sichergestellt sein, außer halt die 4 MAC-Bytes
  • Hab noch "same user per iteration" deaktiviert, wobei ich glaub, dass das bei TCP keine Rolle spielt
  • TcpSampler haben alle Re-use connection deaktiviert

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Die 4 MAC-Bytes sind auch da, weil man in der Config einstellt was das Ende Byte ist und wie weit man vom Ende Byte noch lesen muss.

#The eomByte is really tricky.
#It gets compared with and also assigned to a java byte type
#A java byte type is a signed byte and has a range from -128 to 127
#Although it is a binary type the eom byte must be given a deciaml number between -128 to 127
#If you want a eomByte of 0xFF thant you have to use -128 
#If you want a eomByte of 0x84 which is 132 you have to use -124
tcp.BinaryTCPClient.eomByte=4
tcp.BinaryTCPClient.eomBytePositionFromEnd=5

Comment thread csm/CsmServiceJMeterTests.jmx
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new multi-purpose JMeter test plan and helper launch scripts for generating TCP traffic against csm-service across multiple commands/environments.

Changes:

  • Added CsmServiceJMeterTests.jmx with configurable env (env:*) and command (cmd:*) components plus assertions/listeners.
  • Added launch scripts for Linux (.sh) and Windows (.ps1) to run the new JMX with a dedicated properties file.
  • Added CsmServiceJMeterTests.properties including TCP eomByte configuration.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 16 comments.

File Description
csm/CsmServiceJMeterTests.sh Bash wrapper to run the new JMeter test plan with its properties.
csm/CsmServiceJMeterTests.ps1 PowerShell wrapper to run the new JMeter test plan with its properties.
csm/CsmServiceJMeterTests.properties JMeter user properties used by the new plan (incl. TCP client settings).
csm/CsmServiceJMeterTests.jmx New multi-purpose JMeter test plan covering multiple commands/environments and assertions.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread csm/CsmServiceJMeterTests.jmx Outdated
Comment thread csm/CsmServiceJMeterTests.sh
Comment thread csm/CsmServiceJMeterTests.properties Outdated
Comment thread csm/CsmServiceJMeterTests.jmx Outdated
Comment thread csm/CsmServiceJMeterTests.jmx
Comment thread csm/CsmServiceJMeterTests.jmx Outdated
Comment thread csm/CsmServiceJMeterTests.ps1
Comment thread csm/CsmServiceJMeterTests.properties
Comment thread csm/CsmServiceJMeterTests.jmx
Comment thread csm/CsmServiceJMeterTests.jmx
martin-weidhofer and others added 9 commits April 28, 2026 10:49
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants