Randomize cm handle ids in a legacy batch array 93/140393/2
authorleventecsanyi <levente.csanyi@est.tech>
Thu, 6 Mar 2025 15:15:16 +0000 (16:15 +0100)
committerleventecsanyi <levente.csanyi@est.tech>
Thu, 6 Mar 2025 17:16:01 +0000 (18:16 +0100)
  - added new JS method to get a random list of CmHandle IDs

Issue-ID: CPS-2687
Change-Id: I3b02d4b7c03af3a05860e30b32877475b7e70dba
Signed-off-by: leventecsanyi <levente.csanyi@est.tech>
k6-tests/ncmp/common/utils.js
k6-tests/ncmp/ncmp-test-runner.js

index 6bedb1f..ee3e9c7 100644 (file)
@@ -47,6 +47,19 @@ export function makeBatchOfCmHandleIds(batchSize, batchNumber) {
     return Array.from({ length: batchSize }, (_, i) => `ch-${startIndex + i}`);
 }
 
+/**
+ * Generates an unordered batch of CM-handle IDs based on batch size.
+ * @returns {string[]} Array of CM-handle IDs, for example ['ch-8', 'ch-2' ... 'ch-32432']
+ */
+export function makeRandomBatchOfCmHandleIds() {
+    const cmHandleIds = new Set();
+    while (cmHandleIds.size < LEGACY_BATCH_THROUGHPUT_TEST_BATCH_SIZE) {
+        const randomNum = Math.floor(Math.random() * TOTAL_CM_HANDLES) + 1;
+        cmHandleIds.add('ch-' + randomNum);
+    }
+    return Array.from(cmHandleIds)
+}
+
 /**
  * Helper function to perform POST requests with JSON payload and content type.
  * @param {string} url - The URL to send the POST request to.
index 3c87057..89d1c0c 100644 (file)
@@ -23,9 +23,9 @@ import { Trend } from 'k6/metrics';
 import { Reader } from 'k6/x/kafka';
 import {
     TOTAL_CM_HANDLES, READ_DATA_FOR_CM_HANDLE_DELAY_MS, WRITE_DATA_FOR_CM_HANDLE_DELAY_MS,
-    makeCustomSummaryReport, makeBatchOfCmHandleIds, LEGACY_BATCH_THROUGHPUT_TEST_BATCH_SIZE,
-    REGISTRATION_BATCH_SIZE, LEGACY_BATCH_THROUGHPUT_TEST_NUMBER_OF_REQUESTS, KAFKA_BOOTSTRAP_SERVERS,
-    LEGACY_BATCH_TOPIC_NAME, CONTAINER_UP_TIME_IN_SECONDS, testConfig
+    makeCustomSummaryReport, makeBatchOfCmHandleIds, makeRandomBatchOfCmHandleIds,
+    LEGACY_BATCH_THROUGHPUT_TEST_BATCH_SIZE, REGISTRATION_BATCH_SIZE, LEGACY_BATCH_THROUGHPUT_TEST_NUMBER_OF_REQUESTS,
+    KAFKA_BOOTSTRAP_SERVERS, LEGACY_BATCH_TOPIC_NAME, CONTAINER_UP_TIME_IN_SECONDS, testConfig
 } from './common/utils.js';
 import { createCmHandles, deleteCmHandles, waitForAllCmHandlesToBeReady } from './common/cmhandle-crud.js';
 import { executeCmHandleSearch, executeCmHandleIdSearch } from './common/search-base.js';
@@ -215,7 +215,7 @@ export function cmHandleSearchTrustLevelScenario() {
 }
 
 export function legacyBatchProduceScenario() {
-    const nextBatchOfCmHandleIds = makeBatchOfCmHandleIds(LEGACY_BATCH_THROUGHPUT_TEST_BATCH_SIZE, 0);
+    const nextBatchOfCmHandleIds = makeRandomBatchOfCmHandleIds();
     const response = legacyBatchRead(nextBatchOfCmHandleIds);
     check(response, { 'data operation batch read status equals 200': (r) => r.status === 200 });
 }