k6-cucumber-steps 1.0.12 → 1.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.env CHANGED
@@ -10,7 +10,7 @@ TAGS=@loadTest
10
10
  # Base URLs
11
11
  # API_URL=https://unstable-performance.seamlesshrms.com
12
12
  # BASE_URL=https://unstable-performance.seamlesshrms.com
13
- BASE_URL=https://reqres.in
13
+ BASE_URL=https://postman-echo.com
14
14
 
15
15
  # Secret Parameters
16
16
  API_KEY=Talent123!
@@ -1,16 +1,19 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ console.log("-----------------------------------------");
4
+ console.log("🚀 Starting k6-cucumber-steps execution...");
5
+ console.log("-----------------------------------------");
6
+
3
7
  const path = require("path");
4
8
  const { spawn } = require("child_process");
5
9
  require("dotenv").config();
6
10
  const argv = require("yargs")
7
- .usage("Usage: $0 run --feature <path> [options]")
11
+ .usage("Usage: $0 run [options]") // Removed the --feature requirement from usage
8
12
  .option("feature", {
9
13
  alias: "f",
10
14
  describe: "Path to the feature file",
11
15
  type: "string",
12
- demandOption: true,
13
- })
16
+ }) // Keep the option but don't demand it
14
17
  .option("tags", { alias: "t", describe: "Cucumber tags", type: "string" })
15
18
  .option("reporter", {
16
19
  alias: "r",
@@ -20,11 +23,9 @@ const argv = require("yargs")
20
23
  })
21
24
  .help().argv;
22
25
 
23
- const featureFilePath = path.resolve(process.cwd(), argv.feature);
24
26
  const cucumberCommand = "npx";
25
27
  const cucumberArgs = [
26
28
  "cucumber-js",
27
- featureFilePath,
28
29
  "--require-module",
29
30
  "@babel/register",
30
31
  "--require",
@@ -34,11 +35,22 @@ const cucumberArgs = [
34
35
  "k6-cucumber-steps",
35
36
  "step_definitions"
36
37
  ),
38
+ "--require",
39
+ path.resolve(process.cwd(), "step_definitions"), // Keep the user's local step definitions as well
37
40
  "--format",
38
41
  "summary",
42
+ "--format",
43
+ "progress", // Add this line
39
44
  ];
40
45
 
