abstracta / jmeter-dotnet-dsl

Simple JMeter performance tests .Net API
https://abstracta.github.io/jmeter-dotnet-dsl/
Apache License 2.0
46 stars 1 forks source link

Add JMeter sampler for Azure EventHubs #21

Open stijnmoreels opened 2 weeks ago

stijnmoreels commented 2 weeks ago

While most examples showcase HTTP load tests, other samplers are supported by JMeter as well. One that is especially useful to verify with load tests is Azure EventHubs.

https://github.com/pnopjp/jmeter-plugins?tab=readme-ov-file

Example:

 <jp.co.pnop.jmeter.protocol.azureeventhubs.sampler.AzEventHubsSampler guiclass="jp.co.pnop.jmeter.protocol.azureeventhubs.sampler.gui.AzEventHubsSamplerGui" testclass="jp.co.pnop.jmeter.protocol.azureeventhubs.sampler.AzEventHubsSampler" testname="Azure Event Hubs Sampler" enabled="true">
          <stringProp name="namespaceName">**********.servicebus.windows.net</stringProp>
          <stringProp name="authType">Shared access signature</stringProp>
          <stringProp name="sharedAccessKeyName">YourSharedAccessKey</stringProp>
          <stringProp name="sharedAccessKey">********************</stringProp>
          <stringProp name="eventHubName">youreventhubname</stringProp>
          <stringProp name="partitionType">Not specified</stringProp>
          <stringProp name="partitionValue"></stringProp>
          <elementProp name="messages" elementType="jp.co.pnop.jmeter.protocol.amqp.sampler.AzAmqpMessages" guiclass="jp.co.pnop.jmeter.protocol.amqp.sampler.gui.AzAmqpMessagesPanel" testclass="jp.co.pnop.jmeter.protocol.amqp.sampler.AzAmqpMessages" testname="[res_key=Azure Event Hubs Default]" enabled="true">
            <collectionProp name="Messages.messages">
              <elementProp name="SGVsbG8sIEF6dXJlIEV2ZW50IEh1YnMh" elementType="jp.co.pnop.jmeter.protocol.amqp.sampler.AzAmqpMessage">
                <stringProp name="Message.messageType">Base64 encoded binary</stringProp>
                <stringProp name="Message.message">SGVsbG8sIEF6dXJlIEV2ZW50IEh1YnMh</stringProp>
                <objProp>
                  <name>Message.systemProperties</name>
                  <value class="java.lang.String"></value>
                </objProp>
                <objProp>
                  <name>Message.appProperties</name>
                  <value class="java.lang.String"></value>
                </objProp>
              </elementProp>
              <elementProp name="Hello, Azure Event Hubs!" elementType="jp.co.pnop.jmeter.protocol.amqp.sampler.AzAmqpMessage">
                <stringProp name="Message.messageType">String</stringProp>
                <stringProp name="Message.message">Hello, Azure Event Hubs!</stringProp>
                <objProp>
                  <name>Message.systemProperties</name>
                  <value class="java.lang.String"></value>
                </objProp>
                <objProp>
                  <name>Message.appProperties</name>
                  <value class="java.lang.String"></value>
                </objProp>
              </elementProp>
              <elementProp name="/tmp/eventhubs-sample.gif" elementType="jp.co.pnop.jmeter.protocol.amqp.sampler.AzAmqpMessage">
                <stringProp name="Message.messageType">File</stringProp>
                <stringProp name="Message.message">/tmp/eventhubs-sample.gif</stringProp>
                <objProp>
                  <name>Message.systemProperties</name>
                  <value class="java.lang.String"></value>
                </objProp>
                <objProp>
                  <name>Message.appProperties</name>
                  <value class="java.lang.String"></value>
                </objProp>
              </elementProp>
            </collectionProp>
          </elementProp>
        </jp.co.pnop.jmeter.protocol.azureeventhubs.sampler.AzEventHubsSampler>
rabelenda commented 1 week ago

Interesting, thank you to bring this up. Is that xml showcasing a real scenario as you use it? Is important for us to properly defined what are the most common used properties, which should be mandatory and which optional, as to provide the best API and simplify as much as we can the most common scenario.

stijnmoreels commented 1 week ago

It's copied from the referenced repo. Not currently using it, but more wondering if Azure EventHubs should be included as we are currently thinking about writing load tests for it with Abstracta.