diff options
author | Pawel <pawel.kasperkiewicz@nokia.com> | 2020-06-19 10:30:10 +0200 |
---|---|---|
committer | Pawel <pawel.kasperkiewicz@nokia.com> | 2020-06-19 10:30:10 +0200 |
commit | 34a204f287a0095c31ede1771d794b95e81666c0 (patch) | |
tree | 6f823d1e59db08a9f1bf6173f9c499fe2fa453e4 /performanceTests/environment/jmeterVM | |
parent | eca7d951a7632b8d8e745ca6552eff1ab8e536bb (diff) |
Add DmaaP simulator, test scenarios and refactor dashboards
Issue-ID: DCAEGEN2-608
Signed-off-by: Pawel <pawel.kasperkiewicz@nokia.com>
Change-Id: I294183c7f80be53f1ca44724deb78abef41e08ed
Diffstat (limited to 'performanceTests/environment/jmeterVM')
-rw-r--r-- | performanceTests/environment/jmeterVM/jmeter/run_jmeter.sh | 4 | ||||
-rw-r--r-- | performanceTests/environment/jmeterVM/jmeter/testScenarios/1_test_scenario_6_steps.jmx | 916 | ||||
-rw-r--r-- | performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_1k_rps.jmx | 242 | ||||
-rw-r--r-- | performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_2k_rps.jmx | 242 | ||||
-rw-r--r-- | performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_3k_rps.jmx | 242 | ||||
-rw-r--r-- | performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_4k_rps.jmx | 242 | ||||
-rw-r--r-- | performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_5k_rps.jmx | 242 | ||||
-rw-r--r-- | performanceTests/environment/jmeterVM/jmeter/testScenarios/simple_test_scenario.jmx (renamed from performanceTests/environment/jmeterVM/jmeter/test_scenario.jmx) | 6 |
8 files changed, 2132 insertions, 4 deletions
diff --git a/performanceTests/environment/jmeterVM/jmeter/run_jmeter.sh b/performanceTests/environment/jmeterVM/jmeter/run_jmeter.sh index 4b7477a7..e63fc524 100644 --- a/performanceTests/environment/jmeterVM/jmeter/run_jmeter.sh +++ b/performanceTests/environment/jmeterVM/jmeter/run_jmeter.sh @@ -9,9 +9,11 @@ performance_tests_env_directory=$1 test_scenario_file=$2 docker pull justb4/jmeter -export volume_path=~/${performance_tests_env_directory}/jmeter && \ +export volume_path=~/${performance_tests_env_directory}/jmeter/testScenarios && \ export jmeter_path=/mnt/jmeter && \ docker run \ + --name jmeter \ + --rm \ --volume "${volume_path}":${jmeter_path} \ justb4/jmeter \ -n -X \ diff --git a/performanceTests/environment/jmeterVM/jmeter/testScenarios/1_test_scenario_6_steps.jmx b/performanceTests/environment/jmeterVM/jmeter/testScenarios/1_test_scenario_6_steps.jmx new file mode 100644 index 00000000..c04170fb --- /dev/null +++ b/performanceTests/environment/jmeterVM/jmeter/testScenarios/1_test_scenario_6_steps.jmx @@ -0,0 +1,916 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.3"> + <hashTree> + <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Https ves collector /eventlistener/v7 BasicAuth" enabled="true"> + <stringProp name="TestPlan.comments"></stringProp> + <boolProp name="TestPlan.functional_mode">false</boolProp> + <boolProp name="TestPlan.serialize_threadgroups">true</boolProp> + <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="TestPlan.user_define_classpath"></stringProp> + </TestPlan> + <hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">1</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">1000</stringProp> + <stringProp name="ThreadGroup.ramp_time">150</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> + </ThreadGroup> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "event": {
 + "commonEventHeader": {
 + "version": "4.0.1",
 + "vesEventListenerVersion": "7.0.1",
 + "domain": "fault",
 + "eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion",
 + "eventId": "fault0000245",
 + "sequence": 1,
 + "priority": "High",
 + "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
 + "reportingEntityName": "ibcx0001vm002oam001",
 + "sourceId": "de305d54-75b4-431b-dupa-eb6b9e546014",
 + "sourceName": "scfx0001vm002cap001",
 + "nfVendorName": "SomeNamee",
 + "nfNamingCode": "scfx",
 + "nfcNamingCode": "ssc",
 + "startEpochMicrosec": ${__time()},
 + "lastEpochMicrosec": ${__time()},
 + "timeZoneOffset": "UTC-05:30"
 + },
 + "faultFields": {
 + "faultFieldsVersion": "4.0",
 + "alarmCondition": "PilotNumberPoolExhaustion",
 + "eventSourceType": "other",
 + "specificProblem": "Calls cannot complete - pilot numbers are unavailable",
 + "eventSeverity": "CRITICAL",
 + "vfStatus": "Active",
 + "alarmAdditionalInformation": {
 + "PilotNumberPoolSize": "1000"
 + }
 + }
 + }
 +}
 +</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp> + <stringProp name="HTTPSampler.port">30417</stringProp> + <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp> + <stringProp name="HTTPSampler.method">POST</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true"> + <collectionProp name="AuthManager.auth_list"> + <elementProp name="" elementType="Authorization"> + <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp> + <stringProp name="Authorization.username">sample1</stringProp> + <stringProp name="Authorization.password">sample1</stringProp> + <stringProp name="Authorization.domain"></stringProp> + <stringProp name="Authorization.realm"></stringProp> + </elementProp> + </collectionProp> + <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp> + </AuthManager> + <hashTree/> + <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true"> + <collectionProp name="HeaderManager.headers"> + <elementProp name="" elementType="Header"> + <stringProp name="Header.name">Content-Type</stringProp> + <stringProp name="Header.value">application/json</stringProp> + </elementProp> + </collectionProp> + </HeaderManager> + <hashTree/> + <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true"> + <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true"> + <collectionProp name="Arguments.arguments"> + <elementProp name="influxdbMetricsSender" elementType="Argument"> + <stringProp name="Argument.name">influxdbMetricsSender</stringProp> + <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="influxdbUrl" elementType="Argument"> + <stringProp name="Argument.name">influxdbUrl</stringProp> + <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="application" elementType="Argument"> + <stringProp name="Argument.name">application</stringProp> + <stringProp name="Argument.value">ves</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="measurement" elementType="Argument"> + <stringProp name="Argument.name">measurement</stringProp> + <stringProp name="Argument.value">jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="summaryOnly" elementType="Argument"> + <stringProp name="Argument.name">summaryOnly</stringProp> + <stringProp name="Argument.value">false</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="samplersRegex" elementType="Argument"> + <stringProp name="Argument.name">samplersRegex</stringProp> + <stringProp name="Argument.value">.*</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="percentiles" elementType="Argument"> + <stringProp name="Argument.name">percentiles</stringProp> + <stringProp name="Argument.value">90;95;99</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="testTitle" elementType="Argument"> + <stringProp name="Argument.name">testTitle</stringProp> + <stringProp name="Argument.value">Test name</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="eventTags" elementType="Argument"> + <stringProp name="Argument.name">eventTags</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp> + </BackendListener> + <hashTree/> + </hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">1</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">1750</stringProp> + <stringProp name="ThreadGroup.ramp_time">150</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> + </ThreadGroup> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "event": {
 + "commonEventHeader": {
 + "version": "4.0.1",
 + "vesEventListenerVersion": "7.0.1",
 + "domain": "fault",
 + "eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion",
 + "eventId": "fault0000245",
 + "sequence": 1,
 + "priority": "High",
 + "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
 + "reportingEntityName": "ibcx0001vm002oam001",
 + "sourceId": "de305d54-75b4-431b-dupa-eb6b9e546014",
 + "sourceName": "scfx0001vm002cap001",
 + "nfVendorName": "SomeNamee",
 + "nfNamingCode": "scfx",
 + "nfcNamingCode": "ssc",
 + "startEpochMicrosec": ${__time()},
 + "lastEpochMicrosec": ${__time()},
 + "timeZoneOffset": "UTC-05:30"
 + },
 + "faultFields": {
 + "faultFieldsVersion": "4.0",
 + "alarmCondition": "PilotNumberPoolExhaustion",
 + "eventSourceType": "other",
 + "specificProblem": "Calls cannot complete - pilot numbers are unavailable",
 + "eventSeverity": "CRITICAL",
 + "vfStatus": "Active",
 + "alarmAdditionalInformation": {
 + "PilotNumberPoolSize": "1000"
 + }
 + }
 + }
 +}
 +</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp> + <stringProp name="HTTPSampler.port">30417</stringProp> + <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp> + <stringProp name="HTTPSampler.method">POST</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true"> + <collectionProp name="AuthManager.auth_list"> + <elementProp name="" elementType="Authorization"> + <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp> + <stringProp name="Authorization.username">sample1</stringProp> + <stringProp name="Authorization.password">sample1</stringProp> + <stringProp name="Authorization.domain"></stringProp> + <stringProp name="Authorization.realm"></stringProp> + </elementProp> + </collectionProp> + <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp> + </AuthManager> + <hashTree/> + <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true"> + <collectionProp name="HeaderManager.headers"> + <elementProp name="" elementType="Header"> + <stringProp name="Header.name">Content-Type</stringProp> + <stringProp name="Header.value">application/json</stringProp> + </elementProp> + </collectionProp> + </HeaderManager> + <hashTree/> + <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true"> + <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true"> + <collectionProp name="Arguments.arguments"> + <elementProp name="influxdbMetricsSender" elementType="Argument"> + <stringProp name="Argument.name">influxdbMetricsSender</stringProp> + <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="influxdbUrl" elementType="Argument"> + <stringProp name="Argument.name">influxdbUrl</stringProp> + <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="application" elementType="Argument"> + <stringProp name="Argument.name">application</stringProp> + <stringProp name="Argument.value">ves</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="measurement" elementType="Argument"> + <stringProp name="Argument.name">measurement</stringProp> + <stringProp name="Argument.value">jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="summaryOnly" elementType="Argument"> + <stringProp name="Argument.name">summaryOnly</stringProp> + <stringProp name="Argument.value">false</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="samplersRegex" elementType="Argument"> + <stringProp name="Argument.name">samplersRegex</stringProp> + <stringProp name="Argument.value">.*</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="percentiles" elementType="Argument"> + <stringProp name="Argument.name">percentiles</stringProp> + <stringProp name="Argument.value">90;95;99</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="testTitle" elementType="Argument"> + <stringProp name="Argument.name">testTitle</stringProp> + <stringProp name="Argument.value">Test name</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="eventTags" elementType="Argument"> + <stringProp name="Argument.name">eventTags</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp> + </BackendListener> + <hashTree/> + </hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">1</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">3500</stringProp> + <stringProp name="ThreadGroup.ramp_time">150</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> + </ThreadGroup> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "event": {
 + "commonEventHeader": {
 + "version": "4.0.1",
 + "vesEventListenerVersion": "7.0.1",
 + "domain": "fault",
 + "eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion",
 + "eventId": "fault0000245",
 + "sequence": 1,
 + "priority": "High",
 + "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
 + "reportingEntityName": "ibcx0001vm002oam001",
 + "sourceId": "de305d54-75b4-431b-dupa-eb6b9e546014",
 + "sourceName": "scfx0001vm002cap001",
 + "nfVendorName": "SomeNamee",
 + "nfNamingCode": "scfx",
 + "nfcNamingCode": "ssc",
 + "startEpochMicrosec": ${__time()},
 + "lastEpochMicrosec": ${__time()},
 + "timeZoneOffset": "UTC-05:30"
 + },
 + "faultFields": {
 + "faultFieldsVersion": "4.0",
 + "alarmCondition": "PilotNumberPoolExhaustion",
 + "eventSourceType": "other",
 + "specificProblem": "Calls cannot complete - pilot numbers are unavailable",
 + "eventSeverity": "CRITICAL",
 + "vfStatus": "Active",
 + "alarmAdditionalInformation": {
 + "PilotNumberPoolSize": "1000"
 + }
 + }
 + }
 +}
 +</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp> + <stringProp name="HTTPSampler.port">30417</stringProp> + <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp> + <stringProp name="HTTPSampler.method">POST</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true"> + <collectionProp name="AuthManager.auth_list"> + <elementProp name="" elementType="Authorization"> + <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp> + <stringProp name="Authorization.username">sample1</stringProp> + <stringProp name="Authorization.password">sample1</stringProp> + <stringProp name="Authorization.domain"></stringProp> + <stringProp name="Authorization.realm"></stringProp> + </elementProp> + </collectionProp> + <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp> + </AuthManager> + <hashTree/> + <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true"> + <collectionProp name="HeaderManager.headers"> + <elementProp name="" elementType="Header"> + <stringProp name="Header.name">Content-Type</stringProp> + <stringProp name="Header.value">application/json</stringProp> + </elementProp> + </collectionProp> + </HeaderManager> + <hashTree/> + <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true"> + <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true"> + <collectionProp name="Arguments.arguments"> + <elementProp name="influxdbMetricsSender" elementType="Argument"> + <stringProp name="Argument.name">influxdbMetricsSender</stringProp> + <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="influxdbUrl" elementType="Argument"> + <stringProp name="Argument.name">influxdbUrl</stringProp> + <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="application" elementType="Argument"> + <stringProp name="Argument.name">application</stringProp> + <stringProp name="Argument.value">ves</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="measurement" elementType="Argument"> + <stringProp name="Argument.name">measurement</stringProp> + <stringProp name="Argument.value">jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="summaryOnly" elementType="Argument"> + <stringProp name="Argument.name">summaryOnly</stringProp> + <stringProp name="Argument.value">false</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="samplersRegex" elementType="Argument"> + <stringProp name="Argument.name">samplersRegex</stringProp> + <stringProp name="Argument.value">.*</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="percentiles" elementType="Argument"> + <stringProp name="Argument.name">percentiles</stringProp> + <stringProp name="Argument.value">90;95;99</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="testTitle" elementType="Argument"> + <stringProp name="Argument.name">testTitle</stringProp> + <stringProp name="Argument.value">Test name</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="eventTags" elementType="Argument"> + <stringProp name="Argument.name">eventTags</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp> + </BackendListener> + <hashTree/> + </hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">1</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">5000</stringProp> + <stringProp name="ThreadGroup.ramp_time">150</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> + </ThreadGroup> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "event": {
 + "commonEventHeader": {
 + "version": "4.0.1",
 + "vesEventListenerVersion": "7.0.1",
 + "domain": "fault",
 + "eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion",
 + "eventId": "fault0000245",
 + "sequence": 1,
 + "priority": "High",
 + "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
 + "reportingEntityName": "ibcx0001vm002oam001",
 + "sourceId": "de305d54-75b4-431b-dupa-eb6b9e546014",
 + "sourceName": "scfx0001vm002cap001",
 + "nfVendorName": "SomeNamee",
 + "nfNamingCode": "scfx",
 + "nfcNamingCode": "ssc",
 + "startEpochMicrosec": ${__time()},
 + "lastEpochMicrosec": ${__time()},
 + "timeZoneOffset": "UTC-05:30"
 + },
 + "faultFields": {
 + "faultFieldsVersion": "4.0",
 + "alarmCondition": "PilotNumberPoolExhaustion",
 + "eventSourceType": "other",
 + "specificProblem": "Calls cannot complete - pilot numbers are unavailable",
 + "eventSeverity": "CRITICAL",
 + "vfStatus": "Active",
 + "alarmAdditionalInformation": {
 + "PilotNumberPoolSize": "1000"
 + }
 + }
 + }
 +}
 +</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp> + <stringProp name="HTTPSampler.port">30417</stringProp> + <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp> + <stringProp name="HTTPSampler.method">POST</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true"> + <collectionProp name="AuthManager.auth_list"> + <elementProp name="" elementType="Authorization"> + <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp> + <stringProp name="Authorization.username">sample1</stringProp> + <stringProp name="Authorization.password">sample1</stringProp> + <stringProp name="Authorization.domain"></stringProp> + <stringProp name="Authorization.realm"></stringProp> + </elementProp> + </collectionProp> + <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp> + </AuthManager> + <hashTree/> + <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true"> + <collectionProp name="HeaderManager.headers"> + <elementProp name="" elementType="Header"> + <stringProp name="Header.name">Content-Type</stringProp> + <stringProp name="Header.value">application/json</stringProp> + </elementProp> + </collectionProp> + </HeaderManager> + <hashTree/> + <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true"> + <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true"> + <collectionProp name="Arguments.arguments"> + <elementProp name="influxdbMetricsSender" elementType="Argument"> + <stringProp name="Argument.name">influxdbMetricsSender</stringProp> + <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="influxdbUrl" elementType="Argument"> + <stringProp name="Argument.name">influxdbUrl</stringProp> + <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="application" elementType="Argument"> + <stringProp name="Argument.name">application</stringProp> + <stringProp name="Argument.value">ves</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="measurement" elementType="Argument"> + <stringProp name="Argument.name">measurement</stringProp> + <stringProp name="Argument.value">jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="summaryOnly" elementType="Argument"> + <stringProp name="Argument.name">summaryOnly</stringProp> + <stringProp name="Argument.value">false</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="samplersRegex" elementType="Argument"> + <stringProp name="Argument.name">samplersRegex</stringProp> + <stringProp name="Argument.value">.*</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="percentiles" elementType="Argument"> + <stringProp name="Argument.name">percentiles</stringProp> + <stringProp name="Argument.value">90;95;99</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="testTitle" elementType="Argument"> + <stringProp name="Argument.name">testTitle</stringProp> + <stringProp name="Argument.value">Test name</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="eventTags" elementType="Argument"> + <stringProp name="Argument.name">eventTags</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp> + </BackendListener> + <hashTree/> + </hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">1</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">7500</stringProp> + <stringProp name="ThreadGroup.ramp_time">150</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> + </ThreadGroup> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "event": {
 + "commonEventHeader": {
 + "version": "4.0.1",
 + "vesEventListenerVersion": "7.0.1",
 + "domain": "fault",
 + "eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion",
 + "eventId": "fault0000245",
 + "sequence": 1,
 + "priority": "High",
 + "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
 + "reportingEntityName": "ibcx0001vm002oam001",
 + "sourceId": "de305d54-75b4-431b-dupa-eb6b9e546014",
 + "sourceName": "scfx0001vm002cap001",
 + "nfVendorName": "SomeNamee",
 + "nfNamingCode": "scfx",
 + "nfcNamingCode": "ssc",
 + "startEpochMicrosec": ${__time()},
 + "lastEpochMicrosec": ${__time()},
 + "timeZoneOffset": "UTC-05:30"
 + },
 + "faultFields": {
 + "faultFieldsVersion": "4.0",
 + "alarmCondition": "PilotNumberPoolExhaustion",
 + "eventSourceType": "other",
 + "specificProblem": "Calls cannot complete - pilot numbers are unavailable",
 + "eventSeverity": "CRITICAL",
 + "vfStatus": "Active",
 + "alarmAdditionalInformation": {
 + "PilotNumberPoolSize": "1000"
 + }
 + }
 + }
 +}
 +</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp> + <stringProp name="HTTPSampler.port">30417</stringProp> + <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp> + <stringProp name="HTTPSampler.method">POST</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true"> + <collectionProp name="AuthManager.auth_list"> + <elementProp name="" elementType="Authorization"> + <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp> + <stringProp name="Authorization.username">sample1</stringProp> + <stringProp name="Authorization.password">sample1</stringProp> + <stringProp name="Authorization.domain"></stringProp> + <stringProp name="Authorization.realm"></stringProp> + </elementProp> + </collectionProp> + <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp> + </AuthManager> + <hashTree/> + <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true"> + <collectionProp name="HeaderManager.headers"> + <elementProp name="" elementType="Header"> + <stringProp name="Header.name">Content-Type</stringProp> + <stringProp name="Header.value">application/json</stringProp> + </elementProp> + </collectionProp> + </HeaderManager> + <hashTree/> + <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true"> + <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true"> + <collectionProp name="Arguments.arguments"> + <elementProp name="influxdbMetricsSender" elementType="Argument"> + <stringProp name="Argument.name">influxdbMetricsSender</stringProp> + <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="influxdbUrl" elementType="Argument"> + <stringProp name="Argument.name">influxdbUrl</stringProp> + <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="application" elementType="Argument"> + <stringProp name="Argument.name">application</stringProp> + <stringProp name="Argument.value">ves</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="measurement" elementType="Argument"> + <stringProp name="Argument.name">measurement</stringProp> + <stringProp name="Argument.value">jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="summaryOnly" elementType="Argument"> + <stringProp name="Argument.name">summaryOnly</stringProp> + <stringProp name="Argument.value">false</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="samplersRegex" elementType="Argument"> + <stringProp name="Argument.name">samplersRegex</stringProp> + <stringProp name="Argument.value">.*</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="percentiles" elementType="Argument"> + <stringProp name="Argument.name">percentiles</stringProp> + <stringProp name="Argument.value">90;95;99</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="testTitle" elementType="Argument"> + <stringProp name="Argument.name">testTitle</stringProp> + <stringProp name="Argument.value">Test name</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="eventTags" elementType="Argument"> + <stringProp name="Argument.name">eventTags</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp> + </BackendListener> + <hashTree/> + </hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">1</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">10000</stringProp> + <stringProp name="ThreadGroup.ramp_time">150</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> + </ThreadGroup> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "event": {
 + "commonEventHeader": {
 + "version": "4.0.1",
 + "vesEventListenerVersion": "7.0.1",
 + "domain": "fault",
 + "eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion",
 + "eventId": "fault0000245",
 + "sequence": 1,
 + "priority": "High",
 + "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
 + "reportingEntityName": "ibcx0001vm002oam001",
 + "sourceId": "de305d54-75b4-431b-dupa-eb6b9e546014",
 + "sourceName": "scfx0001vm002cap001",
 + "nfVendorName": "SomeNamee",
 + "nfNamingCode": "scfx",
 + "nfcNamingCode": "ssc",
 + "startEpochMicrosec": ${__time()},
 + "lastEpochMicrosec": ${__time()},
 + "timeZoneOffset": "UTC-05:30"
 + },
 + "faultFields": {
 + "faultFieldsVersion": "4.0",
 + "alarmCondition": "PilotNumberPoolExhaustion",
 + "eventSourceType": "other",
 + "specificProblem": "Calls cannot complete - pilot numbers are unavailable",
 + "eventSeverity": "CRITICAL",
 + "vfStatus": "Active",
 + "alarmAdditionalInformation": {
 + "PilotNumberPoolSize": "1000"
 + }
 + }
 + }
 +}
 +</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp> + <stringProp name="HTTPSampler.port">30417</stringProp> + <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp> + <stringProp name="HTTPSampler.method">POST</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree/> + <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true"> + <collectionProp name="AuthManager.auth_list"> + <elementProp name="" elementType="Authorization"> + <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp> + <stringProp name="Authorization.username">sample1</stringProp> + <stringProp name="Authorization.password">sample1</stringProp> + <stringProp name="Authorization.domain"></stringProp> + <stringProp name="Authorization.realm"></stringProp> + </elementProp> + </collectionProp> + <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp> + </AuthManager> + <hashTree/> + <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true"> + <collectionProp name="HeaderManager.headers"> + <elementProp name="" elementType="Header"> + <stringProp name="Header.name">Content-Type</stringProp> + <stringProp name="Header.value">application/json</stringProp> + </elementProp> + </collectionProp> + </HeaderManager> + <hashTree/> + <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true"> + <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true"> + <collectionProp name="Arguments.arguments"> + <elementProp name="influxdbMetricsSender" elementType="Argument"> + <stringProp name="Argument.name">influxdbMetricsSender</stringProp> + <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="influxdbUrl" elementType="Argument"> + <stringProp name="Argument.name">influxdbUrl</stringProp> + <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="application" elementType="Argument"> + <stringProp name="Argument.name">application</stringProp> + <stringProp name="Argument.value">ves</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="measurement" elementType="Argument"> + <stringProp name="Argument.name">measurement</stringProp> + <stringProp name="Argument.value">jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="summaryOnly" elementType="Argument"> + <stringProp name="Argument.name">summaryOnly</stringProp> + <stringProp name="Argument.value">false</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="samplersRegex" elementType="Argument"> + <stringProp name="Argument.name">samplersRegex</stringProp> + <stringProp name="Argument.value">.*</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="percentiles" elementType="Argument"> + <stringProp name="Argument.name">percentiles</stringProp> + <stringProp name="Argument.value">90;95;99</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="testTitle" elementType="Argument"> + <stringProp name="Argument.name">testTitle</stringProp> + <stringProp name="Argument.value">Test name</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="eventTags" elementType="Argument"> + <stringProp name="Argument.name">eventTags</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp> + </BackendListener> + <hashTree/> + </hashTree> + </hashTree> + </hashTree> +</jmeterTestPlan> diff --git a/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_1k_rps.jmx b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_1k_rps.jmx new file mode 100644 index 00000000..5308b01b --- /dev/null +++ b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_1k_rps.jmx @@ -0,0 +1,242 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.3"> + <hashTree> + <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="test_scenario_2_1k_rps" enabled="true"> + <stringProp name="TestPlan.comments">1k request / 1s</stringProp> + <boolProp name="TestPlan.functional_mode">false</boolProp> + <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp> + <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> + <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="TestPlan.user_define_classpath"></stringProp> + </TestPlan> + <hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">1</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">1000</stringProp> + <stringProp name="ThreadGroup.ramp_time">1</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> + </ThreadGroup> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "event": {
 + "commonEventHeader": {
 + "version": "4.0.1",
 + "vesEventListenerVersion": "7.0.1",
 + "domain": "fault",
 + "eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion",
 + "eventId": "fault0000245",
 + "sequence": 1,
 + "priority": "High",
 + "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
 + "reportingEntityName": "ibcx0001vm002oam001",
 + "sourceId": "de305d54-75b4-431b-adb2-eb6b9e546014",
 + "sourceName": "scfx0001vm002cap001",
 + "nfVendorName": "SomeNamee",
 + "nfNamingCode": "scfx",
 + "nfcNamingCode": "ssc",
 + "startEpochMicrosec": ${__time()},
 + "lastEpochMicrosec": 1413378172000000,
 + "timeZoneOffset": "UTC-05:30"
 + },
 + "faultFields": {
 + "faultFieldsVersion": "4.0",
 + "alarmCondition": "PilotNumberPoolExhaustion",
 + "eventSourceType": "other",
 + "specificProblem": "Calls cannot complete - pilot numbers are unavailable",
 + "eventSeverity": "CRITICAL",
 + "vfStatus": "Active",
 + "alarmAdditionalInformation": {
 + "PilotNumberPoolSize": "1000"
 + }
 + }
 + }
 +}
 +</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp> + <stringProp name="HTTPSampler.port">30417</stringProp> + <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp> + <stringProp name="HTTPSampler.method">POST</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree> + <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + </hashTree> + <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true"> + <collectionProp name="AuthManager.auth_list"> + <elementProp name="" elementType="Authorization"> + <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp> + <stringProp name="Authorization.username">sample1</stringProp> + <stringProp name="Authorization.password">sample1</stringProp> + <stringProp name="Authorization.domain"></stringProp> + <stringProp name="Authorization.realm"></stringProp> + </elementProp> + </collectionProp> + <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp> + </AuthManager> + <hashTree/> + <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true"> + <collectionProp name="HeaderManager.headers"> + <elementProp name="" elementType="Header"> + <stringProp name="Header.name">Content-Type</stringProp> + <stringProp name="Header.value">application/json</stringProp> + </elementProp> + </collectionProp> + </HeaderManager> + <hashTree/> + <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true"> + <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true"> + <collectionProp name="Arguments.arguments"> + <elementProp name="influxdbMetricsSender" elementType="Argument"> + <stringProp name="Argument.name">influxdbMetricsSender</stringProp> + <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="influxdbUrl" elementType="Argument"> + <stringProp name="Argument.name">influxdbUrl</stringProp> + <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="application" elementType="Argument"> + <stringProp name="Argument.name">application</stringProp> + <stringProp name="Argument.value">ves</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="measurement" elementType="Argument"> + <stringProp name="Argument.name">measurement</stringProp> + <stringProp name="Argument.value">jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="summaryOnly" elementType="Argument"> + <stringProp name="Argument.name">summaryOnly</stringProp> + <stringProp name="Argument.value">false</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="samplersRegex" elementType="Argument"> + <stringProp name="Argument.name">samplersRegex</stringProp> + <stringProp name="Argument.value">.*</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="percentiles" elementType="Argument"> + <stringProp name="Argument.name">percentiles</stringProp> + <stringProp name="Argument.value">90;95;99</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="testTitle" elementType="Argument"> + <stringProp name="Argument.name">testTitle</stringProp> + <stringProp name="Argument.value">Test name</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="eventTags" elementType="Argument"> + <stringProp name="Argument.name">eventTags</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp> + </BackendListener> + <hashTree/> + </hashTree> + </hashTree> + </hashTree> +</jmeterTestPlan> diff --git a/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_2k_rps.jmx b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_2k_rps.jmx new file mode 100644 index 00000000..82768314 --- /dev/null +++ b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_2k_rps.jmx @@ -0,0 +1,242 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.3"> + <hashTree> + <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="test_scenario_2_2k_rps" enabled="true"> + <stringProp name="TestPlan.comments">2k request / 1s</stringProp> + <boolProp name="TestPlan.functional_mode">false</boolProp> + <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp> + <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> + <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="TestPlan.user_define_classpath"></stringProp> + </TestPlan> + <hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">1</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">2000</stringProp> + <stringProp name="ThreadGroup.ramp_time">1</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> + </ThreadGroup> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "event": {
 + "commonEventHeader": {
 + "version": "4.0.1",
 + "vesEventListenerVersion": "7.0.1",
 + "domain": "fault",
 + "eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion",
 + "eventId": "fault0000245",
 + "sequence": 1,
 + "priority": "High",
 + "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
 + "reportingEntityName": "ibcx0001vm002oam001",
 + "sourceId": "de305d54-75b4-431b-adb2-eb6b9e546014",
 + "sourceName": "scfx0001vm002cap001",
 + "nfVendorName": "SomeNamee",
 + "nfNamingCode": "scfx",
 + "nfcNamingCode": "ssc",
 + "startEpochMicrosec": ${__time()},
 + "lastEpochMicrosec": 1413378172000000,
 + "timeZoneOffset": "UTC-05:30"
 + },
 + "faultFields": {
 + "faultFieldsVersion": "4.0",
 + "alarmCondition": "PilotNumberPoolExhaustion",
 + "eventSourceType": "other",
 + "specificProblem": "Calls cannot complete - pilot numbers are unavailable",
 + "eventSeverity": "CRITICAL",
 + "vfStatus": "Active",
 + "alarmAdditionalInformation": {
 + "PilotNumberPoolSize": "1000"
 + }
 + }
 + }
 +}
 +</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp> + <stringProp name="HTTPSampler.port">30417</stringProp> + <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp> + <stringProp name="HTTPSampler.method">POST</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree> + <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + </hashTree> + <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true"> + <collectionProp name="AuthManager.auth_list"> + <elementProp name="" elementType="Authorization"> + <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp> + <stringProp name="Authorization.username">sample1</stringProp> + <stringProp name="Authorization.password">sample1</stringProp> + <stringProp name="Authorization.domain"></stringProp> + <stringProp name="Authorization.realm"></stringProp> + </elementProp> + </collectionProp> + <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp> + </AuthManager> + <hashTree/> + <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true"> + <collectionProp name="HeaderManager.headers"> + <elementProp name="" elementType="Header"> + <stringProp name="Header.name">Content-Type</stringProp> + <stringProp name="Header.value">application/json</stringProp> + </elementProp> + </collectionProp> + </HeaderManager> + <hashTree/> + <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true"> + <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true"> + <collectionProp name="Arguments.arguments"> + <elementProp name="influxdbMetricsSender" elementType="Argument"> + <stringProp name="Argument.name">influxdbMetricsSender</stringProp> + <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="influxdbUrl" elementType="Argument"> + <stringProp name="Argument.name">influxdbUrl</stringProp> + <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="application" elementType="Argument"> + <stringProp name="Argument.name">application</stringProp> + <stringProp name="Argument.value">ves</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="measurement" elementType="Argument"> + <stringProp name="Argument.name">measurement</stringProp> + <stringProp name="Argument.value">jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="summaryOnly" elementType="Argument"> + <stringProp name="Argument.name">summaryOnly</stringProp> + <stringProp name="Argument.value">false</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="samplersRegex" elementType="Argument"> + <stringProp name="Argument.name">samplersRegex</stringProp> + <stringProp name="Argument.value">.*</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="percentiles" elementType="Argument"> + <stringProp name="Argument.name">percentiles</stringProp> + <stringProp name="Argument.value">90;95;99</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="testTitle" elementType="Argument"> + <stringProp name="Argument.name">testTitle</stringProp> + <stringProp name="Argument.value">Test name</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="eventTags" elementType="Argument"> + <stringProp name="Argument.name">eventTags</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp> + </BackendListener> + <hashTree/> + </hashTree> + </hashTree> + </hashTree> +</jmeterTestPlan> diff --git a/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_3k_rps.jmx b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_3k_rps.jmx new file mode 100644 index 00000000..5ee6aef1 --- /dev/null +++ b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_3k_rps.jmx @@ -0,0 +1,242 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.3"> + <hashTree> + <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="test_scenario_2_5k_rps" enabled="true"> + <stringProp name="TestPlan.comments">3k request / 1s</stringProp> + <boolProp name="TestPlan.functional_mode">false</boolProp> + <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp> + <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> + <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="TestPlan.user_define_classpath"></stringProp> + </TestPlan> + <hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">1</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">3000</stringProp> + <stringProp name="ThreadGroup.ramp_time">1</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> + </ThreadGroup> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "event": {
 + "commonEventHeader": {
 + "version": "4.0.1",
 + "vesEventListenerVersion": "7.0.1",
 + "domain": "fault",
 + "eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion",
 + "eventId": "fault0000245",
 + "sequence": 1,
 + "priority": "High",
 + "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
 + "reportingEntityName": "ibcx0001vm002oam001",
 + "sourceId": "de305d54-75b4-431b-adb2-eb6b9e546014",
 + "sourceName": "scfx0001vm002cap001",
 + "nfVendorName": "SomeNamee",
 + "nfNamingCode": "scfx",
 + "nfcNamingCode": "ssc",
 + "startEpochMicrosec": ${__time()},
 + "lastEpochMicrosec": 1413378172000000,
 + "timeZoneOffset": "UTC-05:30"
 + },
 + "faultFields": {
 + "faultFieldsVersion": "4.0",
 + "alarmCondition": "PilotNumberPoolExhaustion",
 + "eventSourceType": "other",
 + "specificProblem": "Calls cannot complete - pilot numbers are unavailable",
 + "eventSeverity": "CRITICAL",
 + "vfStatus": "Active",
 + "alarmAdditionalInformation": {
 + "PilotNumberPoolSize": "1000"
 + }
 + }
 + }
 +}
 +</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp> + <stringProp name="HTTPSampler.port">30417</stringProp> + <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp> + <stringProp name="HTTPSampler.method">POST</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree> + <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + </hashTree> + <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true"> + <collectionProp name="AuthManager.auth_list"> + <elementProp name="" elementType="Authorization"> + <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp> + <stringProp name="Authorization.username">sample1</stringProp> + <stringProp name="Authorization.password">sample1</stringProp> + <stringProp name="Authorization.domain"></stringProp> + <stringProp name="Authorization.realm"></stringProp> + </elementProp> + </collectionProp> + <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp> + </AuthManager> + <hashTree/> + <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true"> + <collectionProp name="HeaderManager.headers"> + <elementProp name="" elementType="Header"> + <stringProp name="Header.name">Content-Type</stringProp> + <stringProp name="Header.value">application/json</stringProp> + </elementProp> + </collectionProp> + </HeaderManager> + <hashTree/> + <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true"> + <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true"> + <collectionProp name="Arguments.arguments"> + <elementProp name="influxdbMetricsSender" elementType="Argument"> + <stringProp name="Argument.name">influxdbMetricsSender</stringProp> + <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="influxdbUrl" elementType="Argument"> + <stringProp name="Argument.name">influxdbUrl</stringProp> + <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="application" elementType="Argument"> + <stringProp name="Argument.name">application</stringProp> + <stringProp name="Argument.value">ves</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="measurement" elementType="Argument"> + <stringProp name="Argument.name">measurement</stringProp> + <stringProp name="Argument.value">jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="summaryOnly" elementType="Argument"> + <stringProp name="Argument.name">summaryOnly</stringProp> + <stringProp name="Argument.value">false</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="samplersRegex" elementType="Argument"> + <stringProp name="Argument.name">samplersRegex</stringProp> + <stringProp name="Argument.value">.*</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="percentiles" elementType="Argument"> + <stringProp name="Argument.name">percentiles</stringProp> + <stringProp name="Argument.value">90;95;99</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="testTitle" elementType="Argument"> + <stringProp name="Argument.name">testTitle</stringProp> + <stringProp name="Argument.value">Test name</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="eventTags" elementType="Argument"> + <stringProp name="Argument.name">eventTags</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp> + </BackendListener> + <hashTree/> + </hashTree> + </hashTree> + </hashTree> +</jmeterTestPlan> diff --git a/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_4k_rps.jmx b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_4k_rps.jmx new file mode 100644 index 00000000..96b53702 --- /dev/null +++ b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_4k_rps.jmx @@ -0,0 +1,242 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.3"> + <hashTree> + <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="test_scenario_2_10k_rps" enabled="true"> + <stringProp name="TestPlan.comments">4k request / 1s</stringProp> + <boolProp name="TestPlan.functional_mode">false</boolProp> + <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp> + <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> + <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="TestPlan.user_define_classpath"></stringProp> + </TestPlan> + <hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">1</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">4000</stringProp> + <stringProp name="ThreadGroup.ramp_time">1</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> + </ThreadGroup> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "event": {
 + "commonEventHeader": {
 + "version": "4.0.1",
 + "vesEventListenerVersion": "7.0.1",
 + "domain": "fault",
 + "eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion",
 + "eventId": "fault0000245",
 + "sequence": 1,
 + "priority": "High",
 + "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
 + "reportingEntityName": "ibcx0001vm002oam001",
 + "sourceId": "de305d54-75b4-431b-adb2-eb6b9e546014",
 + "sourceName": "scfx0001vm002cap001",
 + "nfVendorName": "SomeNamee",
 + "nfNamingCode": "scfx",
 + "nfcNamingCode": "ssc",
 + "startEpochMicrosec": ${__time()},
 + "lastEpochMicrosec": 1413378172000000,
 + "timeZoneOffset": "UTC-05:30"
 + },
 + "faultFields": {
 + "faultFieldsVersion": "4.0",
 + "alarmCondition": "PilotNumberPoolExhaustion",
 + "eventSourceType": "other",
 + "specificProblem": "Calls cannot complete - pilot numbers are unavailable",
 + "eventSeverity": "CRITICAL",
 + "vfStatus": "Active",
 + "alarmAdditionalInformation": {
 + "PilotNumberPoolSize": "1000"
 + }
 + }
 + }
 +}
 +</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp> + <stringProp name="HTTPSampler.port">30417</stringProp> + <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp> + <stringProp name="HTTPSampler.method">POST</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree> + <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + </hashTree> + <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true"> + <collectionProp name="AuthManager.auth_list"> + <elementProp name="" elementType="Authorization"> + <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp> + <stringProp name="Authorization.username">sample1</stringProp> + <stringProp name="Authorization.password">sample1</stringProp> + <stringProp name="Authorization.domain"></stringProp> + <stringProp name="Authorization.realm"></stringProp> + </elementProp> + </collectionProp> + <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp> + </AuthManager> + <hashTree/> + <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true"> + <collectionProp name="HeaderManager.headers"> + <elementProp name="" elementType="Header"> + <stringProp name="Header.name">Content-Type</stringProp> + <stringProp name="Header.value">application/json</stringProp> + </elementProp> + </collectionProp> + </HeaderManager> + <hashTree/> + <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true"> + <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true"> + <collectionProp name="Arguments.arguments"> + <elementProp name="influxdbMetricsSender" elementType="Argument"> + <stringProp name="Argument.name">influxdbMetricsSender</stringProp> + <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="influxdbUrl" elementType="Argument"> + <stringProp name="Argument.name">influxdbUrl</stringProp> + <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="application" elementType="Argument"> + <stringProp name="Argument.name">application</stringProp> + <stringProp name="Argument.value">ves</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="measurement" elementType="Argument"> + <stringProp name="Argument.name">measurement</stringProp> + <stringProp name="Argument.value">jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="summaryOnly" elementType="Argument"> + <stringProp name="Argument.name">summaryOnly</stringProp> + <stringProp name="Argument.value">false</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="samplersRegex" elementType="Argument"> + <stringProp name="Argument.name">samplersRegex</stringProp> + <stringProp name="Argument.value">.*</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="percentiles" elementType="Argument"> + <stringProp name="Argument.name">percentiles</stringProp> + <stringProp name="Argument.value">90;95;99</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="testTitle" elementType="Argument"> + <stringProp name="Argument.name">testTitle</stringProp> + <stringProp name="Argument.value">Test name</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="eventTags" elementType="Argument"> + <stringProp name="Argument.name">eventTags</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp> + </BackendListener> + <hashTree/> + </hashTree> + </hashTree> + </hashTree> +</jmeterTestPlan> diff --git a/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_5k_rps.jmx b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_5k_rps.jmx new file mode 100644 index 00000000..49ff743d --- /dev/null +++ b/performanceTests/environment/jmeterVM/jmeter/testScenarios/2_test_scenario_5k_rps.jmx @@ -0,0 +1,242 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.3"> + <hashTree> + <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="test_scenario_2_10k_rps" enabled="true"> + <stringProp name="TestPlan.comments">5k request / 1s</stringProp> + <boolProp name="TestPlan.functional_mode">false</boolProp> + <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp> + <boolProp name="TestPlan.serialize_threadgroups">false</boolProp> + <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> + <collectionProp name="Arguments.arguments"/> + </elementProp> + <stringProp name="TestPlan.user_define_classpath"></stringProp> + </TestPlan> + <hashTree> + <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true"> + <stringProp name="ThreadGroup.on_sample_error">startnextloop</stringProp> + <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> + <boolProp name="LoopController.continue_forever">false</boolProp> + <stringProp name="LoopController.loops">1</stringProp> + </elementProp> + <stringProp name="ThreadGroup.num_threads">5000</stringProp> + <stringProp name="ThreadGroup.ramp_time">1</stringProp> + <boolProp name="ThreadGroup.scheduler">false</boolProp> + <stringProp name="ThreadGroup.duration"></stringProp> + <stringProp name="ThreadGroup.delay"></stringProp> + <boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp> + </ThreadGroup> + <hashTree> + <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="HTTP Request" enabled="true"> + <boolProp name="HTTPSampler.postBodyRaw">true</boolProp> + <elementProp name="HTTPsampler.Arguments" elementType="Arguments"> + <collectionProp name="Arguments.arguments"> + <elementProp name="" elementType="HTTPArgument"> + <boolProp name="HTTPArgument.always_encode">false</boolProp> + <stringProp name="Argument.value">{
 + "event": {
 + "commonEventHeader": {
 + "version": "4.0.1",
 + "vesEventListenerVersion": "7.0.1",
 + "domain": "fault",
 + "eventName": "Fault_Vscf:Acs-Ericcson_PilotNumberPoolExhaustion",
 + "eventId": "fault0000245",
 + "sequence": 1,
 + "priority": "High",
 + "reportingEntityId": "cc305d54-75b4-431b-adb2-eb6b9e541234",
 + "reportingEntityName": "ibcx0001vm002oam001",
 + "sourceId": "de305d54-75b4-431b-adb2-eb6b9e546014",
 + "sourceName": "scfx0001vm002cap001",
 + "nfVendorName": "SomeNamee",
 + "nfNamingCode": "scfx",
 + "nfcNamingCode": "ssc",
 + "startEpochMicrosec": ${__time()},
 + "lastEpochMicrosec": 1413378172000000,
 + "timeZoneOffset": "UTC-05:30"
 + },
 + "faultFields": {
 + "faultFieldsVersion": "4.0",
 + "alarmCondition": "PilotNumberPoolExhaustion",
 + "eventSourceType": "other",
 + "specificProblem": "Calls cannot complete - pilot numbers are unavailable",
 + "eventSeverity": "CRITICAL",
 + "vfStatus": "Active",
 + "alarmAdditionalInformation": {
 + "PilotNumberPoolSize": "1000"
 + }
 + }
 + }
 +}
 +</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="HTTPSampler.domain">WORKER_IP</stringProp> + <stringProp name="HTTPSampler.port">30417</stringProp> + <stringProp name="HTTPSampler.protocol">https</stringProp> + <stringProp name="HTTPSampler.contentEncoding"></stringProp> + <stringProp name="HTTPSampler.path">/eventListener/v7</stringProp> + <stringProp name="HTTPSampler.method">POST</stringProp> + <boolProp name="HTTPSampler.follow_redirects">true</boolProp> + <boolProp name="HTTPSampler.auto_redirects">false</boolProp> + <boolProp name="HTTPSampler.use_keepalive">true</boolProp> + <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp> + <stringProp name="HTTPSampler.embedded_url_re"></stringProp> + <stringProp name="HTTPSampler.connect_timeout"></stringProp> + <stringProp name="HTTPSampler.response_timeout"></stringProp> + </HTTPSamplerProxy> + <hashTree> + <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="View Results in Table" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true"> + <boolProp name="ResultCollector.error_logging">false</boolProp> + <objProp> + <name>saveConfig</name> + <value class="SampleSaveConfiguration"> + <time>true</time> + <latency>true</latency> + <timestamp>true</timestamp> + <success>true</success> + <label>true</label> + <code>true</code> + <message>true</message> + <threadName>true</threadName> + <dataType>true</dataType> + <encoding>false</encoding> + <assertions>true</assertions> + <subresults>true</subresults> + <responseData>false</responseData> + <samplerData>false</samplerData> + <xml>false</xml> + <fieldNames>true</fieldNames> + <responseHeaders>false</responseHeaders> + <requestHeaders>false</requestHeaders> + <responseDataOnError>false</responseDataOnError> + <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage> + <assertionsResultsToSave>0</assertionsResultsToSave> + <bytes>true</bytes> + <sentBytes>true</sentBytes> + <url>true</url> + <threadCounts>true</threadCounts> + <idleTime>true</idleTime> + <connectTime>true</connectTime> + </value> + </objProp> + <stringProp name="filename"></stringProp> + </ResultCollector> + <hashTree/> + </hashTree> + <AuthManager guiclass="AuthPanel" testclass="AuthManager" testname="HTTP Authorization Manager" enabled="true"> + <collectionProp name="AuthManager.auth_list"> + <elementProp name="" elementType="Authorization"> + <stringProp name="Authorization.url">https://WORKER_IP:30417/eventListener/v7</stringProp> + <stringProp name="Authorization.username">sample1</stringProp> + <stringProp name="Authorization.password">sample1</stringProp> + <stringProp name="Authorization.domain"></stringProp> + <stringProp name="Authorization.realm"></stringProp> + </elementProp> + </collectionProp> + <boolProp name="AuthManager.controlledByThreadGroup">false</boolProp> + </AuthManager> + <hashTree/> + <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true"> + <collectionProp name="HeaderManager.headers"> + <elementProp name="" elementType="Header"> + <stringProp name="Header.name">Content-Type</stringProp> + <stringProp name="Header.value">application/json</stringProp> + </elementProp> + </collectionProp> + </HeaderManager> + <hashTree/> + <BackendListener guiclass="BackendListenerGui" testclass="BackendListener" testname="Backend Listener" enabled="true"> + <elementProp name="arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" enabled="true"> + <collectionProp name="Arguments.arguments"> + <elementProp name="influxdbMetricsSender" elementType="Argument"> + <stringProp name="Argument.name">influxdbMetricsSender</stringProp> + <stringProp name="Argument.value">org.apache.jmeter.visualizers.backend.influxdb.HttpMetricsSender</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="influxdbUrl" elementType="Argument"> + <stringProp name="Argument.name">influxdbUrl</stringProp> + <stringProp name="Argument.value">http://WORKER_IP:30002/write?db=jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="application" elementType="Argument"> + <stringProp name="Argument.name">application</stringProp> + <stringProp name="Argument.value">ves</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="measurement" elementType="Argument"> + <stringProp name="Argument.name">measurement</stringProp> + <stringProp name="Argument.value">jmeter</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="summaryOnly" elementType="Argument"> + <stringProp name="Argument.name">summaryOnly</stringProp> + <stringProp name="Argument.value">false</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="samplersRegex" elementType="Argument"> + <stringProp name="Argument.name">samplersRegex</stringProp> + <stringProp name="Argument.value">.*</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="percentiles" elementType="Argument"> + <stringProp name="Argument.name">percentiles</stringProp> + <stringProp name="Argument.value">90;95;99</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="testTitle" elementType="Argument"> + <stringProp name="Argument.name">testTitle</stringProp> + <stringProp name="Argument.value">Test name</stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + <elementProp name="eventTags" elementType="Argument"> + <stringProp name="Argument.name">eventTags</stringProp> + <stringProp name="Argument.value"></stringProp> + <stringProp name="Argument.metadata">=</stringProp> + </elementProp> + </collectionProp> + </elementProp> + <stringProp name="classname">org.apache.jmeter.visualizers.backend.influxdb.InfluxdbBackendListenerClient</stringProp> + </BackendListener> + <hashTree/> + </hashTree> + </hashTree> + </hashTree> +</jmeterTestPlan> diff --git a/performanceTests/environment/jmeterVM/jmeter/test_scenario.jmx b/performanceTests/environment/jmeterVM/jmeter/testScenarios/simple_test_scenario.jmx index 6cfb08dc..8848374f 100644 --- a/performanceTests/environment/jmeterVM/jmeter/test_scenario.jmx +++ b/performanceTests/environment/jmeterVM/jmeter/testScenarios/simple_test_scenario.jmx @@ -18,8 +18,8 @@ <boolProp name="LoopController.continue_forever">false</boolProp> <stringProp name="LoopController.loops">1</stringProp> </elementProp> - <stringProp name="ThreadGroup.num_threads">250</stringProp> - <stringProp name="ThreadGroup.ramp_time">10</stringProp> + <stringProp name="ThreadGroup.num_threads">10000</stringProp> + <stringProp name="ThreadGroup.ramp_time">300</stringProp> <boolProp name="ThreadGroup.scheduler">false</boolProp> <stringProp name="ThreadGroup.duration"></stringProp> <stringProp name="ThreadGroup.delay"></stringProp> @@ -49,7 +49,7 @@ "nfVendorName": "SomeNamee",
 "nfNamingCode": "scfx",
 "nfcNamingCode": "ssc",
 - "startEpochMicrosec": 1413378172000000,
 + "startEpochMicrosec": ${__time()},
 "lastEpochMicrosec": 1413378172000000,
 "timeZoneOffset": "UTC-05:30"
 },
 |