From 23b34e0faaac877edf4f875e6eff0a75341520c5 Mon Sep 17 00:00:00 2001 From: Satyam Singh Date: Fri, 14 Jul 2023 11:27:21 +0530 Subject: [PATCH 1/2] Send batched events in smoke test --- testcases/smoke.js | 35 ++++++++++++++++++----------------- testcases/smoke_test.sh | 2 +- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/testcases/smoke.js b/testcases/smoke.js index d77a4da..48c58f2 100644 --- a/testcases/smoke.js +++ b/testcases/smoke.js @@ -1,6 +1,5 @@ import http from 'k6/http'; import { sleep } from 'k6'; -import { check } from 'k6'; import exec from 'k6/execution'; import encoding from 'k6/encoding'; import { randomString, randomItem, randomIntBetween, uuidv4 } from 'https://jslib.k6.io/k6-utils/1.4.0/index.js' @@ -131,18 +130,15 @@ function generateJSON(schema) { return json; } -function generateEvents() { +function generateEvents(num = 5) { const events = []; let numberOfSchemas = schemas(); - - if (!numberOfSchemas) { - numberOfSchemas = 5 - } - let listOfSchema = generateOverlappingSchemas(numberOfSchemas); - // generate event of random schema from the list - events.push(generateJSON(listOfSchema[Math.floor(Math.random() * listOfSchema.length)])) + // generate event of random schema from the list + for (let index = 0; index < num; index++) { + events.push(generateJSON(listOfSchema[Math.floor(Math.random() * listOfSchema.length)])); + } return events } @@ -163,15 +159,20 @@ export default function () { } } - let batch_requests = JSON.stringify(generateEvents()); + let events = generateEvents(5); - let response = http.post(url, batch_requests, params); + // send a request per event + let responses = http.batch(events.map(event => ['POST', url, JSON.stringify(event), params])) - if ( - !check(response, { - 'status code MUST be 200': (res) => res.status == 200, - }) - ) { - exec.test.abort("Failed to send event.. status != 200. Last response was: " + response.error); + if (responses.some(res => res.status != 200)) { + exec.test.abort("Failed to send event.. status != 200"); + } + + // send all events batched + let batched_request = JSON.stringify(events); + let response = http.post(url, batched_request, params); + + if (response.status != 200) { + exec.test.abort("Failed to send event.. status != 200"); } } diff --git a/testcases/smoke_test.sh b/testcases/smoke_test.sh index 2041803..01a6850 100755 --- a/testcases/smoke_test.sh +++ b/testcases/smoke_test.sh @@ -22,7 +22,7 @@ username=$3 password=$4 log_events=50 -k6_log_events=6000 +k6_log_events=60000 expectedCount=$((k6_log_events + log_events)) input_file=$PWD/input.json From f71dee710fcb37752a00b81e47f61adb7a1f48c2 Mon Sep 17 00:00:00 2001 From: Satyam Singh Date: Mon, 17 Jul 2023 14:33:11 +0530 Subject: [PATCH 2/2] Send batched before single events --- testcases/smoke.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/testcases/smoke.js b/testcases/smoke.js index 48c58f2..c2346ff 100644 --- a/testcases/smoke.js +++ b/testcases/smoke.js @@ -161,13 +161,6 @@ export default function () { let events = generateEvents(5); - // send a request per event - let responses = http.batch(events.map(event => ['POST', url, JSON.stringify(event), params])) - - if (responses.some(res => res.status != 200)) { - exec.test.abort("Failed to send event.. status != 200"); - } - // send all events batched let batched_request = JSON.stringify(events); let response = http.post(url, batched_request, params); @@ -175,4 +168,11 @@ export default function () { if (response.status != 200) { exec.test.abort("Failed to send event.. status != 200"); } + + // send a request per event + let responses = http.batch(events.map(event => ['POST', url, JSON.stringify(event), params])) + + if (responses.some(res => res.status != 200)) { + exec.test.abort("Failed to send event.. status != 200"); + } }