41
- if (argv.tags) cucumberArgs.push("--tags", argv.tags);
46
+ // Explicitly add tags, defaulting to '@loadTest' if no TAGS env variable is set
47
+ const tagsFromEnv = process.env.TAGS || "@loadTest";
48
+ cucumberArgs.push("--tags", tagsFromEnv);
49
+
50
+ if (argv.feature) {
51
+ cucumberArgs.push(path.resolve(process.cwd(), argv.feature));
52
+ }
53
+
42
54
  if (argv.reporter) {
43
55
  const reportsDir = path.resolve(process.cwd(), "reports");
44
56
  cucumberArgs.push(
@@ -50,9 +62,6 @@ if (argv.reporter) {
50
62
  }
51
63
 
52
64
  async function main() {
53
- const fullCommand = `${cucumberCommand} ${cucumberArgs.join(" ")}`;
54
- console.log(`Running Cucumber using command: ${fullCommand}`);
55
-
56
65
  const cucumberProcess = spawn(cucumberCommand, cucumberArgs, {
57
66
  cwd: process.cwd(),
58
67
  stdio: "inherit",
package/cucumber.js CHANGED
@@ -1,26 +1,13 @@
1
- /**
2
- * @module cucumber
3
- * @description
4
- * This module configures the Cucumber.js test runner for load testing with k6.
5
- * It specifies the paths to feature files, step definitions, and the output format.
6
- * It also sets the timeout for each test and allows for filtering tests by tags.
7
- */
8
- const reporter = require("cucumber-html-reporter");
1
+ // cucumber.js
2
+
9
3
  module.exports = {
10
- default: {
11
- require: ["step_definitions/world.js", "step_definitions/*.js"],
12
- paths: ["src/examples/features/*.feature"],
13
- format: ["progress", "json:reports/load-results.json"],
14
- timeout: 60000,
15
- tags: process.env.TAGS || "@loadTest",
16
- },
4
+ require: ["./step_definitions/**/*.js"],
5
+ format: [
6
+ "summary",
7
+ "json:reports/load-report.json",
8
+ "html:reports/report.html",
9
+ ],
10
+ // Specify the path to your features folder here
11
+ paths: ["./features"],
12
+ tags: "@loadTest", // Default tag for load tests
17
13
  };
18
-
19
- // // Generate an HTML report after tests complete
20
- // reporter.generate({
21
- // theme: "bootstrap",
22
- // jsonFile: "reports/load-results.json",
23
- // output: "reports/report.html",
24
- // reportSuiteAsScenarios: true,
25
- // scenarioTimestamp: true,
26
- // });
@@ -1,34 +1,5 @@
1
- /**
2
- * @module generateHeaders
3
- * @description
4
- * This module generates HTTP headers for API requests based on the specified authentication type.
5
- * It supports API key, bearer token, and basic authentication.
6
- * Generates HTTP headers based on the specified authentication type.
7
- * Supported auth types: api_key, bearer_token, basic.
8
- * @param {string} authType - The type of authentication to use.
9
- * @param {object} env - The environment variables object.
10
- * @returns {object} - The generated headers object.
11
- * @throws {Error} - If the authentication type is unsupported.
12
- * @example
13
- * const headers = generateHeaders('api_key', process.env);
14
- * // headers will contain the API key in the x-api-key header.
15
- * @example
16
- * const headers = generateHeaders('bearer_token', process.env);
17
- * // headers will contain the bearer token in the Authorization header.
18
- * @example
19
- * const headers = generateHeaders('basic', process.env);
20
- * // headers will contain the basic auth credentials in the Authorization header.
21
- * @example
22
- * const headers = generateHeaders('none', process.env);
23
- * // headers will contain only the Content-Type header.
24
- * @example
25
- * const headers = generateHeaders('invalid_auth_type', process.env);
26
- * // throws an error: Unsupported authentication type: invalid_auth_type
27
- */
28
-
29
1
  module.exports = function buildK6Script(config) {
30
2
  const { method, endpoints, endpoint, body, headers, options } = config;
31
- console.log("Generating k6 script with config:", config);
32
3
  // Ensure at least one of `endpoints` or `endpoint` is defined
33
4
  if (!endpoints?.length && !endpoint) {
34
5
  throw new Error(
package/lib/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // Export all exports from your helper files
2
2
  export * from "../lib/helpers/buildK6Script";
3
3
  export * from "../lib/helpers/generateHeaders";
4
- export * from "..lib/helpers/resolveBody";
4
+ export * from "../lib/helpers/resolveBody";
5
5
  export * from "../lib/utils/k6Runner";
@@ -1,71 +1,87 @@
1
- import fs from "fs";
2
- import path from "path";
3
- import { v4 as uuidv4 } from "uuid";
4
- import { spawn } from "child_process";
1
+ const path = require("path");
2
+ const { exec } = require("child_process");
3
+ const { v4: uuidv4 } = require("uuid");
4
+ const fs = require("fs").promises; // Use promises for cleaner async/await
5
+ const packageJson = require("../../package.json"); // Access package version
5
6
 
6
7
  /**
7
8
  * Generates a temporary k6 script file.
8
9
  * @param {string} scriptContent - The content of the k6 script.
9
- * @param {string} scriptType - The type of script (default: "k6").
10
- * @returns {string} - The path to the generated temporary script file.
10
+ * @param {string} [scriptType='load'] - Type of script (e.g., 'load').
11
+ * @returns {Promise<string>} - Path to the generated k6 script file.
11
12
  */
12
- export function generateK6Script(scriptContent, scriptType = "k6") {
13
- const tempFileName = `${scriptType}_script_${uuidv4()}.js`;
14
- const tempFilePath = path.join(process.cwd(), "tmp", tempFileName);
15
-
16
- // Ensure the directory exists and write the script content
17
- fs.mkdirSync(path.dirname(tempFilePath), { recursive: true });
18
- fs.writeFileSync(tempFilePath, scriptContent);
19
- return tempFilePath;
20
- }
13
+ const generateK6Script = async (scriptContent, scriptType = "load") => {
14
+ const tempDir = path.resolve(__dirname, "../../temp");
15
+ const scriptName = `${scriptType}_script_${uuidv4()}.js`;
16
+ const scriptPath = path.join(tempDir, scriptName);
17
+ await fs.mkdir(tempDir, { recursive: true }); // Ensure temp directory exists
18
+ await fs.writeFile(scriptPath, scriptContent, "utf8");
19
+ return scriptPath;
20
+ };
21
21
 
22
22
  /**
23
- * Runs the k6 script using the `k6 run` command.
24
- * @param {string} scriptPath - The path to the k6 script file.
25
- * @returns {Promise<string>} - Resolves with the stdout of the k6 execution.
23
+ * Introduce a delay in milliseconds.
24
+ * @param {number} ms - The duration of the delay in milliseconds.
25
+ * @returns {Promise<void>} - A Promise that resolves after the delay.
26
26
  */
27
+ const delay = (ms) => new Promise((res) => setTimeout(res, ms));
27
28
 
28
- export async function runK6Script(scriptPath) {
29
- return new Promise((resolve, reject) => {
30
- const k6Process = spawn("k6", ["run", scriptPath]);
29
+ /**
30
+ * Runs the k6 script with custom branding.
31
+ * @param {string} scriptPath - Path to the k6 script file.
32
+ * @returns {Promise<string>} - Standard output from k6 execution.
33
+ */
34
+ const runK6Script = async (scriptPath) => {
35
+ // ANSI escape codes for colors
36
+ const chalkGreen = "\x1b[38;2;0;255;0m"; // Green
37
+ const chalkYellow = "\x1b[38;2;255;255;0m"; // Yellow
38
+ const resetColor = "\x1b[0m";
31
39
 
32
- let stdout = "";
33
- let stderr = "";
40
+ // Custom logo with version information
41
+ const customLogo = `${chalkGreen} with @qaPaschalE's ${chalkYellow}k6-cucumber-steps v${packageJson.version}${resetColor}`;
34
42
 
35
- // Capture stdout and log it in real-time
36
- k6Process.stdout.on("data", (data) => {
37
- stdout += data.toString();
38
- console.log(data.toString()); // Log output in real-time
39
- });
43
+ return new Promise(async (resolve, reject) => {
44
+ exec(
45
+ `k6 run --vus 1 --iterations 1 "${scriptPath}"`,
46
+ async (error, stdout, stderr) => {
47
+ // Split the k6 logo lines
48
+ const logoLines = stdout.split("\n");
40
49
 
41
- // Capture stderr and log it in real-time
42
- k6Process.stderr.on("data", (data) => {
43
- stderr += data.toString();
44
- console.error(data.toString()); // Log errors in real-time
45
- });
50
+ // Insert the custom logo under "Grafana" (on the third line)
51
+ let modifiedStdout = "";
52
+ for (let i = 0; i < logoLines.length; i++) {
53
+ modifiedStdout += logoLines[i];
54
+ if (i === 5) {
55
+ // Target the third line (index 2) of the k6 logo
56
+ modifiedStdout += ` ${customLogo}\n`;
57
+ }
58
+ modifiedStdout += "\n";
59
+ }
46
60
 
47
- // Handle process exit
48
- k6Process.on("close", (code) => {
49
- // Always clean up temp file
50
- fs.unlink(scriptPath, (unlinkErr) => {
51
- if (unlinkErr) {
52
- console.warn(`Failed to delete temp script: ${unlinkErr.message}`);
61
+ // Handle errors and cleanup
62
+ if (error) {
63
+ console.error("k6 error:", error);
64
+ console.error("k6 stdout:", modifiedStdout);
65
+ await delay(3000); // Wait for 3 seconds
66
+ console.error("k6 stderr:", stderr);
67
+ reject(new Error(`k6 test execution failed: ${error.message}`));
68
+ } else if (stderr) {
69
+ console.log("k6 stdout:", modifiedStdout);
70
+ await delay(3000); // Wait for 3 seconds
71
+ resolve(stdout);
72
+ } else {
73
+ console.log("k6 stdout:", modifiedStdout);
74
+ await delay(3000); // Wait for 3 seconds
75
+ resolve(stdout);
53
76
  }
54
- });
55
77
 
56
- if (code !== 0) {
57
- console.error("k6 run failed with code:", code);
58
- console.error("stderr:", stderr);
59
- reject(new Error(`k6 run failed with code ${code}: ${stderr}`));
60
- } else {
61
- resolve(stdout);
78
+ // Clean up the temporary script file
79
+ fs.unlink(scriptPath).catch((err) =>
80
+ console.error("Error deleting temporary k6 script:", err)
81
+ );
62
82
  }
63
- });
64
-
65
- // Handle spawn errors
66
- k6Process.on("error", (err) => {
67
- console.error("Failed to start k6 process:", err.message);
68
- reject(err);
69
- });
83
+ );
70
84
  });
71
- }
85
+ };
86
+
87
+ module.exports = { generateK6Script, runK6Script };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "k6-cucumber-steps",
3
- "version": "1.0.12",
3
+ "version": "1.0.14",
4
4
  "main": "index.js",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -51,6 +51,7 @@
51
51
  "@babel/preset-env": "^7.26.9",
52
52
  "@types/k6": "^1.0.2",
53
53
  "child_process": "^1.0.2",
54
+ "cucumber-console-formatter": "^1.0.0",
54
55
  "cucumber-html-reporter": "^6.0.0",
55
56
  "esbuild": "^0.25.3",
56
57
  "form-data": "^4.0.2",
@@ -40,7 +40,7 @@ body{padding:0;margin:0}.html-formatter{max-width:1600px;min-height:100vh;margin
40
40
  <div id="content">
41
41
  </div>
42
42
  <script>
43
- window.CUCUMBER_MESSAGES = [{"meta":{"protocolVersion":"27.0.2","implementation":{"version":"11.2.0","name":"cucumber-js"},"cpu":{"name":"arm64"},"os":{"name":"darwin","version":"24.3.0"},"runtime":{"name":"node.js","version":"22.14.0"}}},{"source":{"data":"Feature: Run load tests with dynamic GET and POST body from environment variables and JSON files\n\n Scenario Outline: I run the k6 script for load testing with dynamic POST body from environment variables and JSON files\n Given I have a k6 script for POST testing\n When I run the k6 script with the following configurations:\n | virtual_users | duration | http_req_failed | http_req_duration | error_rate |\n | <virtual_users> | <duration> | <http_req_failed> | <http_req_duration> | <error_rate> |\n When the following endpoint(s) is\/are used:\n \"\"\"\n \/api\/profile\n http:\/\/test.k6.io\n \"\"\"\n When the following POST body is used for \"<endpoint>\"\n \"\"\"\n {\n \"username\": \"{{username}}\",\n \"email\": \"{{email}}\",\n \"address\": \"<address.json>\"\n }\n \"\"\"\n When the authentication type is \"api_key\"\n Then the API should handle the POST request successfully\n\n Examples:\n | virtual_users | duration | http_req_failed | http_req_duration | error_rate |\n | 10 | 5 | rate<0.05 | p(95)<3000 | rate<0.05 |\n | 50 | 10 | rate<0.05 | p(95)<3000 | rate<0.05 |\n | 100 | 15 | rate<0.05 | p(95)<3500 | |\n | 200 | 20 | rate<0.05 | p(95)<3500 | rate<0.05 |\n\n @loadTest\n Scenario Outline: I run the k6 script for load testing with dynamic GET requests\n Given I have a k6 script for GET testing\n When I run the k6 script with the following configurations:\n | virtual_users | duration | http_req_failed | http_req_duration | error_rate |\n | <virtual_users> | <duration> | <http_req_failed> | <http_req_duration> | <error_rate> |\n And the following endpoint(s) is\/are used:\n \"\"\"\n \/api\/users?page=2\n https:\/\/simple-books-api.glitch.me\/books\n \"\"\"\n When the authentication type is \"none\"\n Then the API should handle the GET request successfully\n\n Examples:\n | virtual_users | duration | http_req_failed | http_req_duration |\n | 10 | 5 | rate<0.05 | p(95)<3000 |\n | 50 | 10 | rate<0.05 | p(95)<3000 |\n # | 100 | 15 | rate<0.05 | p(95)<3500 |\n # | 200 | 20 | rate<0.05 | p(95)<3500 |\n","uri":"src\/examples\/features\/loadTestTemplate.feature","mediaType":"text\/x.cucumber.gherkin+plain"}},{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Run load tests with dynamic GET and POST body from environment variables and JSON files","description":"","children":[{"scenario":{"id":"4a7d291f-48aa-44c7-bf15-21668f31697c","tags":[],"location":{"line":3,"column":3},"keyword":"Scenario Outline","name":"I run the k6 script for load testing with dynamic POST body from environment variables and JSON files","description":"","steps":[{"id":"3526b6ad-9504-4ab9-a828-a89dc0fb205e","location":{"line":4,"column":5},"keyword":"Given ","keywordType":"Context","text":"I have a k6 script for POST testing"},{"id":"05e3e432-08e1-478f-bc2b-b180572f1bee","location":{"line":5,"column":5},"keyword":"When ","keywordType":"Action","text":"I run the k6 script with the following configurations:","dataTable":{"location":{"line":6,"column":7},"rows":[{"id":"9cf1ec53-abfd-415d-87c2-7238387237bb","location":{"line":6,"column":7},"cells":[{"location":{"line":6,"column":9},"value":"virtual_users"},{"location":{"line":6,"column":27},"value":"duration"},{"location":{"line":6,"column":40},"value":"http_req_failed"},{"location":{"line":6,"column":60},"value":"http_req_duration"},{"location":{"line":6,"column":82},"value":"error_rate"}]},{"id":"873cb81f-ecad-4562-9bad-b0bfdbd85160","location":{"line":7,"column":7},"cells":[{"location":{"line":7,"column":9},"value":"<virtual_users>"},{"location":{"line":7,"column":27},"value":"<duration>"},{"location":{"line":7,"column":40},"value":"<http_req_failed>"},{"location":{"line":7,"column":60},"value":"<http_req_duration>"},{"location":{"line":7,"column":82},"value":"<error_rate>"}]}]}},{"id":"c1fcd077-f715-4183-97b7-1052b61c6d49","location":{"line":8,"column":5},"keyword":"When ","keywordType":"Action","text":"the following endpoint(s) is\/are used:","docString":{"location":{"line":9,"column":7},"content":"\/api\/profile\nhttp:\/\/test.k6.io","delimiter":"\"\"\""}},{"id":"21fdaacb-f92f-42f7-a153-daf398c7a588","location":{"line":13,"column":5},"keyword":"When ","keywordType":"Action","text":"the following POST body is used for \"<endpoint>\"","docString":{"location":{"line":14,"column":7},"content":"{\n \"username\": \"{{username}}\",\n \"email\": \"{{email}}\",\n \"address\": \"<address.json>\"\n}","delimiter":"\"\"\""}},{"id":"27dc78df-41e2-4028-bd60-f43acd2a26a5","location":{"line":21,"column":5},"keyword":"When ","keywordType":"Action","text":"the authentication type is \"api_key\""},{"id":"9550e131-f9d0-4f71-973d-46b4f08b1be2","location":{"line":22,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"the API should handle the POST request successfully"}],"examples":[{"id":"f12b13f4-4cd4-42f4-9c25-ace7fcbb585f","tags":[],"location":{"line":24,"column":5},"keyword":"Examples","name":"","description":"","tableHeader":{"id":"f07ca441-fd23-44b4-87fa-2c6218013e04","location":{"line":25,"column":7},"cells":[{"location":{"line":25,"column":9},"value":"virtual_users"},{"location":{"line":25,"column":25},"value":"duration"},{"location":{"line":25,"column":36},"value":"http_req_failed"},{"location":{"line":25,"column":54},"value":"http_req_duration"},{"location":{"line":25,"column":74},"value":"error_rate"}]},"tableBody":[{"id":"cdfe8cb8-a4ed-49ac-94ec-022572e3421a","location":{"line":26,"column":7},"cells":[{"location":{"line":26,"column":20},"value":"10"},{"location":{"line":26,"column":32},"value":"5"},{"location":{"line":26,"column":36},"value":"rate<0.05"},{"location":{"line":26,"column":54},"value":"p(95)<3000"},{"location":{"line":26,"column":74},"value":"rate<0.05"}]},{"id":"94f7e68c-f897-4fe3-a362-2a0e6ee6f68e","location":{"line":27,"column":7},"cells":[{"location":{"line":27,"column":20},"value":"50"},{"location":{"line":27,"column":31},"value":"10"},{"location":{"line":27,"column":36},"value":"rate<0.05"},{"location":{"line":27,"column":54},"value":"p(95)<3000"},{"location":{"line":27,"column":74},"value":"rate<0.05"}]},{"id":"57fafa28-a1d8-4ac4-8951-344dd59a241a","location":{"line":28,"column":7},"cells":[{"location":{"line":28,"column":19},"value":"100"},{"location":{"line":28,"column":31},"value":"15"},{"location":{"line":28,"column":36},"value":"rate<0.05"},{"location":{"line":28,"column":54},"value":"p(95)<3500"},{"location":{"line":28,"column":85},"value":""}]},{"id":"3731dc3c-f231-4f4d-b8bc-85cb63e47ef1","location":{"line":29,"column":7},"cells":[{"location":{"line":29,"column":19},"value":"200"},{"location":{"line":29,"column":31},"value":"20"},{"location":{"line":29,"column":36},"value":"rate<0.05"},{"location":{"line":29,"column":54},"value":"p(95)<3500"},{"location":{"line":29,"column":74},"value":"rate<0.05"}]}]}]}},{"scenario":{"id":"0ab4fc71-6ba5-4eb0-bb4e-9146f6752bf7","tags":[{"location":{"line":31,"column":3},"name":"@loadTest","id":"cd31fd2c-85a6-41b9-ae0c-8ac00651e2cc"}],"location":{"line":32,"column":3},"keyword":"Scenario Outline","name":"I run the k6 script for load testing with dynamic GET requests","description":"","steps":[{"id":"252e47e6-362a-4f89-8e38-79f999262d2c","location":{"line":33,"column":5},"keyword":"Given ","keywordType":"Context","text":"I have a k6 script for GET testing"},{"id":"58977160-65cb-4af6-a550-1569b46563eb","location":{"line":34,"column":5},"keyword":"When ","keywordType":"Action","text":"I run the k6 script with the following configurations:","dataTable":{"location":{"line":35,"column":7},"rows":[{"id":"be56597c-3171-4f58-a068-48105243a4ac","location":{"line":35,"column":7},"cells":[{"location":{"line":35,"column":9},"value":"virtual_users"},{"location":{"line":35,"column":27},"value":"duration"},{"location":{"line":35,"column":40},"value":"http_req_failed"},{"location":{"line":35,"column":60},"value":"http_req_duration"},{"location":{"line":35,"column":82},"value":"error_rate"}]},{"id":"db56faf2-7445-4645-891b-13ffbfead27c","location":{"line":36,"column":7},"cells":[{"location":{"line":36,"column":9},"value":"<virtual_users>"},{"location":{"line":36,"column":27},"value":"<duration>"},{"location":{"line":36,"column":40},"value":"<http_req_failed>"},{"location":{"line":36,"column":60},"value":"<http_req_duration>"},{"location":{"line":36,"column":82},"value":"<error_rate>"}]}]}},{"id":"8fc6e843-9b74-4cf3-b6c1-30bb0a2fdf6f","location":{"line":37,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the following endpoint(s) is\/are used:","docString":{"location":{"line":38,"column":7},"content":"\/api\/users?page=2\nhttps:\/\/simple-books-api.glitch.me\/books","delimiter":"\"\"\""}},{"id":"e67705df-50cc-4a2f-8bce-f6ea73adeed4","location":{"line":42,"column":5},"keyword":"When ","keywordType":"Action","text":"the authentication type is \"none\""},{"id":"76b1b0cd-191b-4612-a37c-f96d3102780d","location":{"line":43,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"the API should handle the GET request successfully"}],"examples":[{"id":"0ad00792-f56a-4eb0-96b6-7ef0d55f6513","tags":[],"location":{"line":45,"column":5},"keyword":"Examples","name":"","description":"","tableHeader":{"id":"405a6106-4bc0-4253-bafa-d0918337dfd0","location":{"line":46,"column":7},"cells":[{"location":{"line":46,"column":9},"value":"virtual_users"},{"location":{"line":46,"column":25},"value":"duration"},{"location":{"line":46,"column":36},"value":"http_req_failed"},{"location":{"line":46,"column":54},"value":"http_req_duration"}]},"tableBody":[{"id":"9aecbac8-eb4a-4d3a-bea2-9e568fe7e175","location":{"line":47,"column":7},"cells":[{"location":{"line":47,"column":20},"value":"10"},{"location":{"line":47,"column":32},"value":"5"},{"location":{"line":47,"column":36},"value":"rate<0.05"},{"location":{"line":47,"column":54},"value":"p(95)<3000"}]},{"id":"4f9cf40f-5403-49ff-a179-528554f565f9","location":{"line":48,"column":7},"cells":[{"location":{"line":48,"column":20},"value":"50"},{"location":{"line":48,"column":31},"value":"10"},{"location":{"line":48,"column":36},"value":"rate<0.05"},{"location":{"line":48,"column":54},"value":"p(95)<3000"}]}]}]}}]},"comments":[{"location":{"line":49,"column":1},"text":" # | 100 | 15 | rate<0.05 | p(95)<3500 |"},{"location":{"line":50,"column":1},"text":" # | 200 | 20 | rate<0.05 | p(95)<3500 |"}],"uri":"src\/examples\/features\/loadTestTemplate.feature"}},{"pickle":{"id":"71a52754-ffd1-477b-abc0-9cdf63a97ad6","uri":"src\/examples\/features\/loadTestTemplate.feature","astNodeIds":["4a7d291f-48aa-44c7-bf15-21668f31697c","cdfe8cb8-a4ed-49ac-94ec-022572e3421a"],"name":"I run the k6 script for load testing with dynamic POST body from environment variables and JSON files","language":"en","steps":[{"id":"aef2d6e1-5c01-4f05-918e-b0dc1f25cb04","text":"I have a k6 script for POST testing","type":"Context","astNodeIds":["3526b6ad-9504-4ab9-a828-a89dc0fb205e","cdfe8cb8-a4ed-49ac-94ec-022572e3421a"]},{"id":"a6a8946f-d570-4dc5-ac34-dc5f365beac4","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"10"},{"value":"5"},{"value":"rate<0.05"},{"value":"p(95)<3000"},{"value":"rate<0.05"}]}]}},"astNodeIds":["05e3e432-08e1-478f-bc2b-b180572f1bee","cdfe8cb8-a4ed-49ac-94ec-022572e3421a"]},{"id":"c1015d14-4604-43a5-b94b-55506438f0a4","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/profile\nhttp:\/\/test.k6.io"}},"astNodeIds":["c1fcd077-f715-4183-97b7-1052b61c6d49","cdfe8cb8-a4ed-49ac-94ec-022572e3421a"]},{"id":"90ce9c54-2188-41ba-80f0-70c82061cb25","text":"the following POST body is used for \"<endpoint>\"","type":"Action","argument":{"docString":{"content":"{\n \"username\": \"{{username}}\",\n \"email\": \"{{email}}\",\n \"address\": \"<address.json>\"\n}"}},"astNodeIds":["21fdaacb-f92f-42f7-a153-daf398c7a588","cdfe8cb8-a4ed-49ac-94ec-022572e3421a"]},{"id":"e2cff8ac-dd1c-4f6a-8d2e-f03bc6a33e5c","text":"the authentication type is \"api_key\"","type":"Action","astNodeIds":["27dc78df-41e2-4028-bd60-f43acd2a26a5","cdfe8cb8-a4ed-49ac-94ec-022572e3421a"]},{"id":"08b793ec-1727-4410-a675-ef9adffc0e53","text":"the API should handle the POST request successfully","type":"Outcome","astNodeIds":["9550e131-f9d0-4f71-973d-46b4f08b1be2","cdfe8cb8-a4ed-49ac-94ec-022572e3421a"]}],"tags":[]}},{"pickle":{"id":"dc7522ae-f4af-402e-8b72-905a8921477c","uri":"src\/examples\/features\/loadTestTemplate.feature","astNodeIds":["4a7d291f-48aa-44c7-bf15-21668f31697c","94f7e68c-f897-4fe3-a362-2a0e6ee6f68e"],"name":"I run the k6 script for load testing with dynamic POST body from environment variables and JSON files","language":"en","steps":[{"id":"eda033c6-0c42-4fa4-a97b-0e2c0f09caf9","text":"I have a k6 script for POST testing","type":"Context","astNodeIds":["3526b6ad-9504-4ab9-a828-a89dc0fb205e","94f7e68c-f897-4fe3-a362-2a0e6ee6f68e"]},{"id":"2bce117b-7236-4ec3-b42e-508492c91e87","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"50"},{"value":"10"},{"value":"rate<0.05"},{"value":"p(95)<3000"},{"value":"rate<0.05"}]}]}},"astNodeIds":["05e3e432-08e1-478f-bc2b-b180572f1bee","94f7e68c-f897-4fe3-a362-2a0e6ee6f68e"]},{"id":"a497809d-a2fa-458e-a27f-1488074bd39a","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/profile\nhttp:\/\/test.k6.io"}},"astNodeIds":["c1fcd077-f715-4183-97b7-1052b61c6d49","94f7e68c-f897-4fe3-a362-2a0e6ee6f68e"]},{"id":"bf6b5e63-52a9-465b-aed8-165849f821c4","text":"the following POST body is used for \"<endpoint>\"","type":"Action","argument":{"docString":{"content":"{\n \"username\": \"{{username}}\",\n \"email\": \"{{email}}\",\n \"address\": \"<address.json>\"\n}"}},"astNodeIds":["21fdaacb-f92f-42f7-a153-daf398c7a588","94f7e68c-f897-4fe3-a362-2a0e6ee6f68e"]},{"id":"e0e936d6-cefa-4d3f-b056-c065f4e6d8ba","text":"the authentication type is \"api_key\"","type":"Action","astNodeIds":["27dc78df-41e2-4028-bd60-f43acd2a26a5","94f7e68c-f897-4fe3-a362-2a0e6ee6f68e"]},{"id":"42744094-b502-44fc-bc8e-e3518ad39fdd","text":"the API should handle the POST request successfully","type":"Outcome","astNodeIds":["9550e131-f9d0-4f71-973d-46b4f08b1be2","94f7e68c-f897-4fe3-a362-2a0e6ee6f68e"]}],"tags":[]}},{"pickle":{"id":"44c997c3-4f6c-4232-826a-062e8595f1f2","uri":"src\/examples\/features\/loadTestTemplate.feature","astNodeIds":["4a7d291f-48aa-44c7-bf15-21668f31697c","57fafa28-a1d8-4ac4-8951-344dd59a241a"],"name":"I run the k6 script for load testing with dynamic POST body from environment variables and JSON files","language":"en","steps":[{"id":"05c20476-69ae-41db-9fa8-69a7d2e36759","text":"I have a k6 script for POST testing","type":"Context","astNodeIds":["3526b6ad-9504-4ab9-a828-a89dc0fb205e","57fafa28-a1d8-4ac4-8951-344dd59a241a"]},{"id":"82e6677e-669a-450b-bf04-1b4af0f3ce02","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"100"},{"value":"15"},{"value":"rate<0.05"},{"value":"p(95)<3500"},{"value":""}]}]}},"astNodeIds":["05e3e432-08e1-478f-bc2b-b180572f1bee","57fafa28-a1d8-4ac4-8951-344dd59a241a"]},{"id":"4301b6ee-baab-4013-a995-57904d7b48f7","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/profile\nhttp:\/\/test.k6.io"}},"astNodeIds":["c1fcd077-f715-4183-97b7-1052b61c6d49","57fafa28-a1d8-4ac4-8951-344dd59a241a"]},{"id":"c90c217b-01db-4e6b-bc85-a602f5969563","text":"the following POST body is used for \"<endpoint>\"","type":"Action","argument":{"docString":{"content":"{\n \"username\": \"{{username}}\",\n \"email\": \"{{email}}\",\n \"address\": \"<address.json>\"\n}"}},"astNodeIds":["21fdaacb-f92f-42f7-a153-daf398c7a588","57fafa28-a1d8-4ac4-8951-344dd59a241a"]},{"id":"a88da9c9-664e-40b9-8854-b89ddb81f678","text":"the authentication type is \"api_key\"","type":"Action","astNodeIds":["27dc78df-41e2-4028-bd60-f43acd2a26a5","57fafa28-a1d8-4ac4-8951-344dd59a241a"]},{"id":"e00cac38-f8d0-47e9-bb2f-f46c2013cd26","text":"the API should handle the POST request successfully","type":"Outcome","astNodeIds":["9550e131-f9d0-4f71-973d-46b4f08b1be2","57fafa28-a1d8-4ac4-8951-344dd59a241a"]}],"tags":[]}},{"pickle":{"id":"92c30db5-58a7-4d0b-bbfa-387936efcb2d","uri":"src\/examples\/features\/loadTestTemplate.feature","astNodeIds":["4a7d291f-48aa-44c7-bf15-21668f31697c","3731dc3c-f231-4f4d-b8bc-85cb63e47ef1"],"name":"I run the k6 script for load testing with dynamic POST body from environment variables and JSON files","language":"en","steps":[{"id":"4a36268c-bc6b-4d06-8e24-323440901a8a","text":"I have a k6 script for POST testing","type":"Context","astNodeIds":["3526b6ad-9504-4ab9-a828-a89dc0fb205e","3731dc3c-f231-4f4d-b8bc-85cb63e47ef1"]},{"id":"758b54fe-75ac-45da-8064-bd8362c29e65","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"200"},{"value":"20"},{"value":"rate<0.05"},{"value":"p(95)<3500"},{"value":"rate<0.05"}]}]}},"astNodeIds":["05e3e432-08e1-478f-bc2b-b180572f1bee","3731dc3c-f231-4f4d-b8bc-85cb63e47ef1"]},{"id":"92becddd-7424-43a0-88dc-9cdc5343620b","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/profile\nhttp:\/\/test.k6.io"}},"astNodeIds":["c1fcd077-f715-4183-97b7-1052b61c6d49","3731dc3c-f231-4f4d-b8bc-85cb63e47ef1"]},{"id":"37187303-d8d0-4bb4-8d88-2586e95f5120","text":"the following POST body is used for \"<endpoint>\"","type":"Action","argument":{"docString":{"content":"{\n \"username\": \"{{username}}\",\n \"email\": \"{{email}}\",\n \"address\": \"<address.json>\"\n}"}},"astNodeIds":["21fdaacb-f92f-42f7-a153-daf398c7a588","3731dc3c-f231-4f4d-b8bc-85cb63e47ef1"]},{"id":"ea652f9d-266c-462a-a187-66a562b32e64","text":"the authentication type is \"api_key\"","type":"Action","astNodeIds":["27dc78df-41e2-4028-bd60-f43acd2a26a5","3731dc3c-f231-4f4d-b8bc-85cb63e47ef1"]},{"id":"be40d683-75cf-49ae-a098-5e969a7ea430","text":"the API should handle the POST request successfully","type":"Outcome","astNodeIds":["9550e131-f9d0-4f71-973d-46b4f08b1be2","3731dc3c-f231-4f4d-b8bc-85cb63e47ef1"]}],"tags":[]}},{"pickle":{"id":"2efb135d-06ac-43ca-b1ef-5464c7181e9e","uri":"src\/examples\/features\/loadTestTemplate.feature","astNodeIds":["0ab4fc71-6ba5-4eb0-bb4e-9146f6752bf7","9aecbac8-eb4a-4d3a-bea2-9e568fe7e175"],"name":"I run the k6 script for load testing with dynamic GET requests","language":"en","steps":[{"id":"78588474-57f0-4c1b-af04-da8b9fdf68aa","text":"I have a k6 script for GET testing","type":"Context","astNodeIds":["252e47e6-362a-4f89-8e38-79f999262d2c","9aecbac8-eb4a-4d3a-bea2-9e568fe7e175"]},{"id":"8e46dc53-19bd-4e6d-9d67-8fd10683e33c","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"10"},{"value":"5"},{"value":"rate<0.05"},{"value":"p(95)<3000"},{"value":"<error_rate>"}]}]}},"astNodeIds":["58977160-65cb-4af6-a550-1569b46563eb","9aecbac8-eb4a-4d3a-bea2-9e568fe7e175"]},{"id":"c83b2571-112e-4b91-b099-6991c47dd620","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/users?page=2\nhttps:\/\/simple-books-api.glitch.me\/books"}},"astNodeIds":["8fc6e843-9b74-4cf3-b6c1-30bb0a2fdf6f","9aecbac8-eb4a-4d3a-bea2-9e568fe7e175"]},{"id":"39a0416d-3c7d-481f-bd8d-a6f8fd4280ec","text":"the authentication type is \"none\"","type":"Action","astNodeIds":["e67705df-50cc-4a2f-8bce-f6ea73adeed4","9aecbac8-eb4a-4d3a-bea2-9e568fe7e175"]},{"id":"62e70917-9f30-435d-8177-222025074f81","text":"the API should handle the GET request successfully","type":"Outcome","astNodeIds":["76b1b0cd-191b-4612-a37c-f96d3102780d","9aecbac8-eb4a-4d3a-bea2-9e568fe7e175"]}],"tags":[{"name":"@loadTest","astNodeId":"cd31fd2c-85a6-41b9-ae0c-8ac00651e2cc"}]}},{"pickle":{"id":"faee1afd-7d4f-4dbc-969c-c910fd3f05c7","uri":"src\/examples\/features\/loadTestTemplate.feature","astNodeIds":["0ab4fc71-6ba5-4eb0-bb4e-9146f6752bf7","4f9cf40f-5403-49ff-a179-528554f565f9"],"name":"I run the k6 script for load testing with dynamic GET requests","language":"en","steps":[{"id":"45e377df-83b3-4e01-ae9a-e12f04d11ebf","text":"I have a k6 script for GET testing","type":"Context","astNodeIds":["252e47e6-362a-4f89-8e38-79f999262d2c","4f9cf40f-5403-49ff-a179-528554f565f9"]},{"id":"c7de4d80-21b4-40be-860e-a73e37206915","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"50"},{"value":"10"},{"value":"rate<0.05"},{"value":"p(95)<3000"},{"value":"<error_rate>"}]}]}},"astNodeIds":["58977160-65cb-4af6-a550-1569b46563eb","4f9cf40f-5403-49ff-a179-528554f565f9"]},{"id":"d22bac4e-0b9e-4d82-9cc6-451d66c32036","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/users?page=2\nhttps:\/\/simple-books-api.glitch.me\/books"}},"astNodeIds":["8fc6e843-9b74-4cf3-b6c1-30bb0a2fdf6f","4f9cf40f-5403-49ff-a179-528554f565f9"]},{"id":"34835a6f-6272-426c-9e3d-65e3102bcc99","text":"the authentication type is \"none\"","type":"Action","astNodeIds":["e67705df-50cc-4a2f-8bce-f6ea73adeed4","4f9cf40f-5403-49ff-a179-528554f565f9"]},{"id":"4a74e89d-afc0-419b-80ac-7b979940ee0a","text":"the API should handle the GET request successfully","type":"Outcome","astNodeIds":["76b1b0cd-191b-4612-a37c-f96d3102780d","4f9cf40f-5403-49ff-a179-528554f565f9"]}],"tags":[{"name":"@loadTest","astNodeId":"cd31fd2c-85a6-41b9-ae0c-8ac00651e2cc"}]}},{"source":{"data":"Feature: Extended Load Testing with PUT, DELETE, and Multipart Uploads\n\n Scenario Outline: I run the k6 script for load testing with PUT requests\n Given I have a k6 script for PUT testing\n When I run the k6 script with the following configurations:\n | virtual_users | duration |\n | <virtual_users> | <duration> |\n And the following endpoint is used: \"<endpoint>\"\n When the following PUT body is used:\n \"\"\"\n {\n \"userId\": \"{{user_id}}\",\n \"status\": \"{{status}}\"\n }\n \"\"\"\n And the authentication type is \"bearer_token\"\n Then the API should handle the PUT request successfully\n\n Examples:\n | virtual_users | duration | endpoint |\n | 10 | 5 | \/api\/v1\/update-status |\n\n Scenario Outline: I run the k6 script for load testing with DELETE requests\n Given I have a k6 script for DELETE testing\n When I run the k6 script with the following configurations:\n | virtual_users | duration |\n | <virtual_users> | <duration> |\n And the following endpoint is used: \"<endpoint>\"\n And the authentication type is \"api_key\"\n Then the API should handle the DELETE request successfully\n\n Examples:\n | virtual_users | duration | endpoint |\n | 20 | 3 | \/api\/v1\/delete-record |\n\n Scenario Outline: I run the k6 script for load testing with multipart\/form-data requests\n Given I have a k6 script for multipart POST testing\n When I run the k6 script with the following configurations:\n | virtual_users | duration |\n | <virtual_users> | <duration> |\n And the following endpoint is used: \"<endpoint>\"\n When the following multipart body is used:\n \"\"\"\n file: <sample.pdf>\n description: {{file_description}}\n \"\"\"\n And the authentication type is \"bearer_token\"\n Then the API should handle multipart request successfully\n\n Examples:\n | virtual_users | duration | endpoint |\n | 15 | 5 | \/api\/v1\/upload-file |\n","uri":"src\/examples\/features\/putDeleteMultipartUploads.feature","mediaType":"text\/x.cucumber.gherkin+plain"}},{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Extended Load Testing with PUT, DELETE, and Multipart Uploads","description":"","children":[{"scenario":{"id":"557220a8-48b1-4bad-9cc9-bd55612bf020","tags":[],"location":{"line":3,"column":3},"keyword":"Scenario Outline","name":"I run the k6 script for load testing with PUT requests","description":"","steps":[{"id":"dbbabf55-18dd-4a07-a758-d9e5b210c3ec","location":{"line":4,"column":5},"keyword":"Given ","keywordType":"Context","text":"I have a k6 script for PUT testing"},{"id":"06c4634c-5fcb-48ef-af4c-f7ec079190f0","location":{"line":5,"column":5},"keyword":"When ","keywordType":"Action","text":"I run the k6 script with the following configurations:","dataTable":{"location":{"line":6,"column":7},"rows":[{"id":"cd4babc3-a9f9-4624-8285-96b926130422","location":{"line":6,"column":7},"cells":[{"location":{"line":6,"column":9},"value":"virtual_users"},{"location":{"line":6,"column":27},"value":"duration"}]},{"id":"00fc2b15-8f38-4d69-8fd3-883eb99cd047","location":{"line":7,"column":7},"cells":[{"location":{"line":7,"column":9},"value":"<virtual_users>"},{"location":{"line":7,"column":27},"value":"<duration>"}]}]}},{"id":"893ab996-6adb-44be-9756-46b722c07712","location":{"line":8,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the following endpoint is used: \"<endpoint>\""},{"id":"e1ba5d79-62b1-4d7e-b8aa-c15f2e1c1904","location":{"line":9,"column":5},"keyword":"When ","keywordType":"Action","text":"the following PUT body is used:","docString":{"location":{"line":10,"column":7},"content":"{\n \"userId\": \"{{user_id}}\",\n \"status\": \"{{status}}\"\n}","delimiter":"\"\"\""}},{"id":"8a010886-f87f-43a0-860e-fd04b7bf2af8","location":{"line":16,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the authentication type is \"bearer_token\""},{"id":"076894a7-2b9b-449a-a3ec-5f2b7bb94724","location":{"line":17,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"the API should handle the PUT request successfully"}],"examples":[{"id":"5b59840f-af0c-4dbc-adbf-cdb65cd481a1","tags":[],"location":{"line":19,"column":5},"keyword":"Examples","name":"","description":"","tableHeader":{"id":"8bfb7697-4b8b-4ec3-a935-b101d016a8db","location":{"line":20,"column":7},"cells":[{"location":{"line":20,"column":9},"value":"virtual_users"},{"location":{"line":20,"column":25},"value":"duration"},{"location":{"line":20,"column":36},"value":"endpoint"}]},"tableBody":[{"id":"cb8e0390-cb76-4369-b112-26c245f58c60","location":{"line":21,"column":7},"cells":[{"location":{"line":21,"column":20},"value":"10"},{"location":{"line":21,"column":32},"value":"5"},{"location":{"line":21,"column":36},"value":"\/api\/v1\/update-status"}]}]}]}},{"scenario":{"id":"576083ad-b329-479c-b258-5588af43680c","tags":[],"location":{"line":23,"column":3},"keyword":"Scenario Outline","name":"I run the k6 script for load testing with DELETE requests","description":"","steps":[{"id":"54a6b655-a678-4794-9504-02f1880dfa44","location":{"line":24,"column":5},"keyword":"Given ","keywordType":"Context","text":"I have a k6 script for DELETE testing"},{"id":"c0dd9fcf-a03c-47a5-9a9f-a4a047d649e8","location":{"line":25,"column":5},"keyword":"When ","keywordType":"Action","text":"I run the k6 script with the following configurations:","dataTable":{"location":{"line":26,"column":7},"rows":[{"id":"10a6a8c1-b71f-4bf7-b262-4eb5b30ab8d5","location":{"line":26,"column":7},"cells":[{"location":{"line":26,"column":9},"value":"virtual_users"},{"location":{"line":26,"column":27},"value":"duration"}]},{"id":"0690cff4-26d0-42e5-a953-b65bfdfd0fb5","location":{"line":27,"column":7},"cells":[{"location":{"line":27,"column":9},"value":"<virtual_users>"},{"location":{"line":27,"column":27},"value":"<duration>"}]}]}},{"id":"183e171f-9b79-43f1-a83d-f3dc4a271f47","location":{"line":28,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the following endpoint is used: \"<endpoint>\""},{"id":"601e3923-fb81-422d-85a1-09466d277e53","location":{"line":29,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the authentication type is \"api_key\""},{"id":"ba56f4c6-bb73-4cf3-9506-ba256f7618ef","location":{"line":30,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"the API should handle the DELETE request successfully"}],"examples":[{"id":"10f7c8f8-8e69-439b-bb5b-9a760bf07ad0","tags":[],"location":{"line":32,"column":5},"keyword":"Examples","name":"","description":"","tableHeader":{"id":"864ae7e0-a673-4e24-a03b-a27dec118895","location":{"line":33,"column":7},"cells":[{"location":{"line":33,"column":9},"value":"virtual_users"},{"location":{"line":33,"column":25},"value":"duration"},{"location":{"line":33,"column":36},"value":"endpoint"}]},"tableBody":[{"id":"ce1cd0af-1b44-4f6c-9282-384e6357f264","location":{"line":34,"column":7},"cells":[{"location":{"line":34,"column":20},"value":"20"},{"location":{"line":34,"column":32},"value":"3"},{"location":{"line":34,"column":36},"value":"\/api\/v1\/delete-record"}]}]}]}},{"scenario":{"id":"5cddcf2d-d7c0-4e6b-8015-803760c752e3","tags":[],"location":{"line":36,"column":3},"keyword":"Scenario Outline","name":"I run the k6 script for load testing with multipart\/form-data requests","description":"","steps":[{"id":"4c47b87f-efde-4803-adcd-d6a4ece167f0","location":{"line":37,"column":5},"keyword":"Given ","keywordType":"Context","text":"I have a k6 script for multipart POST testing"},{"id":"249580e5-fdeb-4dd6-bd8f-379622afb3a2","location":{"line":38,"column":5},"keyword":"When ","keywordType":"Action","text":"I run the k6 script with the following configurations:","dataTable":{"location":{"line":39,"column":7},"rows":[{"id":"5252356b-a727-43d9-9da7-e889191f242b","location":{"line":39,"column":7},"cells":[{"location":{"line":39,"column":9},"value":"virtual_users"},{"location":{"line":39,"column":27},"value":"duration"}]},{"id":"44d291d6-80b3-4e7c-86a8-2ec95b84d4cc","location":{"line":40,"column":7},"cells":[{"location":{"line":40,"column":9},"value":"<virtual_users>"},{"location":{"line":40,"column":27},"value":"<duration>"}]}]}},{"id":"72039466-3a11-4fe8-8f60-f6a0d48c471e","location":{"line":41,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the following endpoint is used: \"<endpoint>\""},{"id":"03468df6-4fda-4045-bca8-40c62ee23184","location":{"line":42,"column":5},"keyword":"When ","keywordType":"Action","text":"the following multipart body is used:","docString":{"location":{"line":43,"column":7},"content":"file: <sample.pdf>\ndescription: {{file_description}}","delimiter":"\"\"\""}},{"id":"f6faa7b7-6190-40ab-867f-2d1c8f010708","location":{"line":47,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the authentication type is \"bearer_token\""},{"id":"092665fc-3aef-4c95-a50a-ad69d00e6222","location":{"line":48,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"the API should handle multipart request successfully"}],"examples":[{"id":"5a2b3f64-8b14-4f30-a3bf-353b34047b07","tags":[],"location":{"line":50,"column":5},"keyword":"Examples","name":"","description":"","tableHeader":{"id":"82a173c6-077b-4452-b0a8-d2b0a02ea6d4","location":{"line":51,"column":7},"cells":[{"location":{"line":51,"column":9},"value":"virtual_users"},{"location":{"line":51,"column":25},"value":"duration"},{"location":{"line":51,"column":36},"value":"endpoint"}]},"tableBody":[{"id":"582577af-6047-4d30-a731-67e0ccbd3f98","location":{"line":52,"column":7},"cells":[{"location":{"line":52,"column":20},"value":"15"},{"location":{"line":52,"column":32},"value":"5"},{"location":{"line":52,"column":36},"value":"\/api\/v1\/upload-file"}]}]}]}}]},"comments":[],"uri":"src\/examples\/features\/putDeleteMultipartUploads.feature"}},{"pickle":{"id":"8d9b3301-a8aa-43b0-bf30-6a7311a6578f","uri":"src\/examples\/features\/putDeleteMultipartUploads.feature","astNodeIds":["557220a8-48b1-4bad-9cc9-bd55612bf020","cb8e0390-cb76-4369-b112-26c245f58c60"],"name":"I run the k6 script for load testing with PUT requests","language":"en","steps":[{"id":"6190c970-6f3e-431a-822a-6dfc6758b705","text":"I have a k6 script for PUT testing","type":"Context","astNodeIds":["dbbabf55-18dd-4a07-a758-d9e5b210c3ec","cb8e0390-cb76-4369-b112-26c245f58c60"]},{"id":"a59ef844-b2a0-4cfb-b8fa-306f10bbcabb","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"}]},{"cells":[{"value":"10"},{"value":"5"}]}]}},"astNodeIds":["06c4634c-5fcb-48ef-af4c-f7ec079190f0","cb8e0390-cb76-4369-b112-26c245f58c60"]},{"id":"da355605-6010-432e-8004-8d995f4e8279","text":"the following endpoint is used: \"\/api\/v1\/update-status\"","type":"Action","astNodeIds":["893ab996-6adb-44be-9756-46b722c07712","cb8e0390-cb76-4369-b112-26c245f58c60"]},{"id":"f8a50089-fd4b-4c5c-b695-c43304674cb3","text":"the following PUT body is used:","type":"Action","argument":{"docString":{"content":"{\n \"userId\": \"{{user_id}}\",\n \"status\": \"{{status}}\"\n}"}},"astNodeIds":["e1ba5d79-62b1-4d7e-b8aa-c15f2e1c1904","cb8e0390-cb76-4369-b112-26c245f58c60"]},{"id":"2ce156f0-4df4-4466-83be-a5ea81de823d","text":"the authentication type is \"bearer_token\"","type":"Action","astNodeIds":["8a010886-f87f-43a0-860e-fd04b7bf2af8","cb8e0390-cb76-4369-b112-26c245f58c60"]},{"id":"c87a2c55-5418-4dd6-b566-91da4d2f7731","text":"the API should handle the PUT request successfully","type":"Outcome","astNodeIds":["076894a7-2b9b-449a-a3ec-5f2b7bb94724","cb8e0390-cb76-4369-b112-26c245f58c60"]}],"tags":[]}},{"pickle":{"id":"adce7739-f567-4bc3-b508-5008aee2157d","uri":"src\/examples\/features\/putDeleteMultipartUploads.feature","astNodeIds":["576083ad-b329-479c-b258-5588af43680c","ce1cd0af-1b44-4f6c-9282-384e6357f264"],"name":"I run the k6 script for load testing with DELETE requests","language":"en","steps":[{"id":"3bc6dc5c-1d02-44c7-869b-13eaaeba1555","text":"I have a k6 script for DELETE testing","type":"Context","astNodeIds":["54a6b655-a678-4794-9504-02f1880dfa44","ce1cd0af-1b44-4f6c-9282-384e6357f264"]},{"id":"d469bf8c-2cb4-4ab8-89fe-3a8c92dd3305","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"}]},{"cells":[{"value":"20"},{"value":"3"}]}]}},"astNodeIds":["c0dd9fcf-a03c-47a5-9a9f-a4a047d649e8","ce1cd0af-1b44-4f6c-9282-384e6357f264"]},{"id":"5c1ea2ce-f73e-4644-9a4e-0762f05fd949","text":"the following endpoint is used: \"\/api\/v1\/delete-record\"","type":"Action","astNodeIds":["183e171f-9b79-43f1-a83d-f3dc4a271f47","ce1cd0af-1b44-4f6c-9282-384e6357f264"]},{"id":"5614c95e-afd4-4f44-bd61-290f1584d0a9","text":"the authentication type is \"api_key\"","type":"Action","astNodeIds":["601e3923-fb81-422d-85a1-09466d277e53","ce1cd0af-1b44-4f6c-9282-384e6357f264"]},{"id":"0e291dd3-677a-4b61-a20d-4df36def12fb","text":"the API should handle the DELETE request successfully","type":"Outcome","astNodeIds":["ba56f4c6-bb73-4cf3-9506-ba256f7618ef","ce1cd0af-1b44-4f6c-9282-384e6357f264"]}],"tags":[]}},{"pickle":{"id":"13b661b2-9bf9-45ac-8b2b-f6d3ea62c782","uri":"src\/examples\/features\/putDeleteMultipartUploads.feature","astNodeIds":["5cddcf2d-d7c0-4e6b-8015-803760c752e3","582577af-6047-4d30-a731-67e0ccbd3f98"],"name":"I run the k6 script for load testing with multipart\/form-data requests","language":"en","steps":[{"id":"0ea7ec36-0dfe-4a72-bf47-35b7ace046a0","text":"I have a k6 script for multipart POST testing","type":"Context","astNodeIds":["4c47b87f-efde-4803-adcd-d6a4ece167f0","582577af-6047-4d30-a731-67e0ccbd3f98"]},{"id":"ded2ae3a-3223-46f0-a09f-aa1a8bd2a5fc","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"}]},{"cells":[{"value":"15"},{"value":"5"}]}]}},"astNodeIds":["249580e5-fdeb-4dd6-bd8f-379622afb3a2","582577af-6047-4d30-a731-67e0ccbd3f98"]},{"id":"644b819c-1ae0-410a-bc59-d8d32dfae48d","text":"the following endpoint is used: \"\/api\/v1\/upload-file\"","type":"Action","astNodeIds":["72039466-3a11-4fe8-8f60-f6a0d48c471e","582577af-6047-4d30-a731-67e0ccbd3f98"]},{"id":"cc52ba68-a045-4f87-b803-d8697a6aa7c8","text":"the following multipart body is used:","type":"Action","argument":{"docString":{"content":"file: <sample.pdf>\ndescription: {{file_description}}"}},"astNodeIds":["03468df6-4fda-4045-bca8-40c62ee23184","582577af-6047-4d30-a731-67e0ccbd3f98"]},{"id":"f9672477-023f-4b61-a633-eac010fccd50","text":"the authentication type is \"bearer_token\"","type":"Action","astNodeIds":["f6faa7b7-6190-40ab-867f-2d1c8f010708","582577af-6047-4d30-a731-67e0ccbd3f98"]},{"id":"1f778d6c-1b7b-4812-a06d-1c81f6784844","text":"the API should handle multipart request successfully","type":"Outcome","astNodeIds":["092665fc-3aef-4c95-a50a-ad69d00e6222","582577af-6047-4d30-a731-67e0ccbd3f98"]}],"tags":[]}},{"source":{"data":"Feature: Run stress tests with dynamic GET and POST body from environment variables and JSON files\n\n Scenario Outline: I run the k6 script for stress testing with dynamic POST body from environment variables and JSON files\n Given I have a k6 script for POST testing\n When I run the k6 script with the following configurations:\n | virtual_users | duration | http_req_failed | http_req_duration | error_rate |\n | <virtual_users> | <duration> | <http_req_failed> | <http_req_duration> | <error_rate> |\n And the following endpoint(s) is\/are used:\n \"\"\"\n \/api\/v1\/resource1\n https:\/\/api.external.com\/resource2\n \"\"\"\n And the following POST body is used:\n \"\"\"\n {\n \"username\": \"{{username}}\",\n \"email\": \"{{email}}\",\n \"address\": \"<address.json>\"\n }\n \"\"\"\n Then the API should handle the POST request successfully\n\n Examples:\n\n Scenario Outline: I run the k6 script for GET testing with dynamic endpoints\n Given I have a k6 script for GET testing\n When I run the k6 script with the following configurations:\n | virtual_users | duration | http_req_failed | http_req_duration | error_rate |\n | <virtual_users> | <duration> | <http_req_failed> | <http_req_duration> | <error_rate> |\n And the following endpoint(s) is\/are used:\n \"\"\"\n \/api\/v1\/resource1\n https:\/\/api.external.com\/resource2\n \"\"\"\n Then the API should handle the GET request successfully\n\n Examples:\n | virtual_users | duration | http_req_failed |\n | 10 | 5 | rate<0.10 |\n | 50 | 10 | rate<0.05 |\n | 100 | 15 | rate<0.10 |\n | 200 | 20 | rate<0.05 |\n\n Scenario Outline: I run the k6 script for PUT requests\n Given I have a k6 script for PUT testing\n When I run the k6 script with the following configurations:\n | virtual_users | duration | http_req_failed | http_req_duration |\n | <virtual_users> | <duration> | <http_req_failed> | <http_req_duration> |\n And the following endpoint(s) is\/are used:\n \"\"\"\n \/api\/v1\/update-profile\n \"\"\"\n When the following PUT body is used for \"<endpoint>\"\n \"\"\"\n {\n \"id\": \"{{userId}}\",\n \"status\": \"updated\"\n }\n \"\"\"\n And the authentication type is \"bearer_token\"\n Then the API should handle the PUT request successfully\n\n Examples:\n | virtual_users | duration | http_req_failed | http_req_duration |\n | 20 | 10 | rate<0.05 | p(95)<1000 |\n","uri":"src\/examples\/features\/streesTestTemplate.feature","mediaType":"text\/x.cucumber.gherkin+plain"}},{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Run stress tests with dynamic GET and POST body from environment variables and JSON files","description":"","children":[{"scenario":{"id":"48a4d72c-ea2f-4e29-9e2d-103086563ee0","tags":[],"location":{"line":3,"column":3},"keyword":"Scenario Outline","name":"I run the k6 script for stress testing with dynamic POST body from environment variables and JSON files","description":"","steps":[{"id":"7a8ac557-194f-419e-babc-c86ef2081c61","location":{"line":4,"column":5},"keyword":"Given ","keywordType":"Context","text":"I have a k6 script for POST testing"},{"id":"2b93a621-8be0-4e70-ade2-a6954e421783","location":{"line":5,"column":5},"keyword":"When ","keywordType":"Action","text":"I run the k6 script with the following configurations:","dataTable":{"location":{"line":6,"column":7},"rows":[{"id":"54df2433-b140-4477-9d0a-35ea25b76409","location":{"line":6,"column":7},"cells":[{"location":{"line":6,"column":9},"value":"virtual_users"},{"location":{"line":6,"column":27},"value":"duration"},{"location":{"line":6,"column":40},"value":"http_req_failed"},{"location":{"line":6,"column":60},"value":"http_req_duration"},{"location":{"line":6,"column":82},"value":"error_rate"}]},{"id":"97b23d16-0d0c-41ce-a562-9434c8cfae57","location":{"line":7,"column":7},"cells":[{"location":{"line":7,"column":9},"value":"<virtual_users>"},{"location":{"line":7,"column":27},"value":"<duration>"},{"location":{"line":7,"column":40},"value":"<http_req_failed>"},{"location":{"line":7,"column":60},"value":"<http_req_duration>"},{"location":{"line":7,"column":82},"value":"<error_rate>"}]}]}},{"id":"575724a2-53e5-44bc-b402-894fef999262","location":{"line":8,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the following endpoint(s) is\/are used:","docString":{"location":{"line":9,"column":7},"content":"\/api\/v1\/resource1\nhttps:\/\/api.external.com\/resource2","delimiter":"\"\"\""}},{"id":"878d674e-c50b-4ccb-b0c5-c1dd5f13118b","location":{"line":13,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the following POST body is used:","docString":{"location":{"line":14,"column":7},"content":"{\n \"username\": \"{{username}}\",\n \"email\": \"{{email}}\",\n \"address\": \"<address.json>\"\n}","delimiter":"\"\"\""}},{"id":"688ddd9f-ae2a-4ab7-bc2c-124ac5707b5f","location":{"line":21,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"the API should handle the POST request successfully"}],"examples":[{"id":"1fc5cacb-5dc4-471b-8c05-98d10b291581","tags":[],"location":{"line":23,"column":5},"keyword":"Examples","name":"","description":"","tableBody":[]}]}},{"scenario":{"id":"1f5e95f6-5035-4782-b2ac-72338100506d","tags":[],"location":{"line":25,"column":3},"keyword":"Scenario Outline","name":"I run the k6 script for GET testing with dynamic endpoints","description":"","steps":[{"id":"5d7eb3bd-4394-4e32-8b37-7b1f02c1aca2","location":{"line":26,"column":5},"keyword":"Given ","keywordType":"Context","text":"I have a k6 script for GET testing"},{"id":"78c034a6-9a69-4efa-a05b-c413cd1450c7","location":{"line":27,"column":5},"keyword":"When ","keywordType":"Action","text":"I run the k6 script with the following configurations:","dataTable":{"location":{"line":28,"column":7},"rows":[{"id":"dd694f43-073f-4e68-8bee-c56ea26fa09b","location":{"line":28,"column":7},"cells":[{"location":{"line":28,"column":9},"value":"virtual_users"},{"location":{"line":28,"column":27},"value":"duration"},{"location":{"line":28,"column":40},"value":"http_req_failed"},{"location":{"line":28,"column":60},"value":"http_req_duration"},{"location":{"line":28,"column":82},"value":"error_rate"}]},{"id":"10e513cc-1e12-4515-bfe0-698d5c3150c8","location":{"line":29,"column":7},"cells":[{"location":{"line":29,"column":9},"value":"<virtual_users>"},{"location":{"line":29,"column":27},"value":"<duration>"},{"location":{"line":29,"column":40},"value":"<http_req_failed>"},{"location":{"line":29,"column":60},"value":"<http_req_duration>"},{"location":{"line":29,"column":82},"value":"<error_rate>"}]}]}},{"id":"e574617d-0452-4c62-8c1f-3b4a9a6c3916","location":{"line":30,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the following endpoint(s) is\/are used:","docString":{"location":{"line":31,"column":7},"content":"\/api\/v1\/resource1\nhttps:\/\/api.external.com\/resource2","delimiter":"\"\"\""}},{"id":"5af88fc1-7e7a-43cf-a23c-58c31b1af43d","location":{"line":35,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"the API should handle the GET request successfully"}],"examples":[{"id":"0494e5ee-f6ec-4b37-bf79-c3fceef6ae63","tags":[],"location":{"line":37,"column":5},"keyword":"Examples","name":"","description":"","tableHeader":{"id":"258d8d35-b8a8-474c-8781-5f44cf30ee96","location":{"line":38,"column":7},"cells":[{"location":{"line":38,"column":9},"value":"virtual_users"},{"location":{"line":38,"column":25},"value":"duration"},{"location":{"line":38,"column":36},"value":"http_req_failed"}]},"tableBody":[{"id":"71c27f11-370a-4968-8dbe-4937577e7de6","location":{"line":39,"column":7},"cells":[{"location":{"line":39,"column":20},"value":"10"},{"location":{"line":39,"column":32},"value":"5"},{"location":{"line":39,"column":36},"value":"rate<0.10"}]},{"id":"2da4260b-c492-4ae5-bac8-aa373352e8c7","location":{"line":40,"column":7},"cells":[{"location":{"line":40,"column":20},"value":"50"},{"location":{"line":40,"column":31},"value":"10"},{"location":{"line":40,"column":36},"value":"rate<0.05"}]},{"id":"e7e58d1d-7896-4007-ad4b-0552e1c2a9b1","location":{"line":41,"column":7},"cells":[{"location":{"line":41,"column":19},"value":"100"},{"location":{"line":41,"column":31},"value":"15"},{"location":{"line":41,"column":36},"value":"rate<0.10"}]},{"id":"62e82246-78bf-4b37-99b9-67bd6ccf4350","location":{"line":42,"column":7},"cells":[{"location":{"line":42,"column":19},"value":"200"},{"location":{"line":42,"column":31},"value":"20"},{"location":{"line":42,"column":36},"value":"rate<0.05"}]}]}]}},{"scenario":{"id":"6bc1b9f3-1cc5-4aba-83c7-96a2467159b7","tags":[],"location":{"line":44,"column":3},"keyword":"Scenario Outline","name":"I run the k6 script for PUT requests","description":"","steps":[{"id":"167a342f-5f27-4001-8292-5e10044914d2","location":{"line":45,"column":5},"keyword":"Given ","keywordType":"Context","text":"I have a k6 script for PUT testing"},{"id":"aa7ec1ce-fbd8-4103-b02c-d681686093b1","location":{"line":46,"column":5},"keyword":"When ","keywordType":"Action","text":"I run the k6 script with the following configurations:","dataTable":{"location":{"line":47,"column":7},"rows":[{"id":"2453a670-7d08-445c-8799-7a0d4d6a1dc6","location":{"line":47,"column":7},"cells":[{"location":{"line":47,"column":9},"value":"virtual_users"},{"location":{"line":47,"column":27},"value":"duration"},{"location":{"line":47,"column":40},"value":"http_req_failed"},{"location":{"line":47,"column":60},"value":"http_req_duration"}]},{"id":"cfd957d4-ac4b-454f-b269-076c8760d536","location":{"line":48,"column":7},"cells":[{"location":{"line":48,"column":9},"value":"<virtual_users>"},{"location":{"line":48,"column":27},"value":"<duration>"},{"location":{"line":48,"column":40},"value":"<http_req_failed>"},{"location":{"line":48,"column":60},"value":"<http_req_duration>"}]}]}},{"id":"bb2a48cc-23b9-4680-be39-422481fab889","location":{"line":49,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the following endpoint(s) is\/are used:","docString":{"location":{"line":50,"column":7},"content":"\/api\/v1\/update-profile","delimiter":"\"\"\""}},{"id":"affb20dc-714f-4b72-8451-81d083adac72","location":{"line":53,"column":5},"keyword":"When ","keywordType":"Action","text":"the following PUT body is used for \"<endpoint>\"","docString":{"location":{"line":54,"column":7},"content":"{\n \"id\": \"{{userId}}\",\n \"status\": \"updated\"\n}","delimiter":"\"\"\""}},{"id":"61bde84e-ed6b-40ca-8ab5-e10ea22d79a5","location":{"line":60,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the authentication type is \"bearer_token\""},{"id":"0fdb1f6a-ad17-4faf-b37c-20c9862c6b7c","location":{"line":61,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"the API should handle the PUT request successfully"}],"examples":[{"id":"3785a48d-b593-4b1e-b985-f7b266ac68df","tags":[],"location":{"line":63,"column":5},"keyword":"Examples","name":"","description":"","tableHeader":{"id":"928249ba-cbd2-49fc-82f2-477868700480","location":{"line":64,"column":7},"cells":[{"location":{"line":64,"column":9},"value":"virtual_users"},{"location":{"line":64,"column":25},"value":"duration"},{"location":{"line":64,"column":36},"value":"http_req_failed"},{"location":{"line":64,"column":54},"value":"http_req_duration"}]},"tableBody":[{"id":"0e0d57a6-65dd-42dc-8d03-b001d0569a48","location":{"line":65,"column":7},"cells":[{"location":{"line":65,"column":20},"value":"20"},{"location":{"line":65,"column":31},"value":"10"},{"location":{"line":65,"column":36},"value":"rate<0.05"},{"location":{"line":65,"column":54},"value":"p(95)<1000"}]}]}]}}]},"comments":[],"uri":"src\/examples\/features\/streesTestTemplate.feature"}},{"pickle":{"id":"06970576-0b7d-4826-9b7a-c9883642b285","uri":"src\/examples\/features\/streesTestTemplate.feature","astNodeIds":["1f5e95f6-5035-4782-b2ac-72338100506d","71c27f11-370a-4968-8dbe-4937577e7de6"],"name":"I run the k6 script for GET testing with dynamic endpoints","language":"en","steps":[{"id":"f97b3bd0-93cd-4540-9c8e-106807c4583d","text":"I have a k6 script for GET testing","type":"Context","astNodeIds":["5d7eb3bd-4394-4e32-8b37-7b1f02c1aca2","71c27f11-370a-4968-8dbe-4937577e7de6"]},{"id":"179ee5f5-c3f0-4463-ad77-99b9edfa80e0","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"10"},{"value":"5"},{"value":"rate<0.10"},{"value":"<http_req_duration>"},{"value":"<error_rate>"}]}]}},"astNodeIds":["78c034a6-9a69-4efa-a05b-c413cd1450c7","71c27f11-370a-4968-8dbe-4937577e7de6"]},{"id":"96bc2ddb-9cf3-47c7-ba21-416e004990c7","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/v1\/resource1\nhttps:\/\/api.external.com\/resource2"}},"astNodeIds":["e574617d-0452-4c62-8c1f-3b4a9a6c3916","71c27f11-370a-4968-8dbe-4937577e7de6"]},{"id":"568e57e4-93b8-4682-b040-832d5701e6a0","text":"the API should handle the GET request successfully","type":"Outcome","astNodeIds":["5af88fc1-7e7a-43cf-a23c-58c31b1af43d","71c27f11-370a-4968-8dbe-4937577e7de6"]}],"tags":[]}},{"pickle":{"id":"362c70cd-e4ff-41b7-86a3-7298a1851144","uri":"src\/examples\/features\/streesTestTemplate.feature","astNodeIds":["1f5e95f6-5035-4782-b2ac-72338100506d","2da4260b-c492-4ae5-bac8-aa373352e8c7"],"name":"I run the k6 script for GET testing with dynamic endpoints","language":"en","steps":[{"id":"99554291-886a-4234-b88c-116a0f652976","text":"I have a k6 script for GET testing","type":"Context","astNodeIds":["5d7eb3bd-4394-4e32-8b37-7b1f02c1aca2","2da4260b-c492-4ae5-bac8-aa373352e8c7"]},{"id":"d30719e6-9481-49f7-a4ea-66e201f627db","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"50"},{"value":"10"},{"value":"rate<0.05"},{"value":"<http_req_duration>"},{"value":"<error_rate>"}]}]}},"astNodeIds":["78c034a6-9a69-4efa-a05b-c413cd1450c7","2da4260b-c492-4ae5-bac8-aa373352e8c7"]},{"id":"c33a1416-5e60-4c54-a951-92305a97c81b","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/v1\/resource1\nhttps:\/\/api.external.com\/resource2"}},"astNodeIds":["e574617d-0452-4c62-8c1f-3b4a9a6c3916","2da4260b-c492-4ae5-bac8-aa373352e8c7"]},{"id":"1dfcaeb4-0aa1-4c0e-a210-42fc85e08599","text":"the API should handle the GET request successfully","type":"Outcome","astNodeIds":["5af88fc1-7e7a-43cf-a23c-58c31b1af43d","2da4260b-c492-4ae5-bac8-aa373352e8c7"]}],"tags":[]}},{"pickle":{"id":"15210fe9-616e-41d1-b774-91dc7aae3d5e","uri":"src\/examples\/features\/streesTestTemplate.feature","astNodeIds":["1f5e95f6-5035-4782-b2ac-72338100506d","e7e58d1d-7896-4007-ad4b-0552e1c2a9b1"],"name":"I run the k6 script for GET testing with dynamic endpoints","language":"en","steps":[{"id":"2f334e2f-bd43-4c3c-8ba7-20d13b6b3f1a","text":"I have a k6 script for GET testing","type":"Context","astNodeIds":["5d7eb3bd-4394-4e32-8b37-7b1f02c1aca2","e7e58d1d-7896-4007-ad4b-0552e1c2a9b1"]},{"id":"33d9dc5f-d742-4f81-96e5-0d91047f2755","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"100"},{"value":"15"},{"value":"rate<0.10"},{"value":"<http_req_duration>"},{"value":"<error_rate>"}]}]}},"astNodeIds":["78c034a6-9a69-4efa-a05b-c413cd1450c7","e7e58d1d-7896-4007-ad4b-0552e1c2a9b1"]},{"id":"bf5154c5-8562-43bf-9204-7cf43cdb00cf","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/v1\/resource1\nhttps:\/\/api.external.com\/resource2"}},"astNodeIds":["e574617d-0452-4c62-8c1f-3b4a9a6c3916","e7e58d1d-7896-4007-ad4b-0552e1c2a9b1"]},{"id":"3c8a3314-4047-4768-a917-d3e8b40065b6","text":"the API should handle the GET request successfully","type":"Outcome","astNodeIds":["5af88fc1-7e7a-43cf-a23c-58c31b1af43d","e7e58d1d-7896-4007-ad4b-0552e1c2a9b1"]}],"tags":[]}},{"pickle":{"id":"98d48b0c-e084-497a-b85f-333454128e6e","uri":"src\/examples\/features\/streesTestTemplate.feature","astNodeIds":["1f5e95f6-5035-4782-b2ac-72338100506d","62e82246-78bf-4b37-99b9-67bd6ccf4350"],"name":"I run the k6 script for GET testing with dynamic endpoints","language":"en","steps":[{"id":"fa50f2bd-db2f-4a12-873e-ad45867fd9f5","text":"I have a k6 script for GET testing","type":"Context","astNodeIds":["5d7eb3bd-4394-4e32-8b37-7b1f02c1aca2","62e82246-78bf-4b37-99b9-67bd6ccf4350"]},{"id":"c2c587a0-e09f-4429-b247-32bf27fc595b","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"200"},{"value":"20"},{"value":"rate<0.05"},{"value":"<http_req_duration>"},{"value":"<error_rate>"}]}]}},"astNodeIds":["78c034a6-9a69-4efa-a05b-c413cd1450c7","62e82246-78bf-4b37-99b9-67bd6ccf4350"]},{"id":"b72130d1-3444-47e0-9f0e-05dd36e15467","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/v1\/resource1\nhttps:\/\/api.external.com\/resource2"}},"astNodeIds":["e574617d-0452-4c62-8c1f-3b4a9a6c3916","62e82246-78bf-4b37-99b9-67bd6ccf4350"]},{"id":"e9e4f40b-d638-47ab-ad92-b16f20af7335","text":"the API should handle the GET request successfully","type":"Outcome","astNodeIds":["5af88fc1-7e7a-43cf-a23c-58c31b1af43d","62e82246-78bf-4b37-99b9-67bd6ccf4350"]}],"tags":[]}},{"pickle":{"id":"c28b957e-f95d-46c3-9974-e8cdd2d58723","uri":"src\/examples\/features\/streesTestTemplate.feature","astNodeIds":["6bc1b9f3-1cc5-4aba-83c7-96a2467159b7","0e0d57a6-65dd-42dc-8d03-b001d0569a48"],"name":"I run the k6 script for PUT requests","language":"en","steps":[{"id":"9c4e4266-0c3d-47a2-8b91-ed57cd7a677f","text":"I have a k6 script for PUT testing","type":"Context","astNodeIds":["167a342f-5f27-4001-8292-5e10044914d2","0e0d57a6-65dd-42dc-8d03-b001d0569a48"]},{"id":"b9c699d3-cca3-4d34-b6d9-7a1c4bfdb591","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"}]},{"cells":[{"value":"20"},{"value":"10"},{"value":"rate<0.05"},{"value":"p(95)<1000"}]}]}},"astNodeIds":["aa7ec1ce-fbd8-4103-b02c-d681686093b1","0e0d57a6-65dd-42dc-8d03-b001d0569a48"]},{"id":"9892aaba-cbcb-4849-8693-cf001892b85c","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/v1\/update-profile"}},"astNodeIds":["bb2a48cc-23b9-4680-be39-422481fab889","0e0d57a6-65dd-42dc-8d03-b001d0569a48"]},{"id":"2dc94db4-94f7-4da7-a333-83f3fc41e97c","text":"the following PUT body is used for \"<endpoint>\"","type":"Action","argument":{"docString":{"content":"{\n \"id\": \"{{userId}}\",\n \"status\": \"updated\"\n}"}},"astNodeIds":["affb20dc-714f-4b72-8451-81d083adac72","0e0d57a6-65dd-42dc-8d03-b001d0569a48"]},{"id":"5377c4e9-e0a7-40a6-86df-cdec4e899575","text":"the authentication type is \"bearer_token\"","type":"Action","astNodeIds":["61bde84e-ed6b-40ca-8ab5-e10ea22d79a5","0e0d57a6-65dd-42dc-8d03-b001d0569a48"]},{"id":"635a7a5b-ffcf-406f-bb19-3a249e5ac04a","text":"the API should handle the PUT request successfully","type":"Outcome","astNodeIds":["0fdb1f6a-ad17-4faf-b37c-20c9862c6b7c","0e0d57a6-65dd-42dc-8d03-b001d0569a48"]}],"tags":[]}},{"stepDefinition":{"id":"29dd4476-e981-4ae5-8b34-88d8ad1d80e3","pattern":{"source":"I have a k6 script for {word} testing","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":21}}}},{"stepDefinition":{"id":"1b12d419-3afe-4aff-8939-238069ecc43e","pattern":{"source":"I run the k6 script with the following configurations:","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":25}}}},{"stepDefinition":{"id":"5655f412-2e51-407d-b42d-192d8ff84dec","pattern":{"source":"the request headers are:","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":71}}}},{"stepDefinition":{"id":"7951d41d-7c11-46f7-81f7-b2bb75937e4e","pattern":{"source":"the following endpoint\\(s) is\\\/are used:","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":83}}}},{"stepDefinition":{"id":"b33c99a3-86dd-4515-b1f4-7eb4a85f4433","pattern":{"source":"the following {word} body is used for {string}","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":90}}}},{"stepDefinition":{"id":"7e901e87-9a47-4967-b4b6-18540831dbde","pattern":{"source":"the authentication type is {string}","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":99}}}},{"stepDefinition":{"id":"8b68602d-29a2-4367-8361-03d06af850d5","pattern":{"source":"the API should handle the {word} request successfully","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":134}}}},{"testRunStarted":{"id":"08e4a86b-1ff7-4081-9e1a-2780e1e1a25f","timestamp":{"seconds":1745691604,"nanos":952000000}}},{"testCase":{"testRunStartedId":"08e4a86b-1ff7-4081-9e1a-2780e1e1a25f","pickleId":"2efb135d-06ac-43ca-b1ef-5464c7181e9e","id":"098c4c8a-c22b-48a0-82ca-4d0501fed538","testSteps":[{"id":"89737ac7-9680-41e3-9c92-bc1d2a9548f1","pickleStepId":"78588474-57f0-4c1b-af04-da8b9fdf68aa","stepDefinitionIds":["29dd4476-e981-4ae5-8b34-88d8ad1d80e3"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":23,"value":"GET","children":[]},"parameterTypeName":"word"}]}]},{"id":"33579145-4d0b-44c3-9886-17a7b2fbccc7","pickleStepId":"8e46dc53-19bd-4e6d-9d67-8fd10683e33c","stepDefinitionIds":["1b12d419-3afe-4aff-8939-238069ecc43e"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"bad5631f-048c-4be4-8438-b55357393df7","pickleStepId":"c83b2571-112e-4b91-b099-6991c47dd620","stepDefinitionIds":["7951d41d-7c11-46f7-81f7-b2bb75937e4e"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"855566e3-aa1b-46ae-a6f9-5183d5402540","pickleStepId":"39a0416d-3c7d-481f-bd8d-a6f8fd4280ec","stepDefinitionIds":["7e901e87-9a47-4967-b4b6-18540831dbde"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":27,"value":"\"none\"","children":[{"start":28,"value":"none","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"f7882a2c-bf83-40ff-aed1-abf88444ae38","pickleStepId":"62e70917-9f30-435d-8177-222025074f81","stepDefinitionIds":["8b68602d-29a2-4367-8361-03d06af850d5"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":26,"value":"GET","children":[]},"parameterTypeName":"word"}]}]}]}},{"testCase":{"testRunStartedId":"08e4a86b-1ff7-4081-9e1a-2780e1e1a25f","pickleId":"faee1afd-7d4f-4dbc-969c-c910fd3f05c7","id":"463710f8-5442-4bd7-9326-52cf228d5c0a","testSteps":[{"id":"0327f932-19da-400e-a7f9-ad82881f59c7","pickleStepId":"45e377df-83b3-4e01-ae9a-e12f04d11ebf","stepDefinitionIds":["29dd4476-e981-4ae5-8b34-88d8ad1d80e3"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":23,"value":"GET","children":[]},"parameterTypeName":"word"}]}]},{"id":"19fde595-0f99-44f9-afa0-559201163b1b","pickleStepId":"c7de4d80-21b4-40be-860e-a73e37206915","stepDefinitionIds":["1b12d419-3afe-4aff-8939-238069ecc43e"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"d9df6337-cb25-495f-a16c-066a7111235e","pickleStepId":"d22bac4e-0b9e-4d82-9cc6-451d66c32036","stepDefinitionIds":["7951d41d-7c11-46f7-81f7-b2bb75937e4e"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"3f9bd65b-085a-4232-983d-baed2f901ef6","pickleStepId":"34835a6f-6272-426c-9e3d-65e3102bcc99","stepDefinitionIds":["7e901e87-9a47-4967-b4b6-18540831dbde"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":27,"value":"\"none\"","children":[{"start":28,"value":"none","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"2eec25ef-d016-4dfa-846b-a114988d156e","pickleStepId":"4a74e89d-afc0-419b-80ac-7b979940ee0a","stepDefinitionIds":["8b68602d-29a2-4367-8361-03d06af850d5"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":26,"value":"GET","children":[]},"parameterTypeName":"word"}]}]}]}},{"testCaseStarted":{"attempt":0,"testCaseId":"098c4c8a-c22b-48a0-82ca-4d0501fed538","id":"87d54058-3c56-47cb-a7fc-f77c1ab021de","timestamp":{"seconds":1745691604,"nanos":959000000}}},{"testStepStarted":{"testCaseStartedId":"87d54058-3c56-47cb-a7fc-f77c1ab021de","testStepId":"89737ac7-9680-41e3-9c92-bc1d2a9548f1","timestamp":{"seconds":1745691604,"nanos":959000000}}},{"testStepFinished":{"testCaseStartedId":"87d54058-3c56-47cb-a7fc-f77c1ab021de","testStepId":"89737ac7-9680-41e3-9c92-bc1d2a9548f1","testStepResult":{"duration":{"seconds":0,"nanos":525166},"status":"PASSED"},"timestamp":{"seconds":1745691604,"nanos":960000000}}},{"testStepStarted":{"testCaseStartedId":"87d54058-3c56-47cb-a7fc-f77c1ab021de","testStepId":"33579145-4d0b-44c3-9886-17a7b2fbccc7","timestamp":{"seconds":1745691604,"nanos":960000000}}},{"testStepFinished":{"testCaseStartedId":"87d54058-3c56-47cb-a7fc-f77c1ab021de","testStepId":"33579145-4d0b-44c3-9886-17a7b2fbccc7","testStepResult":{"duration":{"seconds":0,"nanos":228541},"status":"PASSED"},"timestamp":{"seconds":1745691604,"nanos":960000000}}},{"testStepStarted":{"testCaseStartedId":"87d54058-3c56-47cb-a7fc-f77c1ab021de","testStepId":"bad5631f-048c-4be4-8438-b55357393df7","timestamp":{"seconds":1745691604,"nanos":960000000}}},{"testStepFinished":{"testCaseStartedId":"87d54058-3c56-47cb-a7fc-f77c1ab021de","testStepId":"bad5631f-048c-4be4-8438-b55357393df7","testStepResult":{"duration":{"seconds":0,"nanos":48999},"status":"PASSED"},"timestamp":{"seconds":1745691604,"nanos":960000000}}},{"testStepStarted":{"testCaseStartedId":"87d54058-3c56-47cb-a7fc-f77c1ab021de","testStepId":"855566e3-aa1b-46ae-a6f9-5183d5402540","timestamp":{"seconds":1745691604,"nanos":960000000}}},{"testStepFinished":{"testCaseStartedId":"87d54058-3c56-47cb-a7fc-f77c1ab021de","testStepId":"855566e3-aa1b-46ae-a6f9-5183d5402540","testStepResult":{"duration":{"seconds":0,"nanos":78249},"status":"PASSED"},"timestamp":{"seconds":1745691604,"nanos":960000000}}},{"testStepStarted":{"testCaseStartedId":"87d54058-3c56-47cb-a7fc-f77c1ab021de","testStepId":"f7882a2c-bf83-40ff-aed1-abf88444ae38","timestamp":{"seconds":1745691604,"nanos":960000000}}},{"testStepFinished":{"testCaseStartedId":"87d54058-3c56-47cb-a7fc-f77c1ab021de","testStepId":"f7882a2c-bf83-40ff-aed1-abf88444ae38","testStepResult":{"duration":{"seconds":5,"nanos":869350583},"status":"PASSED"},"timestamp":{"seconds":1745691610,"nanos":830000000}}},{"testCaseFinished":{"testCaseStartedId":"87d54058-3c56-47cb-a7fc-f77c1ab021de","timestamp":{"seconds":1745691610,"nanos":830000000},"willBeRetried":false}},{"testCaseStarted":{"attempt":0,"testCaseId":"463710f8-5442-4bd7-9326-52cf228d5c0a","id":"969d95d4-0b2d-4576-8562-b7b649ca0cd7","timestamp":{"seconds":1745691610,"nanos":830000000}}},{"testStepStarted":{"testCaseStartedId":"969d95d4-0b2d-4576-8562-b7b649ca0cd7","testStepId":"0327f932-19da-400e-a7f9-ad82881f59c7","timestamp":{"seconds":1745691610,"nanos":830000000}}},{"testStepFinished":{"testCaseStartedId":"969d95d4-0b2d-4576-8562-b7b649ca0cd7","testStepId":"0327f932-19da-400e-a7f9-ad82881f59c7","testStepResult":{"duration":{"seconds":0,"nanos":70459},"status":"PASSED"},"timestamp":{"seconds":1745691610,"nanos":830000000}}},{"testStepStarted":{"testCaseStartedId":"969d95d4-0b2d-4576-8562-b7b649ca0cd7","testStepId":"19fde595-0f99-44f9-afa0-559201163b1b","timestamp":{"seconds":1745691610,"nanos":830000000}}},{"testStepFinished":{"testCaseStartedId":"969d95d4-0b2d-4576-8562-b7b649ca0cd7","testStepId":"19fde595-0f99-44f9-afa0-559201163b1b","testStepResult":{"duration":{"seconds":0,"nanos":51750},"status":"PASSED"},"timestamp":{"seconds":1745691610,"nanos":830000000}}},{"testStepStarted":{"testCaseStartedId":"969d95d4-0b2d-4576-8562-b7b649ca0cd7","testStepId":"d9df6337-cb25-495f-a16c-066a7111235e","timestamp":{"seconds":1745691610,"nanos":830000000}}},{"testStepFinished":{"testCaseStartedId":"969d95d4-0b2d-4576-8562-b7b649ca0cd7","testStepId":"d9df6337-cb25-495f-a16c-066a7111235e","testStepResult":{"duration":{"seconds":0,"nanos":29375},"status":"PASSED"},"timestamp":{"seconds":1745691610,"nanos":830000000}}},{"testStepStarted":{"testCaseStartedId":"969d95d4-0b2d-4576-8562-b7b649ca0cd7","testStepId":"3f9bd65b-085a-4232-983d-baed2f901ef6","timestamp":{"seconds":1745691610,"nanos":830000000}}},{"testStepFinished":{"testCaseStartedId":"969d95d4-0b2d-4576-8562-b7b649ca0cd7","testStepId":"3f9bd65b-085a-4232-983d-baed2f901ef6","testStepResult":{"duration":{"seconds":0,"nanos":106124},"status":"PASSED"},"timestamp":{"seconds":1745691610,"nanos":831000000}}},{"testStepStarted":{"testCaseStartedId":"969d95d4-0b2d-4576-8562-b7b649ca0cd7","testStepId":"2eec25ef-d016-4dfa-846b-a114988d156e","timestamp":{"seconds":1745691610,"nanos":831000000}}},{"testStepFinished":{"testCaseStartedId":"969d95d4-0b2d-4576-8562-b7b649ca0cd7","testStepId":"2eec25ef-d016-4dfa-846b-a114988d156e","testStepResult":{"duration":{"seconds":11,"nanos":204749374},"status":"PASSED"},"timestamp":{"seconds":1745691622,"nanos":36000000}}},{"testCaseFinished":{"testCaseStartedId":"969d95d4-0b2d-4576-8562-b7b649ca0cd7","timestamp":{"seconds":1745691622,"nanos":36000000},"willBeRetried":false}},{"testRunFinished":{"testRunStartedId":"08e4a86b-1ff7-4081-9e1a-2780e1e1a25f","timestamp":{"seconds":1745691622,"nanos":36000000},"success":true}}];
43
+ window.CUCUMBER_MESSAGES = [{"meta":{"protocolVersion":"27.0.2","implementation":{"version":"11.2.0","name":"cucumber-js"},"cpu":{"name":"arm64"},"os":{"name":"darwin","version":"24.3.0"},"runtime":{"name":"node.js","version":"22.14.0"}}},{"source":{"data":"Feature: Run load tests with dynamic GET and POST body from environment variables and JSON files\n\n Scenario Outline: I run the k6 script for load testing with dynamic POST body from environment variables and JSON files\n Given I have a k6 script for POST testing\n When I run the k6 script with the following configurations:\n | virtual_users | duration | http_req_failed | http_req_duration | error_rate |\n | <virtual_users> | <duration> | <http_req_failed> | <http_req_duration> | <error_rate> |\n When the following endpoint(s) is\/are used:\n \"\"\"\n \/api\/profile\n http:\/\/test.k6.io\n \"\"\"\n When the following POST body is used for \"<endpoint>\"\n \"\"\"\n {\n \"username\": \"{{username}}\",\n \"email\": \"{{email}}\",\n \"address\": \"<address.json>\"\n }\n \"\"\"\n When the authentication type is \"api_key\"\n Then the API should handle the POST request successfully\n\n Examples:\n | virtual_users | duration | http_req_failed | http_req_duration | error_rate |\n | 10 | 5 | rate<0.05 | p(95)<3000 | rate<0.05 |\n | 50 | 10 | rate<0.05 | p(95)<3000 | rate<0.05 |\n | 100 | 15 | rate<0.05 | p(95)<3500 | |\n | 200 | 20 | rate<0.05 | p(95)<3500 | rate<0.05 |\n\n @loadTest\n Scenario Outline: I run the k6 script for load testing with dynamic GET requests\n Given I have a k6 script for GET testing\n When I run the k6 script with the following configurations:\n | virtual_users | duration | http_req_failed | http_req_duration | error_rate |\n | <virtual_users> | <duration> | <http_req_failed> | <http_req_duration> | <error_rate> |\n And the following endpoint(s) is\/are used:\n \"\"\"\n \/get?foo1=bar1&foo2=bar2\n https:\/\/postman-echo.com\/get?foo1=bar1&foo2=bar2\n \"\"\"\n When the authentication type is \"none\"\n Then the API should handle the GET request successfully\n\n Examples:\n | virtual_users | duration | http_req_failed | http_req_duration |\n | 10 | 5 | rate<0.05 | p(95)<3000 |\n | 50 | 10 | rate<0.05 | p(95)<3000 |\n # | 100 | 15 | rate<0.05 | p(95)<3500 |\n # | 200 | 20 | rate<0.05 | p(95)<3500 |\n","uri":"src\/examples\/features\/loadTestTemplate.feature","mediaType":"text\/x.cucumber.gherkin+plain"}},{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Run load tests with dynamic GET and POST body from environment variables and JSON files","description":"","children":[{"scenario":{"id":"fd1dfb32-6e2c-4b90-ae07-288c6b135309","tags":[],"location":{"line":3,"column":3},"keyword":"Scenario Outline","name":"I run the k6 script for load testing with dynamic POST body from environment variables and JSON files","description":"","steps":[{"id":"b71229df-0f0d-43d7-906b-395b785ccd25","location":{"line":4,"column":5},"keyword":"Given ","keywordType":"Context","text":"I have a k6 script for POST testing"},{"id":"3ae30eee-d57b-453a-93b4-14e6254ccd15","location":{"line":5,"column":5},"keyword":"When ","keywordType":"Action","text":"I run the k6 script with the following configurations:","dataTable":{"location":{"line":6,"column":7},"rows":[{"id":"e027368b-76ba-4b85-a6ed-31f7ae3decac","location":{"line":6,"column":7},"cells":[{"location":{"line":6,"column":9},"value":"virtual_users"},{"location":{"line":6,"column":27},"value":"duration"},{"location":{"line":6,"column":40},"value":"http_req_failed"},{"location":{"line":6,"column":60},"value":"http_req_duration"},{"location":{"line":6,"column":82},"value":"error_rate"}]},{"id":"5867b84b-b483-4068-8eec-7d83e6f30690","location":{"line":7,"column":7},"cells":[{"location":{"line":7,"column":9},"value":"<virtual_users>"},{"location":{"line":7,"column":27},"value":"<duration>"},{"location":{"line":7,"column":40},"value":"<http_req_failed>"},{"location":{"line":7,"column":60},"value":"<http_req_duration>"},{"location":{"line":7,"column":82},"value":"<error_rate>"}]}]}},{"id":"c52ef639-f129-4da1-8e76-ee1dd00cc5fe","location":{"line":8,"column":5},"keyword":"When ","keywordType":"Action","text":"the following endpoint(s) is\/are used:","docString":{"location":{"line":9,"column":7},"content":"\/api\/profile\nhttp:\/\/test.k6.io","delimiter":"\"\"\""}},{"id":"84bc9409-2eb4-40ee-919b-90b905d9baa7","location":{"line":13,"column":5},"keyword":"When ","keywordType":"Action","text":"the following POST body is used for \"<endpoint>\"","docString":{"location":{"line":14,"column":7},"content":"{\n \"username\": \"{{username}}\",\n \"email\": \"{{email}}\",\n \"address\": \"<address.json>\"\n}","delimiter":"\"\"\""}},{"id":"9746d083-b0dd-49ee-a9eb-1e1071b3d9b5","location":{"line":21,"column":5},"keyword":"When ","keywordType":"Action","text":"the authentication type is \"api_key\""},{"id":"8f04bb3c-639a-4a1a-8473-cb66ac36b091","location":{"line":22,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"the API should handle the POST request successfully"}],"examples":[{"id":"d8165bc5-7bc9-4e5d-b777-1e695c446d9b","tags":[],"location":{"line":24,"column":5},"keyword":"Examples","name":"","description":"","tableHeader":{"id":"f4f7f4a4-db15-47e0-a4a3-e6b8a9e9a860","location":{"line":25,"column":7},"cells":[{"location":{"line":25,"column":9},"value":"virtual_users"},{"location":{"line":25,"column":25},"value":"duration"},{"location":{"line":25,"column":36},"value":"http_req_failed"},{"location":{"line":25,"column":54},"value":"http_req_duration"},{"location":{"line":25,"column":74},"value":"error_rate"}]},"tableBody":[{"id":"a037d6ea-ec3e-413a-a1fb-5c34c8c3996f","location":{"line":26,"column":7},"cells":[{"location":{"line":26,"column":20},"value":"10"},{"location":{"line":26,"column":32},"value":"5"},{"location":{"line":26,"column":36},"value":"rate<0.05"},{"location":{"line":26,"column":54},"value":"p(95)<3000"},{"location":{"line":26,"column":74},"value":"rate<0.05"}]},{"id":"e93bbcbf-b8dc-400c-8de9-d7eb1a2a5119","location":{"line":27,"column":7},"cells":[{"location":{"line":27,"column":20},"value":"50"},{"location":{"line":27,"column":31},"value":"10"},{"location":{"line":27,"column":36},"value":"rate<0.05"},{"location":{"line":27,"column":54},"value":"p(95)<3000"},{"location":{"line":27,"column":74},"value":"rate<0.05"}]},{"id":"d61dddf8-967e-4f69-8b04-0f1bb863b52b","location":{"line":28,"column":7},"cells":[{"location":{"line":28,"column":19},"value":"100"},{"location":{"line":28,"column":31},"value":"15"},{"location":{"line":28,"column":36},"value":"rate<0.05"},{"location":{"line":28,"column":54},"value":"p(95)<3500"},{"location":{"line":28,"column":85},"value":""}]},{"id":"8906bba6-b4c2-432a-8b66-76b1cd0e1414","location":{"line":29,"column":7},"cells":[{"location":{"line":29,"column":19},"value":"200"},{"location":{"line":29,"column":31},"value":"20"},{"location":{"line":29,"column":36},"value":"rate<0.05"},{"location":{"line":29,"column":54},"value":"p(95)<3500"},{"location":{"line":29,"column":74},"value":"rate<0.05"}]}]}]}},{"scenario":{"id":"190fd1a8-f264-481b-b45a-06c56b5d50c5","tags":[{"location":{"line":31,"column":3},"name":"@loadTest","id":"97fd9e37-b0f7-46c2-81d9-cbcd98c33834"}],"location":{"line":32,"column":3},"keyword":"Scenario Outline","name":"I run the k6 script for load testing with dynamic GET requests","description":"","steps":[{"id":"16d0548c-2298-482f-8be4-8d065dc8cb16","location":{"line":33,"column":5},"keyword":"Given ","keywordType":"Context","text":"I have a k6 script for GET testing"},{"id":"8fc1aaff-2ab7-442a-8990-81a468ba7dd8","location":{"line":34,"column":5},"keyword":"When ","keywordType":"Action","text":"I run the k6 script with the following configurations:","dataTable":{"location":{"line":35,"column":7},"rows":[{"id":"8828213c-3040-4b2c-8133-efe292340ec6","location":{"line":35,"column":7},"cells":[{"location":{"line":35,"column":9},"value":"virtual_users"},{"location":{"line":35,"column":27},"value":"duration"},{"location":{"line":35,"column":40},"value":"http_req_failed"},{"location":{"line":35,"column":60},"value":"http_req_duration"},{"location":{"line":35,"column":82},"value":"error_rate"}]},{"id":"4b320605-1a02-44de-90d5-ca5a8252ae19","location":{"line":36,"column":7},"cells":[{"location":{"line":36,"column":9},"value":"<virtual_users>"},{"location":{"line":36,"column":27},"value":"<duration>"},{"location":{"line":36,"column":40},"value":"<http_req_failed>"},{"location":{"line":36,"column":60},"value":"<http_req_duration>"},{"location":{"line":36,"column":82},"value":"<error_rate>"}]}]}},{"id":"748afb48-bbe6-486c-b6ca-b9e8cdb5b92b","location":{"line":37,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the following endpoint(s) is\/are used:","docString":{"location":{"line":38,"column":7},"content":"\/get?foo1=bar1&foo2=bar2\nhttps:\/\/postman-echo.com\/get?foo1=bar1&foo2=bar2","delimiter":"\"\"\""}},{"id":"d63b0073-26fd-4b65-a84c-8925e65c4499","location":{"line":42,"column":5},"keyword":"When ","keywordType":"Action","text":"the authentication type is \"none\""},{"id":"c3421c08-cadf-4e5c-a33f-24a2cb06e837","location":{"line":43,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"the API should handle the GET request successfully"}],"examples":[{"id":"1c2ed159-3434-4ae4-8268-bf331449441b","tags":[],"location":{"line":45,"column":5},"keyword":"Examples","name":"","description":"","tableHeader":{"id":"6a0ec98f-298e-4deb-a97a-1eae4940bdac","location":{"line":46,"column":7},"cells":[{"location":{"line":46,"column":9},"value":"virtual_users"},{"location":{"line":46,"column":25},"value":"duration"},{"location":{"line":46,"column":36},"value":"http_req_failed"},{"location":{"line":46,"column":54},"value":"http_req_duration"}]},"tableBody":[{"id":"0211aa32-6cdb-43d0-8043-a5d784c9d03d","location":{"line":47,"column":7},"cells":[{"location":{"line":47,"column":20},"value":"10"},{"location":{"line":47,"column":32},"value":"5"},{"location":{"line":47,"column":36},"value":"rate<0.05"},{"location":{"line":47,"column":54},"value":"p(95)<3000"}]},{"id":"0057f062-4059-4f84-ae9e-8eb70f5c214b","location":{"line":48,"column":7},"cells":[{"location":{"line":48,"column":20},"value":"50"},{"location":{"line":48,"column":31},"value":"10"},{"location":{"line":48,"column":36},"value":"rate<0.05"},{"location":{"line":48,"column":54},"value":"p(95)<3000"}]}]}]}}]},"comments":[{"location":{"line":49,"column":1},"text":" # | 100 | 15 | rate<0.05 | p(95)<3500 |"},{"location":{"line":50,"column":1},"text":" # | 200 | 20 | rate<0.05 | p(95)<3500 |"}],"uri":"src\/examples\/features\/loadTestTemplate.feature"}},{"pickle":{"id":"caf12b22-1441-4707-9a04-a533f3e55650","uri":"src\/examples\/features\/loadTestTemplate.feature","astNodeIds":["fd1dfb32-6e2c-4b90-ae07-288c6b135309","a037d6ea-ec3e-413a-a1fb-5c34c8c3996f"],"name":"I run the k6 script for load testing with dynamic POST body from environment variables and JSON files","language":"en","steps":[{"id":"aef731ce-bf5f-4295-98d5-c7cbcea8477c","text":"I have a k6 script for POST testing","type":"Context","astNodeIds":["b71229df-0f0d-43d7-906b-395b785ccd25","a037d6ea-ec3e-413a-a1fb-5c34c8c3996f"]},{"id":"e1b956b2-a281-4f47-8319-7b557ad4d2de","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"10"},{"value":"5"},{"value":"rate<0.05"},{"value":"p(95)<3000"},{"value":"rate<0.05"}]}]}},"astNodeIds":["3ae30eee-d57b-453a-93b4-14e6254ccd15","a037d6ea-ec3e-413a-a1fb-5c34c8c3996f"]},{"id":"b0ab2f9e-1e94-4b96-8829-24cf006b15ea","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/profile\nhttp:\/\/test.k6.io"}},"astNodeIds":["c52ef639-f129-4da1-8e76-ee1dd00cc5fe","a037d6ea-ec3e-413a-a1fb-5c34c8c3996f"]},{"id":"7d0d7e2e-21be-4f61-8a64-227d6b6e4ca1","text":"the following POST body is used for \"<endpoint>\"","type":"Action","argument":{"docString":{"content":"{\n \"username\": \"{{username}}\",\n \"email\": \"{{email}}\",\n \"address\": \"<address.json>\"\n}"}},"astNodeIds":["84bc9409-2eb4-40ee-919b-90b905d9baa7","a037d6ea-ec3e-413a-a1fb-5c34c8c3996f"]},{"id":"0aeeb232-3034-4d64-b697-adc0bcc69960","text":"the authentication type is \"api_key\"","type":"Action","astNodeIds":["9746d083-b0dd-49ee-a9eb-1e1071b3d9b5","a037d6ea-ec3e-413a-a1fb-5c34c8c3996f"]},{"id":"78f70380-e3e7-4be9-958a-f059b11e410e","text":"the API should handle the POST request successfully","type":"Outcome","astNodeIds":["8f04bb3c-639a-4a1a-8473-cb66ac36b091","a037d6ea-ec3e-413a-a1fb-5c34c8c3996f"]}],"tags":[]}},{"pickle":{"id":"c6d7cc4d-429c-43e7-a511-330ac60f25ba","uri":"src\/examples\/features\/loadTestTemplate.feature","astNodeIds":["fd1dfb32-6e2c-4b90-ae07-288c6b135309","e93bbcbf-b8dc-400c-8de9-d7eb1a2a5119"],"name":"I run the k6 script for load testing with dynamic POST body from environment variables and JSON files","language":"en","steps":[{"id":"78524cfb-1a4e-4040-9723-51d3e7cc4c55","text":"I have a k6 script for POST testing","type":"Context","astNodeIds":["b71229df-0f0d-43d7-906b-395b785ccd25","e93bbcbf-b8dc-400c-8de9-d7eb1a2a5119"]},{"id":"31f57e0e-eeb9-460d-af7b-0c252784f36b","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"50"},{"value":"10"},{"value":"rate<0.05"},{"value":"p(95)<3000"},{"value":"rate<0.05"}]}]}},"astNodeIds":["3ae30eee-d57b-453a-93b4-14e6254ccd15","e93bbcbf-b8dc-400c-8de9-d7eb1a2a5119"]},{"id":"07a4c6ab-4256-47e2-ac2b-497d4c1638cf","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/profile\nhttp:\/\/test.k6.io"}},"astNodeIds":["c52ef639-f129-4da1-8e76-ee1dd00cc5fe","e93bbcbf-b8dc-400c-8de9-d7eb1a2a5119"]},{"id":"783d3b79-b9bf-4b4b-afc4-81d1d0817d68","text":"the following POST body is used for \"<endpoint>\"","type":"Action","argument":{"docString":{"content":"{\n \"username\": \"{{username}}\",\n \"email\": \"{{email}}\",\n \"address\": \"<address.json>\"\n}"}},"astNodeIds":["84bc9409-2eb4-40ee-919b-90b905d9baa7","e93bbcbf-b8dc-400c-8de9-d7eb1a2a5119"]},{"id":"a73a3d8c-351c-41ce-84ce-8158321bd310","text":"the authentication type is \"api_key\"","type":"Action","astNodeIds":["9746d083-b0dd-49ee-a9eb-1e1071b3d9b5","e93bbcbf-b8dc-400c-8de9-d7eb1a2a5119"]},{"id":"ea9f68dd-0214-49bf-83d0-32ea07ae8660","text":"the API should handle the POST request successfully","type":"Outcome","astNodeIds":["8f04bb3c-639a-4a1a-8473-cb66ac36b091","e93bbcbf-b8dc-400c-8de9-d7eb1a2a5119"]}],"tags":[]}},{"pickle":{"id":"4a37c49f-7446-4973-9e01-0b2445b2621d","uri":"src\/examples\/features\/loadTestTemplate.feature","astNodeIds":["fd1dfb32-6e2c-4b90-ae07-288c6b135309","d61dddf8-967e-4f69-8b04-0f1bb863b52b"],"name":"I run the k6 script for load testing with dynamic POST body from environment variables and JSON files","language":"en","steps":[{"id":"266a9053-bcb4-4526-94f3-c4eede249f64","text":"I have a k6 script for POST testing","type":"Context","astNodeIds":["b71229df-0f0d-43d7-906b-395b785ccd25","d61dddf8-967e-4f69-8b04-0f1bb863b52b"]},{"id":"2dc472e5-5b60-4d9e-9093-fdcef735a3ea","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"100"},{"value":"15"},{"value":"rate<0.05"},{"value":"p(95)<3500"},{"value":""}]}]}},"astNodeIds":["3ae30eee-d57b-453a-93b4-14e6254ccd15","d61dddf8-967e-4f69-8b04-0f1bb863b52b"]},{"id":"19fc953c-b3a1-4289-9de5-4610ec431c21","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/profile\nhttp:\/\/test.k6.io"}},"astNodeIds":["c52ef639-f129-4da1-8e76-ee1dd00cc5fe","d61dddf8-967e-4f69-8b04-0f1bb863b52b"]},{"id":"0950696a-acc3-46fa-a02d-93895f348dbe","text":"the following POST body is used for \"<endpoint>\"","type":"Action","argument":{"docString":{"content":"{\n \"username\": \"{{username}}\",\n \"email\": \"{{email}}\",\n \"address\": \"<address.json>\"\n}"}},"astNodeIds":["84bc9409-2eb4-40ee-919b-90b905d9baa7","d61dddf8-967e-4f69-8b04-0f1bb863b52b"]},{"id":"e03ee708-62eb-49a0-88e3-8a0a5526086d","text":"the authentication type is \"api_key\"","type":"Action","astNodeIds":["9746d083-b0dd-49ee-a9eb-1e1071b3d9b5","d61dddf8-967e-4f69-8b04-0f1bb863b52b"]},{"id":"cb866856-af59-4df6-9bb1-6adfbf9ece1d","text":"the API should handle the POST request successfully","type":"Outcome","astNodeIds":["8f04bb3c-639a-4a1a-8473-cb66ac36b091","d61dddf8-967e-4f69-8b04-0f1bb863b52b"]}],"tags":[]}},{"pickle":{"id":"9b4621f3-9eb5-4d1d-979d-932819047952","uri":"src\/examples\/features\/loadTestTemplate.feature","astNodeIds":["fd1dfb32-6e2c-4b90-ae07-288c6b135309","8906bba6-b4c2-432a-8b66-76b1cd0e1414"],"name":"I run the k6 script for load testing with dynamic POST body from environment variables and JSON files","language":"en","steps":[{"id":"d0ae06c3-b004-48aa-ba42-43ac49b9d051","text":"I have a k6 script for POST testing","type":"Context","astNodeIds":["b71229df-0f0d-43d7-906b-395b785ccd25","8906bba6-b4c2-432a-8b66-76b1cd0e1414"]},{"id":"ce050f57-7831-49b9-85d5-d64b33961b9a","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"200"},{"value":"20"},{"value":"rate<0.05"},{"value":"p(95)<3500"},{"value":"rate<0.05"}]}]}},"astNodeIds":["3ae30eee-d57b-453a-93b4-14e6254ccd15","8906bba6-b4c2-432a-8b66-76b1cd0e1414"]},{"id":"5834dc24-88b4-4b6d-930e-081f9c4aacc7","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/profile\nhttp:\/\/test.k6.io"}},"astNodeIds":["c52ef639-f129-4da1-8e76-ee1dd00cc5fe","8906bba6-b4c2-432a-8b66-76b1cd0e1414"]},{"id":"70ca2d9d-0b78-4598-8dac-3f7b2069fb31","text":"the following POST body is used for \"<endpoint>\"","type":"Action","argument":{"docString":{"content":"{\n \"username\": \"{{username}}\",\n \"email\": \"{{email}}\",\n \"address\": \"<address.json>\"\n}"}},"astNodeIds":["84bc9409-2eb4-40ee-919b-90b905d9baa7","8906bba6-b4c2-432a-8b66-76b1cd0e1414"]},{"id":"432df269-3eea-4f2f-85c4-cd12aadc9217","text":"the authentication type is \"api_key\"","type":"Action","astNodeIds":["9746d083-b0dd-49ee-a9eb-1e1071b3d9b5","8906bba6-b4c2-432a-8b66-76b1cd0e1414"]},{"id":"7c991631-bbd7-4119-918b-7c14ba6a4e9d","text":"the API should handle the POST request successfully","type":"Outcome","astNodeIds":["8f04bb3c-639a-4a1a-8473-cb66ac36b091","8906bba6-b4c2-432a-8b66-76b1cd0e1414"]}],"tags":[]}},{"pickle":{"id":"dbc7658a-6636-48fd-a243-d2e8db3b5ea3","uri":"src\/examples\/features\/loadTestTemplate.feature","astNodeIds":["190fd1a8-f264-481b-b45a-06c56b5d50c5","0211aa32-6cdb-43d0-8043-a5d784c9d03d"],"name":"I run the k6 script for load testing with dynamic GET requests","language":"en","steps":[{"id":"cd8526b1-f856-4057-bf9c-ae2d88791fd0","text":"I have a k6 script for GET testing","type":"Context","astNodeIds":["16d0548c-2298-482f-8be4-8d065dc8cb16","0211aa32-6cdb-43d0-8043-a5d784c9d03d"]},{"id":"dedf390f-cf6e-4f15-8547-a91d4d224cda","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"10"},{"value":"5"},{"value":"rate<0.05"},{"value":"p(95)<3000"},{"value":"<error_rate>"}]}]}},"astNodeIds":["8fc1aaff-2ab7-442a-8990-81a468ba7dd8","0211aa32-6cdb-43d0-8043-a5d784c9d03d"]},{"id":"5451f38e-395f-41a0-bc57-56077267efd2","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/get?foo1=bar1&foo2=bar2\nhttps:\/\/postman-echo.com\/get?foo1=bar1&foo2=bar2"}},"astNodeIds":["748afb48-bbe6-486c-b6ca-b9e8cdb5b92b","0211aa32-6cdb-43d0-8043-a5d784c9d03d"]},{"id":"ac0bd6ef-65bc-4878-a271-9c662c7c7e1a","text":"the authentication type is \"none\"","type":"Action","astNodeIds":["d63b0073-26fd-4b65-a84c-8925e65c4499","0211aa32-6cdb-43d0-8043-a5d784c9d03d"]},{"id":"b78cc87d-9015-41f1-af58-bd8cbd761a12","text":"the API should handle the GET request successfully","type":"Outcome","astNodeIds":["c3421c08-cadf-4e5c-a33f-24a2cb06e837","0211aa32-6cdb-43d0-8043-a5d784c9d03d"]}],"tags":[{"name":"@loadTest","astNodeId":"97fd9e37-b0f7-46c2-81d9-cbcd98c33834"}]}},{"pickle":{"id":"8b5f009c-e976-42c1-8e55-84c2192872cf","uri":"src\/examples\/features\/loadTestTemplate.feature","astNodeIds":["190fd1a8-f264-481b-b45a-06c56b5d50c5","0057f062-4059-4f84-ae9e-8eb70f5c214b"],"name":"I run the k6 script for load testing with dynamic GET requests","language":"en","steps":[{"id":"242aefec-9ab0-41dd-b83e-899bf0f98f9b","text":"I have a k6 script for GET testing","type":"Context","astNodeIds":["16d0548c-2298-482f-8be4-8d065dc8cb16","0057f062-4059-4f84-ae9e-8eb70f5c214b"]},{"id":"05c1d33d-b951-4d02-a5a6-229c13fe4360","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"50"},{"value":"10"},{"value":"rate<0.05"},{"value":"p(95)<3000"},{"value":"<error_rate>"}]}]}},"astNodeIds":["8fc1aaff-2ab7-442a-8990-81a468ba7dd8","0057f062-4059-4f84-ae9e-8eb70f5c214b"]},{"id":"d2817f09-5ad5-4112-aac4-3ddf85f4f1ee","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/get?foo1=bar1&foo2=bar2\nhttps:\/\/postman-echo.com\/get?foo1=bar1&foo2=bar2"}},"astNodeIds":["748afb48-bbe6-486c-b6ca-b9e8cdb5b92b","0057f062-4059-4f84-ae9e-8eb70f5c214b"]},{"id":"65d93103-e6fd-449e-9396-9bc5d0d0be27","text":"the authentication type is \"none\"","type":"Action","astNodeIds":["d63b0073-26fd-4b65-a84c-8925e65c4499","0057f062-4059-4f84-ae9e-8eb70f5c214b"]},{"id":"a7459900-18ad-4203-9bb5-f1af14038393","text":"the API should handle the GET request successfully","type":"Outcome","astNodeIds":["c3421c08-cadf-4e5c-a33f-24a2cb06e837","0057f062-4059-4f84-ae9e-8eb70f5c214b"]}],"tags":[{"name":"@loadTest","astNodeId":"97fd9e37-b0f7-46c2-81d9-cbcd98c33834"}]}},{"source":{"data":"Feature: Extended Load Testing with PUT, DELETE, and Multipart Uploads\n\n Scenario Outline: I run the k6 script for load testing with PUT requests\n Given I have a k6 script for PUT testing\n When I run the k6 script with the following configurations:\n | virtual_users | duration |\n | <virtual_users> | <duration> |\n And the following endpoint is used: \"<endpoint>\"\n When the following PUT body is used:\n \"\"\"\n {\n \"userId\": \"{{user_id}}\",\n \"status\": \"{{status}}\"\n }\n \"\"\"\n And the authentication type is \"bearer_token\"\n Then the API should handle the PUT request successfully\n\n Examples:\n | virtual_users | duration | endpoint |\n | 10 | 5 | \/api\/v1\/update-status |\n\n Scenario Outline: I run the k6 script for load testing with DELETE requests\n Given I have a k6 script for DELETE testing\n When I run the k6 script with the following configurations:\n | virtual_users | duration |\n | <virtual_users> | <duration> |\n And the following endpoint is used: \"<endpoint>\"\n And the authentication type is \"api_key\"\n Then the API should handle the DELETE request successfully\n\n Examples:\n | virtual_users | duration | endpoint |\n | 20 | 3 | \/api\/v1\/delete-record |\n\n Scenario Outline: I run the k6 script for load testing with multipart\/form-data requests\n Given I have a k6 script for multipart POST testing\n When I run the k6 script with the following configurations:\n | virtual_users | duration |\n | <virtual_users> | <duration> |\n And the following endpoint is used: \"<endpoint>\"\n When the following multipart body is used:\n \"\"\"\n file: <sample.pdf>\n description: {{file_description}}\n \"\"\"\n And the authentication type is \"bearer_token\"\n Then the API should handle multipart request successfully\n\n Examples:\n | virtual_users | duration | endpoint |\n | 15 | 5 | \/api\/v1\/upload-file |\n","uri":"src\/examples\/features\/putDeleteMultipartUploads.feature","mediaType":"text\/x.cucumber.gherkin+plain"}},{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Extended Load Testing with PUT, DELETE, and Multipart Uploads","description":"","children":[{"scenario":{"id":"20936a2a-2a5e-4b7e-b077-d4031b004ff6","tags":[],"location":{"line":3,"column":3},"keyword":"Scenario Outline","name":"I run the k6 script for load testing with PUT requests","description":"","steps":[{"id":"c1b8e729-cb42-4c96-bf02-34d2bc56ccd3","location":{"line":4,"column":5},"keyword":"Given ","keywordType":"Context","text":"I have a k6 script for PUT testing"},{"id":"b4938c55-e7f5-4202-8f88-d1e5d543aa5e","location":{"line":5,"column":5},"keyword":"When ","keywordType":"Action","text":"I run the k6 script with the following configurations:","dataTable":{"location":{"line":6,"column":7},"rows":[{"id":"000f6ebd-11e4-4b7e-aef9-ea5a400baef5","location":{"line":6,"column":7},"cells":[{"location":{"line":6,"column":9},"value":"virtual_users"},{"location":{"line":6,"column":27},"value":"duration"}]},{"id":"0eb933da-3dc5-4003-879e-170a75af298f","location":{"line":7,"column":7},"cells":[{"location":{"line":7,"column":9},"value":"<virtual_users>"},{"location":{"line":7,"column":27},"value":"<duration>"}]}]}},{"id":"8c9415cf-ccbc-499d-9636-2d7d28ae3797","location":{"line":8,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the following endpoint is used: \"<endpoint>\""},{"id":"9a9361e7-2039-4ea1-9e8a-966648f60a49","location":{"line":9,"column":5},"keyword":"When ","keywordType":"Action","text":"the following PUT body is used:","docString":{"location":{"line":10,"column":7},"content":"{\n \"userId\": \"{{user_id}}\",\n \"status\": \"{{status}}\"\n}","delimiter":"\"\"\""}},{"id":"34a98652-87b1-45d9-9fd1-255893b10145","location":{"line":16,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the authentication type is \"bearer_token\""},{"id":"82d9604a-1ad1-4200-9974-7d3296c857f8","location":{"line":17,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"the API should handle the PUT request successfully"}],"examples":[{"id":"f4baea7a-794d-497e-b51a-c1a0daf83b2b","tags":[],"location":{"line":19,"column":5},"keyword":"Examples","name":"","description":"","tableHeader":{"id":"322dc7bf-65ff-4a5f-b5e2-040573c4fa87","location":{"line":20,"column":7},"cells":[{"location":{"line":20,"column":9},"value":"virtual_users"},{"location":{"line":20,"column":25},"value":"duration"},{"location":{"line":20,"column":36},"value":"endpoint"}]},"tableBody":[{"id":"7e980d62-1309-46fa-be05-f9e59de3550c","location":{"line":21,"column":7},"cells":[{"location":{"line":21,"column":20},"value":"10"},{"location":{"line":21,"column":32},"value":"5"},{"location":{"line":21,"column":36},"value":"\/api\/v1\/update-status"}]}]}]}},{"scenario":{"id":"c9fe35cf-9d1c-45d2-a3ee-77c472a07675","tags":[],"location":{"line":23,"column":3},"keyword":"Scenario Outline","name":"I run the k6 script for load testing with DELETE requests","description":"","steps":[{"id":"c7ea148d-341b-45db-8a71-17e8a366e265","location":{"line":24,"column":5},"keyword":"Given ","keywordType":"Context","text":"I have a k6 script for DELETE testing"},{"id":"d949704a-95e1-498a-becb-217506d081e4","location":{"line":25,"column":5},"keyword":"When ","keywordType":"Action","text":"I run the k6 script with the following configurations:","dataTable":{"location":{"line":26,"column":7},"rows":[{"id":"75e38f1c-f3da-47b3-8b80-51223ab9f1b0","location":{"line":26,"column":7},"cells":[{"location":{"line":26,"column":9},"value":"virtual_users"},{"location":{"line":26,"column":27},"value":"duration"}]},{"id":"556ab417-58f5-440f-b177-c6dba486ef89","location":{"line":27,"column":7},"cells":[{"location":{"line":27,"column":9},"value":"<virtual_users>"},{"location":{"line":27,"column":27},"value":"<duration>"}]}]}},{"id":"b986fd60-76d3-4da8-9c82-71f2ed551321","location":{"line":28,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the following endpoint is used: \"<endpoint>\""},{"id":"c9796676-c1cf-4f56-92bf-6f57f170ecf5","location":{"line":29,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the authentication type is \"api_key\""},{"id":"f64dade8-979a-4c1d-adf7-3f5085b5a2ef","location":{"line":30,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"the API should handle the DELETE request successfully"}],"examples":[{"id":"f77ea1ab-53c7-4972-84a1-038e0f5f4338","tags":[],"location":{"line":32,"column":5},"keyword":"Examples","name":"","description":"","tableHeader":{"id":"3ac6c54a-9467-4a75-a23d-8d64af48f7de","location":{"line":33,"column":7},"cells":[{"location":{"line":33,"column":9},"value":"virtual_users"},{"location":{"line":33,"column":25},"value":"duration"},{"location":{"line":33,"column":36},"value":"endpoint"}]},"tableBody":[{"id":"d5eb4cb3-4d92-4369-8b67-cae7ac653b30","location":{"line":34,"column":7},"cells":[{"location":{"line":34,"column":20},"value":"20"},{"location":{"line":34,"column":32},"value":"3"},{"location":{"line":34,"column":36},"value":"\/api\/v1\/delete-record"}]}]}]}},{"scenario":{"id":"c946ed9a-5eb1-4fb7-b3a0-73cc66b333ea","tags":[],"location":{"line":36,"column":3},"keyword":"Scenario Outline","name":"I run the k6 script for load testing with multipart\/form-data requests","description":"","steps":[{"id":"5fb6a822-4fb7-4627-9eb7-48d0e9970afa","location":{"line":37,"column":5},"keyword":"Given ","keywordType":"Context","text":"I have a k6 script for multipart POST testing"},{"id":"35051722-e8df-4d17-a7ba-5e65e9a3989a","location":{"line":38,"column":5},"keyword":"When ","keywordType":"Action","text":"I run the k6 script with the following configurations:","dataTable":{"location":{"line":39,"column":7},"rows":[{"id":"92988cdb-8445-4de7-ac24-22479d54c72a","location":{"line":39,"column":7},"cells":[{"location":{"line":39,"column":9},"value":"virtual_users"},{"location":{"line":39,"column":27},"value":"duration"}]},{"id":"f572527c-d633-43e5-996e-ba1911d07853","location":{"line":40,"column":7},"cells":[{"location":{"line":40,"column":9},"value":"<virtual_users>"},{"location":{"line":40,"column":27},"value":"<duration>"}]}]}},{"id":"22056ef1-966f-408f-983c-8b171375de92","location":{"line":41,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the following endpoint is used: \"<endpoint>\""},{"id":"41f4d050-0f8e-41bf-9a2e-d42d653fd784","location":{"line":42,"column":5},"keyword":"When ","keywordType":"Action","text":"the following multipart body is used:","docString":{"location":{"line":43,"column":7},"content":"file: <sample.pdf>\ndescription: {{file_description}}","delimiter":"\"\"\""}},{"id":"22e6f464-a631-49d0-887f-ba0011b75cf7","location":{"line":47,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the authentication type is \"bearer_token\""},{"id":"fef86789-3731-48c6-9a21-474f0aff5899","location":{"line":48,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"the API should handle multipart request successfully"}],"examples":[{"id":"7dc9463c-b4ce-4844-8938-f9a489970885","tags":[],"location":{"line":50,"column":5},"keyword":"Examples","name":"","description":"","tableHeader":{"id":"86d169b1-9ec8-4442-8f20-fa1afc9ab321","location":{"line":51,"column":7},"cells":[{"location":{"line":51,"column":9},"value":"virtual_users"},{"location":{"line":51,"column":25},"value":"duration"},{"location":{"line":51,"column":36},"value":"endpoint"}]},"tableBody":[{"id":"044565ec-c274-4139-9a9d-c9ccc71abbe7","location":{"line":52,"column":7},"cells":[{"location":{"line":52,"column":20},"value":"15"},{"location":{"line":52,"column":32},"value":"5"},{"location":{"line":52,"column":36},"value":"\/api\/v1\/upload-file"}]}]}]}}]},"comments":[],"uri":"src\/examples\/features\/putDeleteMultipartUploads.feature"}},{"pickle":{"id":"7db219ac-955a-4b28-865a-882e881e62e7","uri":"src\/examples\/features\/putDeleteMultipartUploads.feature","astNodeIds":["20936a2a-2a5e-4b7e-b077-d4031b004ff6","7e980d62-1309-46fa-be05-f9e59de3550c"],"name":"I run the k6 script for load testing with PUT requests","language":"en","steps":[{"id":"88d93f9e-570c-4338-8527-cbaaa81c61d0","text":"I have a k6 script for PUT testing","type":"Context","astNodeIds":["c1b8e729-cb42-4c96-bf02-34d2bc56ccd3","7e980d62-1309-46fa-be05-f9e59de3550c"]},{"id":"16d17ef5-94cd-46c6-b575-e4a6ffeb83d6","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"}]},{"cells":[{"value":"10"},{"value":"5"}]}]}},"astNodeIds":["b4938c55-e7f5-4202-8f88-d1e5d543aa5e","7e980d62-1309-46fa-be05-f9e59de3550c"]},{"id":"fd29d319-90c4-4701-a55e-e27ac46feabc","text":"the following endpoint is used: \"\/api\/v1\/update-status\"","type":"Action","astNodeIds":["8c9415cf-ccbc-499d-9636-2d7d28ae3797","7e980d62-1309-46fa-be05-f9e59de3550c"]},{"id":"d109919f-4853-4e0e-8202-b12eb65d3626","text":"the following PUT body is used:","type":"Action","argument":{"docString":{"content":"{\n \"userId\": \"{{user_id}}\",\n \"status\": \"{{status}}\"\n}"}},"astNodeIds":["9a9361e7-2039-4ea1-9e8a-966648f60a49","7e980d62-1309-46fa-be05-f9e59de3550c"]},{"id":"9d10b3cb-102f-45d3-bf6d-44101fe706aa","text":"the authentication type is \"bearer_token\"","type":"Action","astNodeIds":["34a98652-87b1-45d9-9fd1-255893b10145","7e980d62-1309-46fa-be05-f9e59de3550c"]},{"id":"995ac329-0c35-43d7-a137-9da7eb035895","text":"the API should handle the PUT request successfully","type":"Outcome","astNodeIds":["82d9604a-1ad1-4200-9974-7d3296c857f8","7e980d62-1309-46fa-be05-f9e59de3550c"]}],"tags":[]}},{"pickle":{"id":"932858d7-a419-4ed7-a4da-1a8de735be31","uri":"src\/examples\/features\/putDeleteMultipartUploads.feature","astNodeIds":["c9fe35cf-9d1c-45d2-a3ee-77c472a07675","d5eb4cb3-4d92-4369-8b67-cae7ac653b30"],"name":"I run the k6 script for load testing with DELETE requests","language":"en","steps":[{"id":"c5c31693-e3e6-451c-928b-6f84db807525","text":"I have a k6 script for DELETE testing","type":"Context","astNodeIds":["c7ea148d-341b-45db-8a71-17e8a366e265","d5eb4cb3-4d92-4369-8b67-cae7ac653b30"]},{"id":"d935bd04-a346-4383-ad71-e480ae5af697","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"}]},{"cells":[{"value":"20"},{"value":"3"}]}]}},"astNodeIds":["d949704a-95e1-498a-becb-217506d081e4","d5eb4cb3-4d92-4369-8b67-cae7ac653b30"]},{"id":"faad52cc-773e-4924-986a-ff1a61fcb7ae","text":"the following endpoint is used: \"\/api\/v1\/delete-record\"","type":"Action","astNodeIds":["b986fd60-76d3-4da8-9c82-71f2ed551321","d5eb4cb3-4d92-4369-8b67-cae7ac653b30"]},{"id":"823f716e-4c26-4ece-a840-d5540096239d","text":"the authentication type is \"api_key\"","type":"Action","astNodeIds":["c9796676-c1cf-4f56-92bf-6f57f170ecf5","d5eb4cb3-4d92-4369-8b67-cae7ac653b30"]},{"id":"f3c82006-bb6b-49e6-acdd-103536a1fc1f","text":"the API should handle the DELETE request successfully","type":"Outcome","astNodeIds":["f64dade8-979a-4c1d-adf7-3f5085b5a2ef","d5eb4cb3-4d92-4369-8b67-cae7ac653b30"]}],"tags":[]}},{"pickle":{"id":"f9bb765b-cb3b-4496-a77c-d704503b3205","uri":"src\/examples\/features\/putDeleteMultipartUploads.feature","astNodeIds":["c946ed9a-5eb1-4fb7-b3a0-73cc66b333ea","044565ec-c274-4139-9a9d-c9ccc71abbe7"],"name":"I run the k6 script for load testing with multipart\/form-data requests","language":"en","steps":[{"id":"43fce7a9-3666-483d-9331-156d361a577c","text":"I have a k6 script for multipart POST testing","type":"Context","astNodeIds":["5fb6a822-4fb7-4627-9eb7-48d0e9970afa","044565ec-c274-4139-9a9d-c9ccc71abbe7"]},{"id":"31ba1dd9-c4ce-4b27-8a96-d718f1ee61ff","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"}]},{"cells":[{"value":"15"},{"value":"5"}]}]}},"astNodeIds":["35051722-e8df-4d17-a7ba-5e65e9a3989a","044565ec-c274-4139-9a9d-c9ccc71abbe7"]},{"id":"273cc3ff-7c76-41e5-b1e0-e5b495612dd1","text":"the following endpoint is used: \"\/api\/v1\/upload-file\"","type":"Action","astNodeIds":["22056ef1-966f-408f-983c-8b171375de92","044565ec-c274-4139-9a9d-c9ccc71abbe7"]},{"id":"d2e6dbbf-7220-402a-86ad-27a16fc5ecef","text":"the following multipart body is used:","type":"Action","argument":{"docString":{"content":"file: <sample.pdf>\ndescription: {{file_description}}"}},"astNodeIds":["41f4d050-0f8e-41bf-9a2e-d42d653fd784","044565ec-c274-4139-9a9d-c9ccc71abbe7"]},{"id":"3bec5b72-aafc-4a4d-be36-62f6d07bd424","text":"the authentication type is \"bearer_token\"","type":"Action","astNodeIds":["22e6f464-a631-49d0-887f-ba0011b75cf7","044565ec-c274-4139-9a9d-c9ccc71abbe7"]},{"id":"6146750d-d640-444a-a4d2-874f1eb7bb70","text":"the API should handle multipart request successfully","type":"Outcome","astNodeIds":["fef86789-3731-48c6-9a21-474f0aff5899","044565ec-c274-4139-9a9d-c9ccc71abbe7"]}],"tags":[]}},{"source":{"data":"Feature: Run stress tests with dynamic GET and POST body from environment variables and JSON files\n\n Scenario Outline: I run the k6 script for stress testing with dynamic POST body from environment variables and JSON files\n Given I have a k6 script for POST testing\n When I run the k6 script with the following configurations:\n | virtual_users | duration | http_req_failed | http_req_duration | error_rate |\n | <virtual_users> | <duration> | <http_req_failed> | <http_req_duration> | <error_rate> |\n And the following endpoint(s) is\/are used:\n \"\"\"\n \/api\/v1\/resource1\n https:\/\/api.external.com\/resource2\n \"\"\"\n And the following POST body is used:\n \"\"\"\n {\n \"username\": \"{{username}}\",\n \"email\": \"{{email}}\",\n \"address\": \"<address.json>\"\n }\n \"\"\"\n Then the API should handle the POST request successfully\n\n Examples:\n\n Scenario Outline: I run the k6 script for GET testing with dynamic endpoints\n Given I have a k6 script for GET testing\n When I run the k6 script with the following configurations:\n | virtual_users | duration | http_req_failed | http_req_duration | error_rate |\n | <virtual_users> | <duration> | <http_req_failed> | <http_req_duration> | <error_rate> |\n And the following endpoint(s) is\/are used:\n \"\"\"\n \/api\/v1\/resource1\n https:\/\/api.external.com\/resource2\n \"\"\"\n Then the API should handle the GET request successfully\n\n Examples:\n | virtual_users | duration | http_req_failed |\n | 10 | 5 | rate<0.10 |\n | 50 | 10 | rate<0.05 |\n | 100 | 15 | rate<0.10 |\n | 200 | 20 | rate<0.05 |\n\n Scenario Outline: I run the k6 script for PUT requests\n Given I have a k6 script for PUT testing\n When I run the k6 script with the following configurations:\n | virtual_users | duration | http_req_failed | http_req_duration |\n | <virtual_users> | <duration> | <http_req_failed> | <http_req_duration> |\n And the following endpoint(s) is\/are used:\n \"\"\"\n \/api\/v1\/update-profile\n \"\"\"\n When the following PUT body is used for \"<endpoint>\"\n \"\"\"\n {\n \"id\": \"{{userId}}\",\n \"status\": \"updated\"\n }\n \"\"\"\n And the authentication type is \"bearer_token\"\n Then the API should handle the PUT request successfully\n\n Examples:\n | virtual_users | duration | http_req_failed | http_req_duration |\n | 20 | 10 | rate<0.05 | p(95)<1000 |\n","uri":"src\/examples\/features\/streesTestTemplate.feature","mediaType":"text\/x.cucumber.gherkin+plain"}},{"gherkinDocument":{"feature":{"tags":[],"location":{"line":1,"column":1},"language":"en","keyword":"Feature","name":"Run stress tests with dynamic GET and POST body from environment variables and JSON files","description":"","children":[{"scenario":{"id":"cd320fe5-c65f-4d7f-b085-6be326416ddb","tags":[],"location":{"line":3,"column":3},"keyword":"Scenario Outline","name":"I run the k6 script for stress testing with dynamic POST body from environment variables and JSON files","description":"","steps":[{"id":"dea1c14d-a693-4479-aed0-34657e9e13f2","location":{"line":4,"column":5},"keyword":"Given ","keywordType":"Context","text":"I have a k6 script for POST testing"},{"id":"c149d71b-16b4-491f-b4c0-8d62646448bc","location":{"line":5,"column":5},"keyword":"When ","keywordType":"Action","text":"I run the k6 script with the following configurations:","dataTable":{"location":{"line":6,"column":7},"rows":[{"id":"14beb266-1ed1-42d0-968e-83079b0708ac","location":{"line":6,"column":7},"cells":[{"location":{"line":6,"column":9},"value":"virtual_users"},{"location":{"line":6,"column":27},"value":"duration"},{"location":{"line":6,"column":40},"value":"http_req_failed"},{"location":{"line":6,"column":60},"value":"http_req_duration"},{"location":{"line":6,"column":82},"value":"error_rate"}]},{"id":"6e689dd2-5076-4379-b4c0-311017239794","location":{"line":7,"column":7},"cells":[{"location":{"line":7,"column":9},"value":"<virtual_users>"},{"location":{"line":7,"column":27},"value":"<duration>"},{"location":{"line":7,"column":40},"value":"<http_req_failed>"},{"location":{"line":7,"column":60},"value":"<http_req_duration>"},{"location":{"line":7,"column":82},"value":"<error_rate>"}]}]}},{"id":"10a8764d-0806-48d7-9b01-c1750fe2cfb6","location":{"line":8,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the following endpoint(s) is\/are used:","docString":{"location":{"line":9,"column":7},"content":"\/api\/v1\/resource1\nhttps:\/\/api.external.com\/resource2","delimiter":"\"\"\""}},{"id":"3e078cde-aa11-46f8-8c74-030c78d18eb5","location":{"line":13,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the following POST body is used:","docString":{"location":{"line":14,"column":7},"content":"{\n \"username\": \"{{username}}\",\n \"email\": \"{{email}}\",\n \"address\": \"<address.json>\"\n}","delimiter":"\"\"\""}},{"id":"08556d5e-f7d0-408e-b147-a3892a8fab95","location":{"line":21,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"the API should handle the POST request successfully"}],"examples":[{"id":"f9cd3a7f-aaa3-454a-990e-884c451ac333","tags":[],"location":{"line":23,"column":5},"keyword":"Examples","name":"","description":"","tableBody":[]}]}},{"scenario":{"id":"bca37ef3-061c-49b8-a947-cef8b7dedfd0","tags":[],"location":{"line":25,"column":3},"keyword":"Scenario Outline","name":"I run the k6 script for GET testing with dynamic endpoints","description":"","steps":[{"id":"63d3c6e3-ac4c-4063-ba0e-8940c660cec0","location":{"line":26,"column":5},"keyword":"Given ","keywordType":"Context","text":"I have a k6 script for GET testing"},{"id":"81cfd430-21e5-4e94-9da7-f9fd94358740","location":{"line":27,"column":5},"keyword":"When ","keywordType":"Action","text":"I run the k6 script with the following configurations:","dataTable":{"location":{"line":28,"column":7},"rows":[{"id":"daeb7b49-dbb9-4283-9074-d71167033d0e","location":{"line":28,"column":7},"cells":[{"location":{"line":28,"column":9},"value":"virtual_users"},{"location":{"line":28,"column":27},"value":"duration"},{"location":{"line":28,"column":40},"value":"http_req_failed"},{"location":{"line":28,"column":60},"value":"http_req_duration"},{"location":{"line":28,"column":82},"value":"error_rate"}]},{"id":"0851cd8f-7e31-4fa3-a693-06be5b42191c","location":{"line":29,"column":7},"cells":[{"location":{"line":29,"column":9},"value":"<virtual_users>"},{"location":{"line":29,"column":27},"value":"<duration>"},{"location":{"line":29,"column":40},"value":"<http_req_failed>"},{"location":{"line":29,"column":60},"value":"<http_req_duration>"},{"location":{"line":29,"column":82},"value":"<error_rate>"}]}]}},{"id":"348fd54f-6a85-49b5-a08f-347aa2e9bca0","location":{"line":30,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the following endpoint(s) is\/are used:","docString":{"location":{"line":31,"column":7},"content":"\/api\/v1\/resource1\nhttps:\/\/api.external.com\/resource2","delimiter":"\"\"\""}},{"id":"8a2bb351-122c-445e-803e-20574a396b41","location":{"line":35,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"the API should handle the GET request successfully"}],"examples":[{"id":"23b5ce59-4433-4cd1-a726-56da74a81dda","tags":[],"location":{"line":37,"column":5},"keyword":"Examples","name":"","description":"","tableHeader":{"id":"414a0574-899b-43f7-855f-4c7dc40c6ef4","location":{"line":38,"column":7},"cells":[{"location":{"line":38,"column":9},"value":"virtual_users"},{"location":{"line":38,"column":25},"value":"duration"},{"location":{"line":38,"column":36},"value":"http_req_failed"}]},"tableBody":[{"id":"635e1f1b-9ccd-472e-b604-688b736fc25e","location":{"line":39,"column":7},"cells":[{"location":{"line":39,"column":20},"value":"10"},{"location":{"line":39,"column":32},"value":"5"},{"location":{"line":39,"column":36},"value":"rate<0.10"}]},{"id":"bc6685cb-a5c1-48c1-b122-19568a27bfdc","location":{"line":40,"column":7},"cells":[{"location":{"line":40,"column":20},"value":"50"},{"location":{"line":40,"column":31},"value":"10"},{"location":{"line":40,"column":36},"value":"rate<0.05"}]},{"id":"63f7e6e7-3ef9-4ccc-a827-7595dd10592e","location":{"line":41,"column":7},"cells":[{"location":{"line":41,"column":19},"value":"100"},{"location":{"line":41,"column":31},"value":"15"},{"location":{"line":41,"column":36},"value":"rate<0.10"}]},{"id":"955e01eb-7af7-40d8-94f3-3de8610f4b69","location":{"line":42,"column":7},"cells":[{"location":{"line":42,"column":19},"value":"200"},{"location":{"line":42,"column":31},"value":"20"},{"location":{"line":42,"column":36},"value":"rate<0.05"}]}]}]}},{"scenario":{"id":"77c1662c-c2eb-401a-a1c5-e0e4e749040e","tags":[],"location":{"line":44,"column":3},"keyword":"Scenario Outline","name":"I run the k6 script for PUT requests","description":"","steps":[{"id":"2254b8ec-c800-441b-a1ca-52bf95a334ef","location":{"line":45,"column":5},"keyword":"Given ","keywordType":"Context","text":"I have a k6 script for PUT testing"},{"id":"30a8c34a-0f94-4ed6-b244-c1310047edcf","location":{"line":46,"column":5},"keyword":"When ","keywordType":"Action","text":"I run the k6 script with the following configurations:","dataTable":{"location":{"line":47,"column":7},"rows":[{"id":"6aa93965-6235-4ec4-894d-689075617bc2","location":{"line":47,"column":7},"cells":[{"location":{"line":47,"column":9},"value":"virtual_users"},{"location":{"line":47,"column":27},"value":"duration"},{"location":{"line":47,"column":40},"value":"http_req_failed"},{"location":{"line":47,"column":60},"value":"http_req_duration"}]},{"id":"13e4fca2-ea2b-4f09-9689-2c883b8509c4","location":{"line":48,"column":7},"cells":[{"location":{"line":48,"column":9},"value":"<virtual_users>"},{"location":{"line":48,"column":27},"value":"<duration>"},{"location":{"line":48,"column":40},"value":"<http_req_failed>"},{"location":{"line":48,"column":60},"value":"<http_req_duration>"}]}]}},{"id":"ded1eb50-bd26-4c39-84bf-be594cb80887","location":{"line":49,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the following endpoint(s) is\/are used:","docString":{"location":{"line":50,"column":7},"content":"\/api\/v1\/update-profile","delimiter":"\"\"\""}},{"id":"cc2433d2-85ee-4fad-87b9-ba9d68588b57","location":{"line":53,"column":5},"keyword":"When ","keywordType":"Action","text":"the following PUT body is used for \"<endpoint>\"","docString":{"location":{"line":54,"column":7},"content":"{\n \"id\": \"{{userId}}\",\n \"status\": \"updated\"\n}","delimiter":"\"\"\""}},{"id":"a8557123-ad05-431b-aa47-709f410253d4","location":{"line":60,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"the authentication type is \"bearer_token\""},{"id":"351fbd29-237d-4a51-9610-567aa4105117","location":{"line":61,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"the API should handle the PUT request successfully"}],"examples":[{"id":"251c68fd-3dc0-427b-8ecd-58e32d2d5265","tags":[],"location":{"line":63,"column":5},"keyword":"Examples","name":"","description":"","tableHeader":{"id":"7509abb9-2675-48c7-8b11-e804dfe46bd7","location":{"line":64,"column":7},"cells":[{"location":{"line":64,"column":9},"value":"virtual_users"},{"location":{"line":64,"column":25},"value":"duration"},{"location":{"line":64,"column":36},"value":"http_req_failed"},{"location":{"line":64,"column":54},"value":"http_req_duration"}]},"tableBody":[{"id":"94838ed3-010a-4f92-a80b-bebef374fee7","location":{"line":65,"column":7},"cells":[{"location":{"line":65,"column":20},"value":"20"},{"location":{"line":65,"column":31},"value":"10"},{"location":{"line":65,"column":36},"value":"rate<0.05"},{"location":{"line":65,"column":54},"value":"p(95)<1000"}]}]}]}}]},"comments":[],"uri":"src\/examples\/features\/streesTestTemplate.feature"}},{"pickle":{"id":"670dd059-253a-4546-88de-d2563bdd2390","uri":"src\/examples\/features\/streesTestTemplate.feature","astNodeIds":["bca37ef3-061c-49b8-a947-cef8b7dedfd0","635e1f1b-9ccd-472e-b604-688b736fc25e"],"name":"I run the k6 script for GET testing with dynamic endpoints","language":"en","steps":[{"id":"f467a92f-237e-4774-abaa-cc48f80d53e1","text":"I have a k6 script for GET testing","type":"Context","astNodeIds":["63d3c6e3-ac4c-4063-ba0e-8940c660cec0","635e1f1b-9ccd-472e-b604-688b736fc25e"]},{"id":"b9d4145a-428e-483c-a6ff-a110c409fb60","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"10"},{"value":"5"},{"value":"rate<0.10"},{"value":"<http_req_duration>"},{"value":"<error_rate>"}]}]}},"astNodeIds":["81cfd430-21e5-4e94-9da7-f9fd94358740","635e1f1b-9ccd-472e-b604-688b736fc25e"]},{"id":"a374c3e5-8bf3-43af-8772-3e7f64290877","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/v1\/resource1\nhttps:\/\/api.external.com\/resource2"}},"astNodeIds":["348fd54f-6a85-49b5-a08f-347aa2e9bca0","635e1f1b-9ccd-472e-b604-688b736fc25e"]},{"id":"d3887702-aed1-4ae3-aba3-4f73c4589315","text":"the API should handle the GET request successfully","type":"Outcome","astNodeIds":["8a2bb351-122c-445e-803e-20574a396b41","635e1f1b-9ccd-472e-b604-688b736fc25e"]}],"tags":[]}},{"pickle":{"id":"e0eca18c-58a2-4db8-bf8e-22eebb2c01d5","uri":"src\/examples\/features\/streesTestTemplate.feature","astNodeIds":["bca37ef3-061c-49b8-a947-cef8b7dedfd0","bc6685cb-a5c1-48c1-b122-19568a27bfdc"],"name":"I run the k6 script for GET testing with dynamic endpoints","language":"en","steps":[{"id":"6a9dc396-2aa7-459d-88d3-27c65c4e59df","text":"I have a k6 script for GET testing","type":"Context","astNodeIds":["63d3c6e3-ac4c-4063-ba0e-8940c660cec0","bc6685cb-a5c1-48c1-b122-19568a27bfdc"]},{"id":"b88cebc5-db2f-49aa-a0be-1519bbfa548d","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"50"},{"value":"10"},{"value":"rate<0.05"},{"value":"<http_req_duration>"},{"value":"<error_rate>"}]}]}},"astNodeIds":["81cfd430-21e5-4e94-9da7-f9fd94358740","bc6685cb-a5c1-48c1-b122-19568a27bfdc"]},{"id":"023033d5-5a92-41de-81bb-8864cc7c12c6","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/v1\/resource1\nhttps:\/\/api.external.com\/resource2"}},"astNodeIds":["348fd54f-6a85-49b5-a08f-347aa2e9bca0","bc6685cb-a5c1-48c1-b122-19568a27bfdc"]},{"id":"d49a2768-72e7-4a2e-8f58-9812bea766e5","text":"the API should handle the GET request successfully","type":"Outcome","astNodeIds":["8a2bb351-122c-445e-803e-20574a396b41","bc6685cb-a5c1-48c1-b122-19568a27bfdc"]}],"tags":[]}},{"pickle":{"id":"58c198f2-5e01-473d-a1b2-29df293f60d3","uri":"src\/examples\/features\/streesTestTemplate.feature","astNodeIds":["bca37ef3-061c-49b8-a947-cef8b7dedfd0","63f7e6e7-3ef9-4ccc-a827-7595dd10592e"],"name":"I run the k6 script for GET testing with dynamic endpoints","language":"en","steps":[{"id":"f8cbdced-8bbc-40ff-8647-85a8f76864c2","text":"I have a k6 script for GET testing","type":"Context","astNodeIds":["63d3c6e3-ac4c-4063-ba0e-8940c660cec0","63f7e6e7-3ef9-4ccc-a827-7595dd10592e"]},{"id":"f88d4da1-bac1-46ff-8fe2-1e97872409d1","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"100"},{"value":"15"},{"value":"rate<0.10"},{"value":"<http_req_duration>"},{"value":"<error_rate>"}]}]}},"astNodeIds":["81cfd430-21e5-4e94-9da7-f9fd94358740","63f7e6e7-3ef9-4ccc-a827-7595dd10592e"]},{"id":"9a089482-ed14-49f3-81b9-db2aca592711","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/v1\/resource1\nhttps:\/\/api.external.com\/resource2"}},"astNodeIds":["348fd54f-6a85-49b5-a08f-347aa2e9bca0","63f7e6e7-3ef9-4ccc-a827-7595dd10592e"]},{"id":"aea6321f-fdce-4f5b-b8ad-31d256f76787","text":"the API should handle the GET request successfully","type":"Outcome","astNodeIds":["8a2bb351-122c-445e-803e-20574a396b41","63f7e6e7-3ef9-4ccc-a827-7595dd10592e"]}],"tags":[]}},{"pickle":{"id":"07a0c1d2-12bd-42fc-ad26-1bf39a9eef17","uri":"src\/examples\/features\/streesTestTemplate.feature","astNodeIds":["bca37ef3-061c-49b8-a947-cef8b7dedfd0","955e01eb-7af7-40d8-94f3-3de8610f4b69"],"name":"I run the k6 script for GET testing with dynamic endpoints","language":"en","steps":[{"id":"a022da5a-2b7d-4663-8a40-22dafa8e4d86","text":"I have a k6 script for GET testing","type":"Context","astNodeIds":["63d3c6e3-ac4c-4063-ba0e-8940c660cec0","955e01eb-7af7-40d8-94f3-3de8610f4b69"]},{"id":"65852cdd-ec72-42f6-8c8d-23277ddd449a","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"},{"value":"error_rate"}]},{"cells":[{"value":"200"},{"value":"20"},{"value":"rate<0.05"},{"value":"<http_req_duration>"},{"value":"<error_rate>"}]}]}},"astNodeIds":["81cfd430-21e5-4e94-9da7-f9fd94358740","955e01eb-7af7-40d8-94f3-3de8610f4b69"]},{"id":"fe14aca3-0189-41d6-89f3-346ec61ea546","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/v1\/resource1\nhttps:\/\/api.external.com\/resource2"}},"astNodeIds":["348fd54f-6a85-49b5-a08f-347aa2e9bca0","955e01eb-7af7-40d8-94f3-3de8610f4b69"]},{"id":"d7bf316a-a9d7-4b35-b6c6-bc544f4e5f8b","text":"the API should handle the GET request successfully","type":"Outcome","astNodeIds":["8a2bb351-122c-445e-803e-20574a396b41","955e01eb-7af7-40d8-94f3-3de8610f4b69"]}],"tags":[]}},{"pickle":{"id":"2cb7e186-6838-4d28-852d-82087312cfac","uri":"src\/examples\/features\/streesTestTemplate.feature","astNodeIds":["77c1662c-c2eb-401a-a1c5-e0e4e749040e","94838ed3-010a-4f92-a80b-bebef374fee7"],"name":"I run the k6 script for PUT requests","language":"en","steps":[{"id":"0d8f377e-6fda-4efc-ad69-3ae8fd5339e7","text":"I have a k6 script for PUT testing","type":"Context","astNodeIds":["2254b8ec-c800-441b-a1ca-52bf95a334ef","94838ed3-010a-4f92-a80b-bebef374fee7"]},{"id":"4cbcef56-8945-4443-8ba4-0ce4a92c66ab","text":"I run the k6 script with the following configurations:","type":"Action","argument":{"dataTable":{"rows":[{"cells":[{"value":"virtual_users"},{"value":"duration"},{"value":"http_req_failed"},{"value":"http_req_duration"}]},{"cells":[{"value":"20"},{"value":"10"},{"value":"rate<0.05"},{"value":"p(95)<1000"}]}]}},"astNodeIds":["30a8c34a-0f94-4ed6-b244-c1310047edcf","94838ed3-010a-4f92-a80b-bebef374fee7"]},{"id":"aa37d5ae-7b9c-4d24-8dc5-7c30bf5ed0e2","text":"the following endpoint(s) is\/are used:","type":"Action","argument":{"docString":{"content":"\/api\/v1\/update-profile"}},"astNodeIds":["ded1eb50-bd26-4c39-84bf-be594cb80887","94838ed3-010a-4f92-a80b-bebef374fee7"]},{"id":"05a35da6-67ec-4d59-9501-e2c633ad2fa0","text":"the following PUT body is used for \"<endpoint>\"","type":"Action","argument":{"docString":{"content":"{\n \"id\": \"{{userId}}\",\n \"status\": \"updated\"\n}"}},"astNodeIds":["cc2433d2-85ee-4fad-87b9-ba9d68588b57","94838ed3-010a-4f92-a80b-bebef374fee7"]},{"id":"62808bb5-8eef-485e-8940-7e700f707031","text":"the authentication type is \"bearer_token\"","type":"Action","astNodeIds":["a8557123-ad05-431b-aa47-709f410253d4","94838ed3-010a-4f92-a80b-bebef374fee7"]},{"id":"caf33696-dc6f-43c2-a9c4-34835a0e8142","text":"the API should handle the PUT request successfully","type":"Outcome","astNodeIds":["351fbd29-237d-4a51-9610-567aa4105117","94838ed3-010a-4f92-a80b-bebef374fee7"]}],"tags":[]}},{"stepDefinition":{"id":"50708463-86b1-418f-b124-39aa9fc2b244","pattern":{"source":"I have a k6 script for {word} testing","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":21}}}},{"stepDefinition":{"id":"df5487d4-4dbf-48a1-9912-961a5ca185aa","pattern":{"source":"I run the k6 script with the following configurations:","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":25}}}},{"stepDefinition":{"id":"e2c5bf61-8877-4233-9aa6-8b3d166b8177","pattern":{"source":"the request headers are:","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":71}}}},{"stepDefinition":{"id":"6ef87f95-6263-4c14-8424-67997356541e","pattern":{"source":"the following endpoint\\(s) is\\\/are used:","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":83}}}},{"stepDefinition":{"id":"0d7aa392-80e0-46e3-9317-0c523f89957c","pattern":{"source":"the following {word} body is used for {string}","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":90}}}},{"stepDefinition":{"id":"fcef728e-5d7a-49fd-af00-6a5464af9ef1","pattern":{"source":"the authentication type is {string}","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":99}}}},{"stepDefinition":{"id":"9edfa81e-532d-4236-b16e-0fe458fb6faf","pattern":{"source":"the API should handle the {word} request successfully","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":134}}}},{"testRunStarted":{"id":"45b9b7a1-eba5-4df1-8f2e-1e2aaee797df","timestamp":{"seconds":1745763411,"nanos":499000000}}},{"testCase":{"testRunStartedId":"45b9b7a1-eba5-4df1-8f2e-1e2aaee797df","pickleId":"dbc7658a-6636-48fd-a243-d2e8db3b5ea3","id":"40c1ad52-9ec0-4f97-8f07-dcd42a9cd87f","testSteps":[{"id":"8ddedec3-465e-431c-b9c9-ce863b22ebf1","pickleStepId":"cd8526b1-f856-4057-bf9c-ae2d88791fd0","stepDefinitionIds":["50708463-86b1-418f-b124-39aa9fc2b244"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":23,"value":"GET","children":[]},"parameterTypeName":"word"}]}]},{"id":"fb4a1b93-7a40-41eb-ab4e-de9b766e8921","pickleStepId":"dedf390f-cf6e-4f15-8547-a91d4d224cda","stepDefinitionIds":["df5487d4-4dbf-48a1-9912-961a5ca185aa"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"87f5c8f5-ee3b-4e70-b9fd-848c6a3dc8c7","pickleStepId":"5451f38e-395f-41a0-bc57-56077267efd2","stepDefinitionIds":["6ef87f95-6263-4c14-8424-67997356541e"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"4c9ecfeb-31a9-4b20-a4af-9ddce9025ec8","pickleStepId":"ac0bd6ef-65bc-4878-a271-9c662c7c7e1a","stepDefinitionIds":["fcef728e-5d7a-49fd-af00-6a5464af9ef1"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":27,"value":"\"none\"","children":[{"start":28,"value":"none","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"801864e0-9664-4d6c-b447-120ca3cfd1a4","pickleStepId":"b78cc87d-9015-41f1-af58-bd8cbd761a12","stepDefinitionIds":["9edfa81e-532d-4236-b16e-0fe458fb6faf"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":26,"value":"GET","children":[]},"parameterTypeName":"word"}]}]}]}},{"testCase":{"testRunStartedId":"45b9b7a1-eba5-4df1-8f2e-1e2aaee797df","pickleId":"8b5f009c-e976-42c1-8e55-84c2192872cf","id":"27d68193-bc6d-4d6e-b671-ecd69fb5f0ba","testSteps":[{"id":"8d5ed66b-368a-4329-9bfe-8b5214e97738","pickleStepId":"242aefec-9ab0-41dd-b83e-899bf0f98f9b","stepDefinitionIds":["50708463-86b1-418f-b124-39aa9fc2b244"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":23,"value":"GET","children":[]},"parameterTypeName":"word"}]}]},{"id":"46eb081a-35aa-4eba-9574-18ce910c1516","pickleStepId":"05c1d33d-b951-4d02-a5a6-229c13fe4360","stepDefinitionIds":["df5487d4-4dbf-48a1-9912-961a5ca185aa"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"6b2e64b2-6ee5-4e56-beb6-06bc0e24bcdf","pickleStepId":"d2817f09-5ad5-4112-aac4-3ddf85f4f1ee","stepDefinitionIds":["6ef87f95-6263-4c14-8424-67997356541e"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"739dcbdd-6e6e-405c-9075-25eaeaa3785b","pickleStepId":"65d93103-e6fd-449e-9396-9bc5d0d0be27","stepDefinitionIds":["fcef728e-5d7a-49fd-af00-6a5464af9ef1"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":27,"value":"\"none\"","children":[{"start":28,"value":"none","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"ace176b9-0ac4-4201-9c80-d5ca4e5bdb09","pickleStepId":"a7459900-18ad-4203-9bb5-f1af14038393","stepDefinitionIds":["9edfa81e-532d-4236-b16e-0fe458fb6faf"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":26,"value":"GET","children":[]},"parameterTypeName":"word"}]}]}]}},{"testCaseStarted":{"attempt":0,"testCaseId":"40c1ad52-9ec0-4f97-8f07-dcd42a9cd87f","id":"63658124-26fd-4c30-8bc0-50460a715aa1","timestamp":{"seconds":1745763411,"nanos":508000000}}},{"testStepStarted":{"testCaseStartedId":"63658124-26fd-4c30-8bc0-50460a715aa1","testStepId":"8ddedec3-465e-431c-b9c9-ce863b22ebf1","timestamp":{"seconds":1745763411,"nanos":508000000}}},{"testStepFinished":{"testCaseStartedId":"63658124-26fd-4c30-8bc0-50460a715aa1","testStepId":"8ddedec3-465e-431c-b9c9-ce863b22ebf1","testStepResult":{"duration":{"seconds":0,"nanos":676165},"status":"PASSED"},"timestamp":{"seconds":1745763411,"nanos":509000000}}},{"testStepStarted":{"testCaseStartedId":"63658124-26fd-4c30-8bc0-50460a715aa1","testStepId":"fb4a1b93-7a40-41eb-ab4e-de9b766e8921","timestamp":{"seconds":1745763411,"nanos":509000000}}},{"testStepFinished":{"testCaseStartedId":"63658124-26fd-4c30-8bc0-50460a715aa1","testStepId":"fb4a1b93-7a40-41eb-ab4e-de9b766e8921","testStepResult":{"duration":{"seconds":0,"nanos":277249},"status":"PASSED"},"timestamp":{"seconds":1745763411,"nanos":509000000}}},{"testStepStarted":{"testCaseStartedId":"63658124-26fd-4c30-8bc0-50460a715aa1","testStepId":"87f5c8f5-ee3b-4e70-b9fd-848c6a3dc8c7","timestamp":{"seconds":1745763411,"nanos":509000000}}},{"testStepFinished":{"testCaseStartedId":"63658124-26fd-4c30-8bc0-50460a715aa1","testStepId":"87f5c8f5-ee3b-4e70-b9fd-848c6a3dc8c7","testStepResult":{"duration":{"seconds":0,"nanos":52750},"status":"PASSED"},"timestamp":{"seconds":1745763411,"nanos":510000000}}},{"testStepStarted":{"testCaseStartedId":"63658124-26fd-4c30-8bc0-50460a715aa1","testStepId":"4c9ecfeb-31a9-4b20-a4af-9ddce9025ec8","timestamp":{"seconds":1745763411,"nanos":510000000}}},{"testStepFinished":{"testCaseStartedId":"63658124-26fd-4c30-8bc0-50460a715aa1","testStepId":"4c9ecfeb-31a9-4b20-a4af-9ddce9025ec8","testStepResult":{"duration":{"seconds":0,"nanos":86542},"status":"PASSED"},"timestamp":{"seconds":1745763411,"nanos":510000000}}},{"testStepStarted":{"testCaseStartedId":"63658124-26fd-4c30-8bc0-50460a715aa1","testStepId":"801864e0-9664-4d6c-b447-120ca3cfd1a4","timestamp":{"seconds":1745763411,"nanos":510000000}}},{"testStepFinished":{"testCaseStartedId":"63658124-26fd-4c30-8bc0-50460a715aa1","testStepId":"801864e0-9664-4d6c-b447-120ca3cfd1a4","testStepResult":{"duration":{"seconds":0,"nanos":101674709},"status":"FAILED","message":"Error: k6 test execution failed\n at CustomWorld.<anonymous> (\/Users\/paschal\/personal\/k6-cucumber-steps\/step_definitions\/load_test_steps.js:154:13)\n at processTicksAndRejections (node:internal\/process\/task_queues:105:5)","exception":{"type":"Error","message":"k6 test execution failed","stackTrace":" at CustomWorld.<anonymous> (\/Users\/paschal\/personal\/k6-cucumber-steps\/step_definitions\/load_test_steps.js:154:13)\n at processTicksAndRejections (node:internal\/process\/task_queues:105:5)"}},"timestamp":{"seconds":1745763411,"nanos":617000000}}},{"testCaseFinished":{"testCaseStartedId":"63658124-26fd-4c30-8bc0-50460a715aa1","timestamp":{"seconds":1745763411,"nanos":617000000},"willBeRetried":false}},{"testCaseStarted":{"attempt":0,"testCaseId":"27d68193-bc6d-4d6e-b671-ecd69fb5f0ba","id":"d65da717-d914-4340-97e6-2724da924356","timestamp":{"seconds":1745763411,"nanos":617000000}}},{"testStepStarted":{"testCaseStartedId":"d65da717-d914-4340-97e6-2724da924356","testStepId":"8d5ed66b-368a-4329-9bfe-8b5214e97738","timestamp":{"seconds":1745763411,"nanos":617000000}}},{"testStepFinished":{"testCaseStartedId":"d65da717-d914-4340-97e6-2724da924356","testStepId":"8d5ed66b-368a-4329-9bfe-8b5214e97738","testStepResult":{"duration":{"seconds":0,"nanos":56459},"status":"PASSED"},"timestamp":{"seconds":1745763411,"nanos":617000000}}},{"testStepStarted":{"testCaseStartedId":"d65da717-d914-4340-97e6-2724da924356","testStepId":"46eb081a-35aa-4eba-9574-18ce910c1516","timestamp":{"seconds":1745763411,"nanos":617000000}}},{"testStepFinished":{"testCaseStartedId":"d65da717-d914-4340-97e6-2724da924356","testStepId":"46eb081a-35aa-4eba-9574-18ce910c1516","testStepResult":{"duration":{"seconds":0,"nanos":42250},"status":"PASSED"},"timestamp":{"seconds":1745763411,"nanos":617000000}}},{"testStepStarted":{"testCaseStartedId":"d65da717-d914-4340-97e6-2724da924356","testStepId":"6b2e64b2-6ee5-4e56-beb6-06bc0e24bcdf","timestamp":{"seconds":1745763411,"nanos":617000000}}},{"testStepFinished":{"testCaseStartedId":"d65da717-d914-4340-97e6-2724da924356","testStepId":"6b2e64b2-6ee5-4e56-beb6-06bc0e24bcdf","testStepResult":{"duration":{"seconds":0,"nanos":24791},"status":"PASSED"},"timestamp":{"seconds":1745763411,"nanos":618000000}}},{"testStepStarted":{"testCaseStartedId":"d65da717-d914-4340-97e6-2724da924356","testStepId":"739dcbdd-6e6e-405c-9075-25eaeaa3785b","timestamp":{"seconds":1745763411,"nanos":618000000}}},{"testStepFinished":{"testCaseStartedId":"d65da717-d914-4340-97e6-2724da924356","testStepId":"739dcbdd-6e6e-405c-9075-25eaeaa3785b","testStepResult":{"duration":{"seconds":0,"nanos":120874},"status":"PASSED"},"timestamp":{"seconds":1745763411,"nanos":618000000}}},{"testStepStarted":{"testCaseStartedId":"d65da717-d914-4340-97e6-2724da924356","testStepId":"ace176b9-0ac4-4201-9c80-d5ca4e5bdb09","timestamp":{"seconds":1745763411,"nanos":618000000}}},{"testStepFinished":{"testCaseStartedId":"d65da717-d914-4340-97e6-2724da924356","testStepId":"ace176b9-0ac4-4201-9c80-d5ca4e5bdb09","testStepResult":{"duration":{"seconds":0,"nanos":27540708},"status":"FAILED","message":"Error: k6 test execution failed\n at CustomWorld.<anonymous> (\/Users\/paschal\/personal\/k6-cucumber-steps\/step_definitions\/load_test_steps.js:154:13)\n at processTicksAndRejections (node:internal\/process\/task_queues:105:5)","exception":{"type":"Error","message":"k6 test execution failed","stackTrace":" at CustomWorld.<anonymous> (\/Users\/paschal\/personal\/k6-cucumber-steps\/step_definitions\/load_test_steps.js:154:13)\n at processTicksAndRejections (node:internal\/process\/task_queues:105:5)"}},"timestamp":{"seconds":1745763411,"nanos":646000000}}},{"testCaseFinished":{"testCaseStartedId":"d65da717-d914-4340-97e6-2724da924356","timestamp":{"seconds":1745763411,"nanos":646000000},"willBeRetried":false}},{"testRunFinished":{"testRunStartedId":"45b9b7a1-eba5-4df1-8f2e-1e2aaee797df","timestamp":{"seconds":1745763411,"nanos":646000000},"success":false}}];
44
44
  </script>
