add new multi-purpose jmx for testprotocols#2
Conversation
| </elementProp> | ||
| <elementProp name="DefaultTcpImpl" elementType="Argument"> | ||
| <stringProp name="Argument.name">DefaultTcpImpl</stringProp> | ||
| <stringProp name="Argument.value">BinaryTCPClientImpl</stringProp> |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.jmxwith 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.propertiesincluding TCPeomByteconfiguration.
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.
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>
Description
Motivation and Context
How Has This Been Tested?
Screenshots (if appropriate):
Types of changes
Checklist: