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 +1 -1
- package/bin/k6-cucumber-runner.js +18 -9
- package/cucumber.js +11 -24
- package/lib/helpers/buildK6Script.js +0 -29
- package/lib/index.js +1 -1
- package/lib/utils/k6Runner.js +70 -54
- package/package.json +2 -1
- package/reports/load-results.html +1 -1
- package/reports/load-results.json +16 -14
- package/reports/report.html +13 -57
- package/step_definitions/load_test_steps.js +1 -33
- package/temp/load_script_2a96242d-8924-468d-a0f1-3f9555b4eef1.js +44 -0
- package/temp/load_script_e2119cce-eeb0-4b11-82e1-12f6827d6a82.js +44 -0
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://
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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 "
|
|
4
|
+
export * from "../lib/helpers/resolveBody";
|
|
5
5
|
export * from "../lib/utils/k6Runner";
|
package/lib/utils/k6Runner.js
CHANGED
|
@@ -1,71 +1,87 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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 -
|
|
10
|
-
* @returns {string} -
|
|
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
|
-
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
fs.
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
*
|
|
24
|
-
* @param {
|
|
25
|
-
* @returns {Promise<
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
33
|
-
|
|
40
|
+
// Custom logo with version information
|
|
41
|
+
const customLogo = `${chalkGreen} with @qaPaschalE's ${chalkYellow}k6-cucumber-steps v${packageJson.version}${resetColor}`;
|
|
34
42
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
console.
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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.
|
|
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":
|
|
22
|
+
"duration": 676165
|
|
23
23
|
}
|
|
24
24
|
},
|
|
25
25
|
{
|
|
@@ -55,13 +55,13 @@
|
|
|
55
55
|
},
|
|
56
56
|
"result": {
|
|
57
57
|
"status": "passed",
|
|
58
|
-
"duration":
|
|
58
|
+
"duration": 277249
|
|
59
59
|
}
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
"arguments": [
|
|
63
63
|
{
|
|
64
|
-
"content": "/
|
|
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":
|
|
76
|
+
"duration": 52750
|
|
77
77
|
}
|
|
78
78
|
},
|
|
79
79
|
{
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
},
|
|
87
87
|
"result": {
|
|
88
88
|
"status": "passed",
|
|
89
|
-
"duration":
|
|
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": "
|
|
102
|
-
"duration":
|
|
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":
|
|
132
|
+
"duration": 56459
|
|
132
133
|
}
|
|
133
134
|
},
|
|
134
135
|
{
|
|
@@ -164,13 +165,13 @@
|
|
|
164
165
|
},
|
|
165
166
|
"result": {
|
|
166
167
|
"status": "passed",
|
|
167
|
-
"duration":
|
|
168
|
+
"duration": 42250
|
|
168
169
|
}
|
|
169
170
|
},
|
|
170
171
|
{
|
|
171
172
|
"arguments": [
|
|
172
173
|
{
|
|
173
|
-
"content": "/
|
|
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":
|
|
186
|
+
"duration": 24791
|
|
186
187
|
}
|
|
187
188
|
},
|
|
188
189
|
{
|
|
@@ -195,7 +196,7 @@
|
|
|
195
196
|
},
|
|
196
197
|
"result": {
|
|
197
198
|
"status": "passed",
|
|
198
|
-
"duration":
|
|
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": "
|
|
211
|
-
"duration":
|
|
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
|
],
|
package/reports/report.html
CHANGED
|
@@ -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
|
-
|
|
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="#
|
|
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="
|
|
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="#
|
|
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="
|
|
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/
|
|
681
|
-
https://
|
|
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
|
-
|
|
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="#
|
|
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="
|
|
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/
|
|
983
|
-
https://
|
|
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
|
|
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
|
+
|