45
45
  <script>
46
46
  /*! For license information please see main.js.LICENSE.txt */
@@ -19,7 +19,7 @@
19
19
  },
20
20
  "result": {
21
21
  "status": "passed",
22
- "duration": 525166
22
+ "duration": 676165
23
23
  }
24
24
  },
25
25
  {
@@ -55,13 +55,13 @@
55
55
  },
56
56
  "result": {
57
57
  "status": "passed",
58
- "duration": 228541
58
+ "duration": 277249
59
59
  }
60
60
  },
61
61
  {
62
62
  "arguments": [
63
63
  {
64
- "content": "/api/users?page=2\nhttps://simple-books-api.glitch.me/books",
64
+ "content": "/get?foo1=bar1&foo2=bar2\nhttps://postman-echo.com/get?foo1=bar1&foo2=bar2",
65
65
  "line": 38
66
66
  }
67
67
  ],
@@ -73,7 +73,7 @@
73
73
  },
74
74
  "result": {
75
75
  "status": "passed",
76
- "duration": 48999
76
+ "duration": 52750
77
77
  }
78
78
  },
79
79
  {
@@ -86,7 +86,7 @@
86
86
  },
87
87
  "result": {
88
88
  "status": "passed",
89
- "duration": 78249
89
+ "duration": 86542
90
90
  }
91
91
  },
92
92
  {
@@ -98,8 +98,9 @@
98
98
  "location": "step_definitions/load_test_steps.js:134"
99
99
  },
100
100
  "result": {
101
- "status": "passed",
102
- "duration": 5869350583
101
+ "status": "failed",
102
+ "duration": 101674709,
103
+ "error_message": "Error: k6 test execution failed\n at CustomWorld.<anonymous> (/Users/paschal/personal/k6-cucumber-steps/step_definitions/load_test_steps.js:154:13)\n at processTicksAndRejections (node:internal/process/task_queues:105:5)"
103
104
  }
104
105
  }
105
106
  ],
@@ -128,7 +129,7 @@
128
129
  },
129
130
  "result": {
130
131
  "status": "passed",
131
- "duration": 70459
132
+ "duration": 56459
132
133
  }
133
134
  },
134
135
  {
@@ -164,13 +165,13 @@
164
165
  },
165
166
  "result": {
166
167
  "status": "passed",
167
- "duration": 51750
168
+ "duration": 42250
168
169
  }
169
170
  },
170
171
  {
171
172
  "arguments": [
172
173
  {
173
- "content": "/api/users?page=2\nhttps://simple-books-api.glitch.me/books",
174
+ "content": "/get?foo1=bar1&foo2=bar2\nhttps://postman-echo.com/get?foo1=bar1&foo2=bar2",
174
175
  "line": 38
175
176
  }
176
177
  ],
@@ -182,7 +183,7 @@
182
183
  },
183
184
  "result": {
184
185
  "status": "passed",
185
- "duration": 29375
186
+ "duration": 24791
186
187
  }
187
188
  },
188
189
  {
@@ -195,7 +196,7 @@
195
196
  },
196
197
  "result": {
197
198
  "status": "passed",
198
- "duration": 106124
199
+ "duration": 120874
199
200
  }
200
201
  },
201
202
  {
@@ -207,8 +208,9 @@
207
208
  "location": "step_definitions/load_test_steps.js:134"
208
209
  },
209
210
  "result": {
210
- "status": "passed",
211
- "duration": 11204749374
211
+ "status": "failed",
212
+ "duration": 27540708,
213
+ "error_message": "Error: k6 test execution failed\n at CustomWorld.<anonymous> (/Users/paschal/personal/k6-cucumber-steps/step_definitions/load_test_steps.js:154:13)\n at processTicksAndRejections (node:internal/process/task_queues:105:5)"
212
214
  }
213
215
  }
214
216
  ],
@@ -345,7 +345,7 @@ pre {
345
345
  <div class="project-name visible-md visible-lg">k6-cucumber-steps</div>
346
346
  <div class="label-container">
347
347
  <div class="generated-on">
348
- Sat Apr 26 2025 12:26:43 GMT+0100 (West Africa Standard Time)
348
+ Sun Apr 27 2025 15:16:51 GMT+0100 (West Africa Standard Time)
349
349
  </div>
350
350
  </div>
351
351
  </div>
@@ -397,50 +397,6 @@ pre {
397
397
  </div>
398
398
 
399
399
 
400
- <div class="panel panel-default">
401
- <div class="panel-heading open">
402
- <h4 class="panel-title">
403
- <a data-toggle="collapse" href="#logOutput">
404
- <i class="glyphicon glyphicon-chevron-right"></i>
405
- <i class="glyphicon glyphicon-chevron-down"></i>
406
- <b>Metadata</b>
407
- </a>
408
- </h4>
409
- </div>
410
- <div id="logOutput" class="panel-collapse collapse in">
411
- <div class="panel-body">
412
- <div class="row">
413
-
414
-
415
-
416
-
417
- <div class="clearfix metadata col-xs-12 col-sm-6 col-md-6 col-lg-6">
418
- <div class=pull-left>
419
- <strong> browser: </strong>[object Object]
420
- </div>
421
- </div>
422
-
423
-
424
-
425
- <div class="clearfix metadata col-xs-12 col-sm-6 col-md-6 col-lg-6">
426
- <div class=pull-right-lg>
427
- <strong> device: </strong>Local test machine
428
- </div>
429
- </div>
430
-
431
-
432
-
433
- <div class="clearfix metadata col-xs-12 col-sm-6 col-md-6 col-lg-6">
434
- <div class=pull-left>
435
- <strong> platform: </strong>[object Object]
436
- </div>
437
- </div>
438
-
439
- </div>
440
- </div>
441
- </div>
442
- </div>
443
-
444
400
 
445
401
 
446
402
 
@@ -458,7 +414,7 @@ pre {
458
414
  <div class="tags">
459
415
  </div>
460
416
 
461
- <a data-toggle="collapse" href="#collapseFeaturek6_cucumber_steps132c5544-4930-42fd-be53-41969e474b42">
417
+ <a data-toggle="collapse" href="#collapseFeaturek6_cucumber_steps8d55ad41-25d0-413a-933f-4c4468a9a5af">
462
418
  <i class="glyphicon glyphicon-chevron-right"></i>
463
419
  <i class="glyphicon glyphicon-chevron-down"></i>
464
420
  <b>Feature:</b>Run load tests with dynamic GET and POST body from environment variables and JSON files
@@ -474,7 +430,7 @@ pre {
474
430
  </a>
475
431
  </h4>
476
432
  </div>
477
- <div id="collapseFeaturek6_cucumber_steps132c5544-4930-42fd-be53-41969e474b42" class="panel-collapse collapse">
433
+ <div id="collapseFeaturek6_cucumber_steps8d55ad41-25d0-413a-933f-4c4468a9a5af" class="panel-collapse collapse">
478
434
  <div class="panel-body">
479
435
 
480
436
 
@@ -488,7 +444,7 @@ pre {
488
444
 
489
445
  </div>
490
446
 
491
- <a data-toggle="collapse" href="#collapseScenariok6_cucumber_stepsecc18de5-ed0b-43a1-8db2-5c17c1b38b90">
447
+ <a data-toggle="collapse" href="#collapseScenariok6_cucumber_steps69d25417-c242-4a12-aa39-f0109365cd2d">
492
448
  <div>
493
449
 
494
450
  <div style="padding-right: 30px">
@@ -513,7 +469,7 @@ pre {
513
469
  </a>
514
470
  </h4>
515
471
  </div>
516
- <div id="collapseScenariok6_cucumber_stepsecc18de5-ed0b-43a1-8db2-5c17c1b38b90"
472
+ <div id="collapseScenariok6_cucumber_steps69d25417-c242-4a12-aa39-f0109365cd2d"
517
473
  class="panel-collapse collapse">
518
474
  <div class="panel-body">
519
475
  <div></div>
@@ -677,8 +633,8 @@ pre {
677
633
 
678
634
 
679
635
 
680
- <pre class=info><br>/api/profile
681
- https://reqres.in/api/users?page=2</pre>
636
+ <pre class=info><br>/api/users?page=2
637
+ https://simple-books-api.glitch.me/books</pre>
682
638
 
683
639
 
684
640
 
@@ -753,7 +709,7 @@ https://reqres.in/api/users?page=2</pre>
753
709
 
754
710
 
755
711
  <span class="step-duration">
756
- 6s 265ms
712
+ 5s 869ms
757
713
  </span>
758
714
 
759
715
 
@@ -790,7 +746,7 @@ https://reqres.in/api/users?page=2</pre>
790
746
 
791
747
  </div>
792
748
 
793
- <a data-toggle="collapse" href="#collapseScenariok6_cucumber_steps09f8db0f-0a2d-4c79-802c-7f6ebb119dc5">
749
+ <a data-toggle="collapse" href="#collapseScenariok6_cucumber_stepsc0477b14-0f60-4570-997e-e11d79c91de0">
794
750
  <div>
795
751
 
796
752
  <div style="padding-right: 30px">
@@ -815,7 +771,7 @@ https://reqres.in/api/users?page=2</pre>
815
771
  </a>
816
772
  </h4>
817
773
  </div>
818
- <div id="collapseScenariok6_cucumber_steps09f8db0f-0a2d-4c79-802c-7f6ebb119dc5"
774
+ <div id="collapseScenariok6_cucumber_stepsc0477b14-0f60-4570-997e-e11d79c91de0"
819
775
  class="panel-collapse collapse">
820
776
  <div class="panel-body">
821
777
  <div></div>
@@ -979,8 +935,8 @@ https://reqres.in/api/users?page=2</pre>
979
935
 
980
936
 
981
937
 
982
- <pre class=info><br>/api/profile
983
- https://reqres.in/api/users?page=2</pre>
938
+ <pre class=info><br>/api/users?page=2
939
+ https://simple-books-api.glitch.me/books</pre>
984
940
 
985
941
 
986
942
 
@@ -1055,7 +1011,7 @@ https://reqres.in/api/users?page=2</pre>
1055
1011
 
1056
1012
 
1057
1013
  <span class="step-duration">
1058
- 11s 848ms
1014
+ 11s 204ms
1059
1015
  </span>
1060
1016
 
1061
1017
 
@@ -100,37 +100,6 @@ When("the authentication type is {string}", function (authType) {
100
100
  this.config.headers = generateHeaders(authType, process.env);
101
101
  });
102
102
 
103
- // Then(
104
- // "the API should handle the {word} request successfully",
105
- // { timeout: 60000 }, // Increase timeout to 60 seconds
106
- // async function (method) {
107
- // // Normalize both values to uppercase for comparison
108
- // const expectedMethod = method.toUpperCase();
109
- // const actualMethod = this.config.method.toUpperCase();
110
-
111
- // if (actualMethod !== expectedMethod) {
112
- // throw new Error(
113
- // `Mismatched HTTP method: expected "${expectedMethod}", got "${actualMethod}"`
114
- // );
115
- // }
116
-
117
- // try {
118
- // // Generate the k6 script content
119
- // const scriptContent = buildK6Script(this.config);
120
-
121
- // // Generate the temporary k6 script file
122
- // const scriptPath = generateK6Script(scriptContent);
123
-
124
- // // Run the k6 script and capture the output
125
- // const stdout = await runK6Script(scriptPath);
126
- // } catch (error) {
127
- // console.error("k6 execution failed:", error.message);
128
- // console.error("k6 stderr:", error.stderr); // Log stderr for debugging
129
- // throw new Error("k6 test execution failed");
130
- // }
131
- // }
132
- // );
133
-
134
103
  Then(
135
104
  "the API should handle the {word} request successfully",
136
105
  { timeout: 60000 },
@@ -147,12 +116,11 @@ Then(
147
116
  }
148
117
  try {
149
118
  const scriptContent = buildK6Script(this.config);
150
- const scriptPath = generateK6Script(scriptContent);
119
+ const scriptPath = await generateK6Script(scriptContent);
151
120
  const stdout = await runK6Script(scriptPath);
152
121
  } catch (error) {
153
122
  console.error("k6 execution failed:", error.message);
154
123
  throw new Error("k6 test execution failed");
155
124
  }
156
- console.log("Final configuration before k6 execution:", this.config);
157
125
  }
158
126
  );
@@ -0,0 +1,44 @@
1
+
2
+ import http from 'k6/http';
3
+ import { check } from 'k6';
4
+
5
+ export const options = {
6
+ "vus": 10,
7
+ "duration": "5s",
8
+ "thresholds": {
9
+ "http_req_failed": [
10
+ "rate<0.05"
11
+ ],
12
+ "http_req_duration": [
13
+ "p(95)<3000"
14
+ ]
15
+ }
16
+ };
17
+
18
+ export default function () {
19
+
20
+ const resolvedUrl0 = "https://postman-echo.com/get?foo1=bar1&foo2=bar2";
21
+ const res0 = http.request("GET", resolvedUrl0, null, {
22
+ headers: {
23
+ "Content-Type": "application/json"
24
+ }
25
+ });
26
+ console.log(`Response Body for ${resolvedUrl0}: ${res0.body}`);
27
+ check(res0, {
28
+ "status is 2xx": (r) => r.status >= 200 && r.status < 300
29
+ });
30
+
31
+
32
+ const resolvedUrl1 = "https://postman-echo.com/get?foo1=bar1&foo2=bar2";
33
+ const res1 = http.request("GET", resolvedUrl1, null, {
34
+ headers: {
35
+ "Content-Type": "application/json"
36
+ }
37
+ });
38
+ console.log(`Response Body for ${resolvedUrl1}: ${res1.body}`);
39
+ check(res1, {
40
+ "status is 2xx": (r) => r.status >= 200 && r.status < 300
41
+ });
42
+
43
+ }
44
+
@@ -0,0 +1,44 @@
1
+
2
+ import http from 'k6/http';
3
+ import { check } from 'k6';
4
+
5
+ export const options = {
6
+ "vus": 50,
7
+ "duration": "10s",
8
+ "thresholds": {
9
+ "http_req_failed": [
10
+ "rate<0.05"
11
+ ],
12
+ "http_req_duration": [
13
+ "p(95)<3000"
14
+ ]
15
+ }
16
+ };
17
+
18
+ export default function () {
19
+
20
+ const resolvedUrl0 = "https://postman-echo.com/get?foo1=bar1&foo2=bar2";
21
+ const res0 = http.request("GET", resolvedUrl0, null, {
22
+ headers: {
23
+ "Content-Type": "application/json"
24
+ }
25
+ });
26
+ console.log(`Response Body for ${resolvedUrl0}: ${res0.body}`);
27
+ check(res0, {
28
+ "status is 2xx": (r) => r.status >= 200 && r.status < 300
29
+ });
30
+
31
+
32
+ const resolvedUrl1 = "https://postman-echo.com/get?foo1=bar1&foo2=bar2";
33
+ const res1 = http.request("GET", resolvedUrl1, null, {
34
+ headers: {
35
+ "Content-Type": "application/json"
36
+ }
37
+ });
38
+ console.log(`Response Body for ${resolvedUrl1}: ${res1.body}`);
39
+ check(res1, {
40
+ "status is 2xx": (r) => r.status >= 200 && r.status < 300
41
+ });
42
+
43
+ }
44
+