k6-cucumber-steps 1.1.2 → 1.1.4
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/.vscode/settings.json +2 -1
- package/bin/k6-cucumber-steps.js +45 -30
- package/cucumber.js +1 -1
- package/package.json +15 -19
- package/reports/cucumber-report.html +1 -1
- package/reports/load-report.json +84 -73
- package/scripts/linkReports.js +38 -91
- package/temp/load_script_6ae38e6d-f93e-443a-a516-587047b1f46b.js +65 -0
- package/reports/k6-report-2025-06-03T12-54-18-512Z.html +0 -582
- package/reports/k6-report-2025-06-03T12-54-33-806Z.html +0 -582
package/.vscode/settings.json
CHANGED
package/bin/k6-cucumber-steps.js
CHANGED
|
@@ -3,11 +3,9 @@
|
|
|
3
3
|
const path = require("path");
|
|
4
4
|
const fs = require("fs");
|
|
5
5
|
const { spawn } = require("child_process");
|
|
6
|
-
const yargs = require("yargs/yargs");
|
|
7
|
-
const { hideBin } = require("yargs/helpers");
|
|
6
|
+
const yargs = require("yargs/yargs");
|
|
7
|
+
const { hideBin } = require("yargs/helpers");
|
|
8
8
|
require("dotenv").config();
|
|
9
|
-
const { generateHtmlReports } = require("../scripts/generateHtmlReports");
|
|
10
|
-
const { linkReports } = require("../scripts/linkReports");
|
|
11
9
|
|
|
12
10
|
console.log(`
|
|
13
11
|
-----------------------------------------
|
|
@@ -15,6 +13,7 @@ console.log(`
|
|
|
15
13
|
-----------------------------------------
|
|
16
14
|
`);
|
|
17
15
|
|
|
16
|
+
// Parse CLI arguments
|
|
18
17
|
const argv = yargs(hideBin(process.argv))
|
|
19
18
|
.usage("Usage: $0 run [options]")
|
|
20
19
|
.option("feature", {
|
|
@@ -24,7 +23,7 @@ const argv = yargs(hideBin(process.argv))
|
|
|
24
23
|
})
|
|
25
24
|
.option("tags", {
|
|
26
25
|
alias: "t",
|
|
27
|
-
describe: "Cucumber tags to filter scenarios",
|
|
26
|
+
describe: "Cucumber tags to filter scenarios (e.g., @smoke)",
|
|
28
27
|
type: "string",
|
|
29
28
|
})
|
|
30
29
|
.option("reporter", {
|
|
@@ -46,8 +45,10 @@ const argv = yargs(hideBin(process.argv))
|
|
|
46
45
|
})
|
|
47
46
|
.help().argv;
|
|
48
47
|
|
|
48
|
+
// Base Cucumber arguments
|
|
49
49
|
const cucumberArgs = ["cucumber-js"];
|
|
50
50
|
|
|
51
|
+
// Load custom configuration file if provided
|
|
51
52
|
const configFileName =
|
|
52
53
|
argv.configFile || process.env.CUCUMBER_CONFIG_FILE || "cucumber.js";
|
|
53
54
|
const configFilePath = path.resolve(process.cwd(), configFileName);
|
|
@@ -58,8 +59,8 @@ if (fs.existsSync(configFilePath)) {
|
|
|
58
59
|
try {
|
|
59
60
|
const loadedConfig = require(configFilePath);
|
|
60
61
|
configOptions = loadedConfig.default || loadedConfig;
|
|
61
|
-
} catch {
|
|
62
|
-
console.warn("⚠️
|
|
62
|
+
} catch (err) {
|
|
63
|
+
console.warn("⚠️ Could not load config file:", err.message);
|
|
63
64
|
}
|
|
64
65
|
}
|
|
65
66
|
|
|
@@ -69,18 +70,18 @@ if (tags) {
|
|
|
69
70
|
cucumberArgs.push("--tags", tags);
|
|
70
71
|
}
|
|
71
72
|
|
|
72
|
-
// Feature
|
|
73
|
+
// Feature file(s)
|
|
73
74
|
let featureFiles = [];
|
|
74
75
|
if (argv.feature) {
|
|
75
76
|
featureFiles.push(path.resolve(argv.feature));
|
|
76
77
|
} else if (configOptions.paths && configOptions.paths.length > 0) {
|
|
77
|
-
featureFiles.push(...configOptions.paths);
|
|
78
|
+
featureFiles.push(...configOptions.paths.map((p) => path.resolve(p)));
|
|
78
79
|
}
|
|
79
80
|
if (featureFiles.length > 0) {
|
|
80
81
|
cucumberArgs.push(...featureFiles);
|
|
81
82
|
}
|
|
82
83
|
|
|
83
|
-
// Require
|
|
84
|
+
// Require step definitions
|
|
84
85
|
const defaultStepsPath = path.resolve(
|
|
85
86
|
process.cwd(),
|
|
86
87
|
"node_modules",
|
|
@@ -89,15 +90,17 @@ const defaultStepsPath = path.resolve(
|
|
|
89
90
|
);
|
|
90
91
|
cucumberArgs.push("--require", defaultStepsPath);
|
|
91
92
|
|
|
92
|
-
//
|
|
93
|
+
// Include additional custom step definitions from config
|
|
93
94
|
if (configOptions.require && Array.isArray(configOptions.require)) {
|
|
94
95
|
for (const reqPath of configOptions.require) {
|
|
95
|
-
cucumberArgs.push("--require", reqPath);
|
|
96
|
+
cucumberArgs.push("--require", path.resolve(reqPath));
|
|
96
97
|
}
|
|
97
98
|
}
|
|
98
99
|
|
|
99
|
-
//
|
|
100
|
+
// Reports directory setup
|
|
100
101
|
const reportsDir = path.join(process.cwd(), "reports");
|
|
102
|
+
|
|
103
|
+
// Clean and prepare reports directory
|
|
101
104
|
const cleanReportsDir = () => {
|
|
102
105
|
if (fs.existsSync(reportsDir)) {
|
|
103
106
|
try {
|
|
@@ -120,6 +123,7 @@ const cleanReportsDir = () => {
|
|
|
120
123
|
|
|
121
124
|
cleanReportsDir();
|
|
122
125
|
|
|
126
|
+
// Determine base report name
|
|
123
127
|
const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
124
128
|
|
|
125
129
|
let baseReportName = "load-report";
|
|
@@ -136,10 +140,15 @@ const shouldOverwrite =
|
|
|
136
140
|
process.env.K6_CUCUMBER_OVERWRITE === "true" ||
|
|
137
141
|
configOptions.overwrite === true;
|
|
138
142
|
|
|
139
|
-
let reportJsonPath =
|
|
143
|
+
let reportJsonPath = path.join(reportsDir, `${baseReportName}.json`);
|
|
140
144
|
let reportHtmlPath = path.join(reportsDir, `${baseReportName}.html`);
|
|
141
145
|
|
|
142
|
-
|
|
146
|
+
if (!shouldOverwrite) {
|
|
147
|
+
reportJsonPath = path.join(reportsDir, `${baseReportName}-${timestamp}.json`);
|
|
148
|
+
reportHtmlPath = path.join(reportsDir, `${baseReportName}-${timestamp}.html`);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Respect config format path if defined
|
|
143
152
|
if (Array.isArray(configOptions.format)) {
|
|
144
153
|
const jsonFmt = configOptions.format.find((f) => f.startsWith("json:"));
|
|
145
154
|
if (jsonFmt) {
|
|
@@ -152,8 +161,7 @@ const formatInConfig =
|
|
|
152
161
|
Array.isArray(configOptions.format) && configOptions.format.length > 0;
|
|
153
162
|
|
|
154
163
|
if (shouldGenerateReports && !formatInConfig) {
|
|
155
|
-
|
|
156
|
-
cucumberArgs.push("--format", `summary`);
|
|
164
|
+
cucumberArgs.push("--format", "summary");
|
|
157
165
|
cucumberArgs.push("--format", `json:${reportJsonPath}`);
|
|
158
166
|
cucumberArgs.push("--format", `html:${reportHtmlPath}`);
|
|
159
167
|
}
|
|
@@ -161,6 +169,7 @@ if (shouldGenerateReports && !formatInConfig) {
|
|
|
161
169
|
console.log("\n▶️ Final arguments passed to cucumber-js:");
|
|
162
170
|
console.log(["npx", ...cucumberArgs].join(" ") + "\n");
|
|
163
171
|
|
|
172
|
+
// Execute Cucumber process
|
|
164
173
|
const cucumberProcess = spawn("npx", cucumberArgs, {
|
|
165
174
|
stdio: "inherit",
|
|
166
175
|
env: {
|
|
@@ -174,9 +183,6 @@ const cucumberProcess = spawn("npx", cucumberArgs, {
|
|
|
174
183
|
});
|
|
175
184
|
|
|
176
185
|
function detectMostRecentK6Report() {
|
|
177
|
-
const reportsDir = path.join(process.cwd(), "reports");
|
|
178
|
-
if (!fs.existsSync(reportsDir)) return null;
|
|
179
|
-
|
|
180
186
|
const files = fs
|
|
181
187
|
.readdirSync(reportsDir)
|
|
182
188
|
.filter((file) => /^k6-report.*\.html$/.test(file))
|
|
@@ -186,7 +192,7 @@ function detectMostRecentK6Report() {
|
|
|
186
192
|
}))
|
|
187
193
|
.sort((a, b) => b.time - a.time);
|
|
188
194
|
|
|
189
|
-
return files.length > 0 ? path.join(
|
|
195
|
+
return files.length > 0 ? path.join(reportsDir, files[0].name) : null;
|
|
190
196
|
}
|
|
191
197
|
|
|
192
198
|
cucumberProcess.on("close", async (code) => {
|
|
@@ -194,17 +200,26 @@ cucumberProcess.on("close", async (code) => {
|
|
|
194
200
|
console.log("-----------------------------------------");
|
|
195
201
|
console.log("✅ k6-cucumber-steps execution completed successfully.");
|
|
196
202
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
203
|
+
// Generate Cucumber HTML report
|
|
204
|
+
try {
|
|
205
|
+
await generateHtmlReports();
|
|
206
|
+
console.log(
|
|
207
|
+
`🚀 Cucumber HTML report generated successfully at: ${reportHtmlPath}`
|
|
208
|
+
);
|
|
209
|
+
} catch (err) {
|
|
210
|
+
console.error("⚠️ Failed to generate Cucumber HTML report:", err.message);
|
|
211
|
+
}
|
|
202
212
|
|
|
203
|
-
|
|
213
|
+
// Link reports
|
|
214
|
+
try {
|
|
215
|
+
await linkReports();
|
|
216
|
+
console.log(
|
|
217
|
+
"🔗 Combined and minified HTML report available at: reports/combined-report.html"
|
|
218
|
+
);
|
|
219
|
+
} catch (err) {
|
|
220
|
+
console.error("⚠️ Failed to link reports:", err.message);
|
|
221
|
+
}
|
|
204
222
|
|
|
205
|
-
console.log(
|
|
206
|
-
"📦 Combined and minified HTML report available at: reports/combined-report.html"
|
|
207
|
-
);
|
|
208
223
|
console.log("-----------------------------------------");
|
|
209
224
|
} else {
|
|
210
225
|
console.error("-----------------------------------------");
|
package/cucumber.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "k6-cucumber-steps",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.4",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -49,26 +49,22 @@
|
|
|
49
49
|
},
|
|
50
50
|
"author": "qaPaschalE",
|
|
51
51
|
"description": "Cucumber step definitions for running k6 performance tests.",
|
|
52
|
+
"peerDependencies": {
|
|
53
|
+
"@cucumber/cucumber": "*",
|
|
54
|
+
"k6": "*"
|
|
55
|
+
},
|
|
52
56
|
"devDependencies": {
|
|
53
|
-
"@babel/cli": "
|
|
54
|
-
"@babel/core": "
|
|
55
|
-
"@babel/preset-env": "
|
|
56
|
-
"@
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"k6": "latest",
|
|
63
|
-
"tsconfig-paths": "latest"
|
|
57
|
+
"@babel/cli": "^7.27.2",
|
|
58
|
+
"@babel/core": "^7.27.4",
|
|
59
|
+
"@babel/preset-env": "^7.27.2",
|
|
60
|
+
"@faker-js/faker": "^9.8.0",
|
|
61
|
+
"@types/k6": "^1.0.2",
|
|
62
|
+
"axios": "^1.10.0",
|
|
63
|
+
"dotenv": "^16.5.0",
|
|
64
|
+
"html-minifier-terser": "^7.2.0",
|
|
65
|
+
"yargs": "^18.0.0"
|
|
64
66
|
},
|
|
65
67
|
"dependencies": {
|
|
66
|
-
"@babel/register": "
|
|
67
|
-
"@cucumber/cucumber": "latest",
|
|
68
|
-
"@faker-js/faker": "latest",
|
|
69
|
-
"axios": "^1.9.0",
|
|
70
|
-
"dotenv": "latest",
|
|
71
|
-
"html-minifier-terser": "^7.2.0",
|
|
72
|
-
"yargs": "latest"
|
|
68
|
+
"@babel/register": "^7.27.1"
|
|
73
69
|
}
|
|
74
70
|
}
|
|
@@ -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.4.0"},"runtime":{"name":"node.js","version":"22.14.0"}}},{"source":{"data":"@rate-limit\nFeature: Rate Limit Enforcement for \/login and \/bsp\n\n Background: Login and set alias for token\n Given I login via POST to \"\/api\/v3\/client\/api\/login\" with payload from \"login.json\"\n Then I store the value at \"data.token\" as alias \"auth_token\"\n\n @within-limit\n Scenario: API allows up to 5 requests in 10 seconds (under limit)\n When I set a k6 script for POST testing\n When I set to run the k6 script with the following configurations:\n | virtual_users | duration | http_req_failed | http_req_duration |\n | 1 | 10 | rate<0.05 | p(95)<2000 |\n When I use JSON payload from \"okra.json\" for POST to \"\/api\/v3\/client\/bsp\"\n When I set the authentication type to \"auth_token\"\n Then I see the API should handle the POST request successfully\n\n @exceed-limit\n Scenario: API blocks more than 5 requests in 10 seconds (exceeds limit)\n When I set a k6 script for POST testing\n When I set to run the k6 script with the following configurations:\n | virtual_users | duration | http_req_failed | http_req_duration |\n | 6 | 10 | rate>=0.50 | p(95)<3000 |\n When I use JSON payload from \"okra.json\" for POST to \"\/api\/v3\/client\/bsp\"\n When I set the authentication type to \"auth_token\"\n Then I see the API should handle the POST request successfully\n","uri":"features\/bsp.feature","mediaType":"text\/x.cucumber.gherkin+plain"}},{"gherkinDocument":{"feature":{"tags":[{"location":{"line":1,"column":1},"name":"@rate-limit","id":"17d2551a-c272-4f73-8939-f84e2b85f3f4"}],"location":{"line":2,"column":1},"language":"en","keyword":"Feature","name":"Rate Limit Enforcement for \/login and \/bsp","description":"","children":[{"background":{"id":"f5a004d9-c064-4269-bfbd-e7d419d84d04","location":{"line":4,"column":3},"keyword":"Background","name":"Login and set alias for token","description":"","steps":[{"id":"7d47bb21-1dfd-44b1-8082-74541898bb9b","location":{"line":5,"column":5},"keyword":"Given ","keywordType":"Context","text":"I login via POST to \"\/api\/v3\/client\/api\/login\" with payload from \"login.json\""},{"id":"ea098b5f-bf91-40f2-9e9a-221280fd212c","location":{"line":6,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"I store the value at \"data.token\" as alias \"auth_token\""}]}},{"scenario":{"id":"8f0b0b2c-730a-4ec0-8136-cb96f10d5636","tags":[{"location":{"line":8,"column":3},"name":"@within-limit","id":"c16bf4c7-1d01-4bbb-ab7a-0837f98d6ec3"}],"location":{"line":9,"column":3},"keyword":"Scenario","name":"API allows up to 5 requests in 10 seconds (under limit)","description":"","steps":[{"id":"cf297024-e3a6-4d25-b430-bb03d1d0c91e","location":{"line":10,"column":5},"keyword":"When ","keywordType":"Action","text":"I set a k6 script for POST testing"},{"id":"2415519c-48f3-4a51-a425-15668a9b99e2","location":{"line":11,"column":5},"keyword":"When ","keywordType":"Action","text":"I set to run the k6 script with the following configurations:","dataTable":{"location":{"line":12,"column":7},"rows":[{"id":"16ac7b8a-6cdf-4677-a368-6f982e1248c6","location":{"line":12,"column":7},"cells":[{"location":{"line":12,"column":9},"value":"virtual_users"},{"location":{"line":12,"column":25},"value":"duration"},{"location":{"line":12,"column":36},"value":"http_req_failed"},{"location":{"line":12,"column":54},"value":"http_req_duration"}]},{"id":"cdf8b873-5514-45af-82ce-6e9f02284c51","location":{"line":13,"column":7},"cells":[{"location":{"line":13,"column":21},"value":"1"},{"location":{"line":13,"column":31},"value":"10"},{"location":{"line":13,"column":36},"value":"rate<0.05"},{"location":{"line":13,"column":54},"value":"p(95)<2000"}]}]}},{"id":"9b6834ba-2e19-48bd-bf68-6914abb5547b","location":{"line":14,"column":5},"keyword":"When ","keywordType":"Action","text":"I use JSON payload from \"okra.json\" for POST to \"\/api\/v3\/client\/bsp\""},{"id":"13509a8c-4c3f-4344-9ab2-43d54d5fb771","location":{"line":15,"column":5},"keyword":"When ","keywordType":"Action","text":"I set the authentication type to \"auth_token\""},{"id":"dfc4b4f6-1210-4b44-ba3d-f27d704fb069","location":{"line":16,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"I see the API should handle the POST request successfully"}],"examples":[]}},{"scenario":{"id":"f76ab590-b942-4cc1-8310-30917593b8ff","tags":[{"location":{"line":18,"column":3},"name":"@exceed-limit","id":"21d4ec05-4329-47a2-8cef-aafea8d25370"}],"location":{"line":19,"column":3},"keyword":"Scenario","name":"API blocks more than 5 requests in 10 seconds (exceeds limit)","description":"","steps":[{"id":"dc3e35ee-a2fd-423d-809c-0fb7e4823a62","location":{"line":20,"column":5},"keyword":"When ","keywordType":"Action","text":"I set a k6 script for POST testing"},{"id":"d6942ae6-f995-44f0-b584-829a7891dc1a","location":{"line":21,"column":5},"keyword":"When ","keywordType":"Action","text":"I set to run the k6 script with the following configurations:","dataTable":{"location":{"line":22,"column":7},"rows":[{"id":"9f6a18c4-59d3-43f6-8610-346a28b2a4af","location":{"line":22,"column":7},"cells":[{"location":{"line":22,"column":9},"value":"virtual_users"},{"location":{"line":22,"column":25},"value":"duration"},{"location":{"line":22,"column":36},"value":"http_req_failed"},{"location":{"line":22,"column":54},"value":"http_req_duration"}]},{"id":"e5361805-4a53-4e23-9d98-3cc4ec3ddbf0","location":{"line":23,"column":7},"cells":[{"location":{"line":23,"column":21},"value":"6"},{"location":{"line":23,"column":31},"value":"10"},{"location":{"line":23,"column":36},"value":"rate>=0.50"},{"location":{"line":23,"column":54},"value":"p(95)<3000"}]}]}},{"id":"56e331d3-2fc5-48a4-ac21-ecafba76ac0c","location":{"line":24,"column":5},"keyword":"When ","keywordType":"Action","text":"I use JSON payload from \"okra.json\" for POST to \"\/api\/v3\/client\/bsp\""},{"id":"eca65e61-7291-42fa-833c-28e375a62386","location":{"line":25,"column":5},"keyword":"When ","keywordType":"Action","text":"I set the authentication type to \"auth_token\""},{"id":"73c4f26c-f5a8-43ab-aaae-248445c89afd","location":{"line":26,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"I see the API should handle the POST request successfully"}],"examples":[]}}]},"comments":[],"uri":"features\/bsp.feature"}},{"pickle":{"id":"f6636014-46cb-412c-a658-e10ec26e58d5","uri":"features\/bsp.feature","astNodeIds":["8f0b0b2c-730a-4ec0-8136-cb96f10d5636"],"tags":[{"name":"@rate-limit","astNodeId":"17d2551a-c272-4f73-8939-f84e2b85f3f4"},{"name":"@within-limit","astNodeId":"c16bf4c7-1d01-4bbb-ab7a-0837f98d6ec3"}],"name":"API allows up to 5 requests in 10 seconds (under limit)","language":"en","steps":[{"id":"4da6f429-9357-418c-9889-9e2f14c80f49","text":"I login via POST to \"\/api\/v3\/client\/api\/login\" with payload from \"login.json\"","type":"Context","astNodeIds":["7d47bb21-1dfd-44b1-8082-74541898bb9b"]},{"id":"89bd27cf-6301-49e6-b8d4-ac87a2cb823e","text":"I store the value at \"data.token\" as alias \"auth_token\"","type":"Outcome","astNodeIds":["ea098b5f-bf91-40f2-9e9a-221280fd212c"]},{"id":"1384a749-7ac6-4e0b-8a49-bb2ef473339a","text":"I set a k6 script for POST testing","type":"Action","astNodeIds":["cf297024-e3a6-4d25-b430-bb03d1d0c91e"]},{"id":"9368eb3d-4d65-4b36-ab70-5c92865e6b79","text":"I set to 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":"1"},{"value":"10"},{"value":"rate<0.05"},{"value":"p(95)<2000"}]}]}},"astNodeIds":["2415519c-48f3-4a51-a425-15668a9b99e2"]},{"id":"4d435563-4139-4f01-b778-bc05dc835878","text":"I use JSON payload from \"okra.json\" for POST to \"\/api\/v3\/client\/bsp\"","type":"Action","astNodeIds":["9b6834ba-2e19-48bd-bf68-6914abb5547b"]},{"id":"d7840298-d6c7-4a27-b07e-25f2ef4c0042","text":"I set the authentication type to \"auth_token\"","type":"Action","astNodeIds":["13509a8c-4c3f-4344-9ab2-43d54d5fb771"]},{"id":"6c873ae5-3337-42df-bae9-7a0a1c6d71a7","text":"I see the API should handle the POST request successfully","type":"Outcome","astNodeIds":["dfc4b4f6-1210-4b44-ba3d-f27d704fb069"]}]}},{"pickle":{"id":"9657609b-65de-43e4-b7c1-f0e85672014e","uri":"features\/bsp.feature","astNodeIds":["f76ab590-b942-4cc1-8310-30917593b8ff"],"tags":[{"name":"@rate-limit","astNodeId":"17d2551a-c272-4f73-8939-f84e2b85f3f4"},{"name":"@exceed-limit","astNodeId":"21d4ec05-4329-47a2-8cef-aafea8d25370"}],"name":"API blocks more than 5 requests in 10 seconds (exceeds limit)","language":"en","steps":[{"id":"da213118-e594-4f7e-94a2-2d9a562de3e8","text":"I login via POST to \"\/api\/v3\/client\/api\/login\" with payload from \"login.json\"","type":"Context","astNodeIds":["7d47bb21-1dfd-44b1-8082-74541898bb9b"]},{"id":"1a4c2541-ec2b-4b69-9457-e1954e00ada9","text":"I store the value at \"data.token\" as alias \"auth_token\"","type":"Outcome","astNodeIds":["ea098b5f-bf91-40f2-9e9a-221280fd212c"]},{"id":"82c116a7-d843-4522-aa3a-35b2d24340ed","text":"I set a k6 script for POST testing","type":"Action","astNodeIds":["dc3e35ee-a2fd-423d-809c-0fb7e4823a62"]},{"id":"d7ef0386-ed10-4053-9f70-12dd75c22d85","text":"I set to 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":"6"},{"value":"10"},{"value":"rate>=0.50"},{"value":"p(95)<3000"}]}]}},"astNodeIds":["d6942ae6-f995-44f0-b584-829a7891dc1a"]},{"id":"313aed1d-27fa-4073-bb36-30473fc4cfed","text":"I use JSON payload from \"okra.json\" for POST to \"\/api\/v3\/client\/bsp\"","type":"Action","astNodeIds":["56e331d3-2fc5-48a4-ac21-ecafba76ac0c"]},{"id":"d2b69167-8ded-4fff-8116-4b1d6624b53a","text":"I set the authentication type to \"auth_token\"","type":"Action","astNodeIds":["eca65e61-7291-42fa-833c-28e375a62386"]},{"id":"da3c373a-8175-410a-be19-e77e63b685ca","text":"I see the API should handle the POST request successfully","type":"Outcome","astNodeIds":["73c4f26c-f5a8-43ab-aaae-248445c89afd"]}]}},{"stepDefinition":{"id":"126c3bab-b409-4889-b805-d6d74162db79","pattern":{"source":"I set a k6 script for {word} testing","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":28}}}},{"stepDefinition":{"id":"6005af83-a112-44a0-84dc-38e2d378f723","pattern":{"source":"I set to run the k6 script with the following configurations:","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":40}}}},{"stepDefinition":{"id":"0752ee16-57e8-443e-9cac-5459c6812e73","pattern":{"source":"I set the request headers:","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":124}}}},{"stepDefinition":{"id":"471b9136-6942-418a-9389-284cede05a38","pattern":{"source":"I set the following endpoints used:","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":145}}}},{"stepDefinition":{"id":"4fdcc1c5-6b0a-411e-bd7a-2222beb7eae8","pattern":{"source":"I set the following {word} body is used for {string}","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":165}}}},{"stepDefinition":{"id":"ea6c73d4-1f14-4ba8-ae18-996f8ee30f65","pattern":{"source":"I use JSON payload from {string} for {word} to {string}","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":174}}}},{"stepDefinition":{"id":"a537b573-53c7-4d93-b039-5b67ae9a38f2","pattern":{"source":"I set the authentication type to {string}","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":226}}}},{"stepDefinition":{"id":"b3ac8b7e-19df-44e4-a06f-07e355a1c520","pattern":{"source":"I store the value at {string} as alias {string}","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":237}}}},{"stepDefinition":{"id":"a400ea7c-0d3c-4ea7-aa11-eac5bdcb5a64","pattern":{"source":"I login via POST to {string} with payload from {string}","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":262}}}},{"stepDefinition":{"id":"a23169d3-cce1-4b81-90d4-436648607444","pattern":{"source":"I see the API should handle the {word} request successfully","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":306}}}},{"testRunStarted":{"id":"a201d523-9771-4693-93cf-01bd75e2264a","timestamp":{"seconds":1748955246,"nanos":416000000}}},{"testCase":{"testRunStartedId":"a201d523-9771-4693-93cf-01bd75e2264a","pickleId":"f6636014-46cb-412c-a658-e10ec26e58d5","id":"5668de4c-51ef-4d1f-9ab3-2c9de2105d6f","testSteps":[{"id":"c8e130d9-9db4-4723-aa22-1dba57fc4b4f","pickleStepId":"4da6f429-9357-418c-9889-9e2f14c80f49","stepDefinitionIds":["a400ea7c-0d3c-4ea7-aa11-eac5bdcb5a64"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":20,"value":"\"\/api\/v3\/client\/api\/login\"","children":[{"start":21,"value":"\/api\/v3\/client\/api\/login","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"},{"group":{"start":65,"value":"\"login.json\"","children":[{"start":66,"value":"login.json","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"32b0acc8-400b-4df2-ad8c-1cb322405164","pickleStepId":"89bd27cf-6301-49e6-b8d4-ac87a2cb823e","stepDefinitionIds":["b3ac8b7e-19df-44e4-a06f-07e355a1c520"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":21,"value":"\"data.token\"","children":[{"start":22,"value":"data.token","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"},{"group":{"start":43,"value":"\"auth_token\"","children":[{"start":44,"value":"auth_token","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"cda6f232-1c4b-4c3b-bc8a-b26aa2f49589","pickleStepId":"1384a749-7ac6-4e0b-8a49-bb2ef473339a","stepDefinitionIds":["126c3bab-b409-4889-b805-d6d74162db79"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":22,"value":"POST","children":[]},"parameterTypeName":"word"}]}]},{"id":"a04b9e9a-e315-4287-927f-b54de5a300b3","pickleStepId":"9368eb3d-4d65-4b36-ab70-5c92865e6b79","stepDefinitionIds":["6005af83-a112-44a0-84dc-38e2d378f723"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"4c1ff4f9-dfe5-4f61-8c52-08e20751727f","pickleStepId":"4d435563-4139-4f01-b778-bc05dc835878","stepDefinitionIds":["ea6c73d4-1f14-4ba8-ae18-996f8ee30f65"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":24,"value":"\"okra.json\"","children":[{"start":25,"value":"okra.json","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"},{"group":{"start":40,"value":"POST","children":[]},"parameterTypeName":"word"},{"group":{"start":48,"value":"\"\/api\/v3\/client\/bsp\"","children":[{"start":49,"value":"\/api\/v3\/client\/bsp","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"9899972a-a3b2-4602-8b62-e14f17bd34da","pickleStepId":"d7840298-d6c7-4a27-b07e-25f2ef4c0042","stepDefinitionIds":["a537b573-53c7-4d93-b039-5b67ae9a38f2"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":33,"value":"\"auth_token\"","children":[{"start":34,"value":"auth_token","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"05901994-7e2f-4a77-bea1-c3d6d51132a1","pickleStepId":"6c873ae5-3337-42df-bae9-7a0a1c6d71a7","stepDefinitionIds":["a23169d3-cce1-4b81-90d4-436648607444"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":32,"value":"POST","children":[]},"parameterTypeName":"word"}]}]}]}},{"testCase":{"testRunStartedId":"a201d523-9771-4693-93cf-01bd75e2264a","pickleId":"9657609b-65de-43e4-b7c1-f0e85672014e","id":"b241695b-6e09-40a9-9b2f-3f3f38189818","testSteps":[{"id":"2115cf4a-6cdd-404a-af80-10a5b2fa8ff3","pickleStepId":"da213118-e594-4f7e-94a2-2d9a562de3e8","stepDefinitionIds":["a400ea7c-0d3c-4ea7-aa11-eac5bdcb5a64"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":20,"value":"\"\/api\/v3\/client\/api\/login\"","children":[{"start":21,"value":"\/api\/v3\/client\/api\/login","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"},{"group":{"start":65,"value":"\"login.json\"","children":[{"start":66,"value":"login.json","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"70753513-4df5-49c6-b06f-ed2cfafd3087","pickleStepId":"1a4c2541-ec2b-4b69-9457-e1954e00ada9","stepDefinitionIds":["b3ac8b7e-19df-44e4-a06f-07e355a1c520"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":21,"value":"\"data.token\"","children":[{"start":22,"value":"data.token","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"},{"group":{"start":43,"value":"\"auth_token\"","children":[{"start":44,"value":"auth_token","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"c431a9fe-c535-4efb-bafa-718e98b86a19","pickleStepId":"82c116a7-d843-4522-aa3a-35b2d24340ed","stepDefinitionIds":["126c3bab-b409-4889-b805-d6d74162db79"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":22,"value":"POST","children":[]},"parameterTypeName":"word"}]}]},{"id":"3c2cb40e-75f5-4b61-b37d-f9357c7e8a00","pickleStepId":"d7ef0386-ed10-4053-9f70-12dd75c22d85","stepDefinitionIds":["6005af83-a112-44a0-84dc-38e2d378f723"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"3e4af396-8ed1-4efe-860a-cdb50ffc18ba","pickleStepId":"313aed1d-27fa-4073-bb36-30473fc4cfed","stepDefinitionIds":["ea6c73d4-1f14-4ba8-ae18-996f8ee30f65"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":24,"value":"\"okra.json\"","children":[{"start":25,"value":"okra.json","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"},{"group":{"start":40,"value":"POST","children":[]},"parameterTypeName":"word"},{"group":{"start":48,"value":"\"\/api\/v3\/client\/bsp\"","children":[{"start":49,"value":"\/api\/v3\/client\/bsp","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"3290be0a-6849-4ab5-90a1-e1dc0f367b38","pickleStepId":"d2b69167-8ded-4fff-8116-4b1d6624b53a","stepDefinitionIds":["a537b573-53c7-4d93-b039-5b67ae9a38f2"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":33,"value":"\"auth_token\"","children":[{"start":34,"value":"auth_token","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"560eff96-8cb6-404d-91af-b7744e39da52","pickleStepId":"da3c373a-8175-410a-be19-e77e63b685ca","stepDefinitionIds":["a23169d3-cce1-4b81-90d4-436648607444"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":32,"value":"POST","children":[]},"parameterTypeName":"word"}]}]}]}},{"testCaseStarted":{"attempt":0,"testCaseId":"5668de4c-51ef-4d1f-9ab3-2c9de2105d6f","id":"dfba1110-42a3-4d58-8011-5acaca1a099f","timestamp":{"seconds":1748955246,"nanos":429000000}}},{"testStepStarted":{"testCaseStartedId":"dfba1110-42a3-4d58-8011-5acaca1a099f","testStepId":"c8e130d9-9db4-4723-aa22-1dba57fc4b4f","timestamp":{"seconds":1748955246,"nanos":429000000}}},{"testStepFinished":{"testCaseStartedId":"dfba1110-42a3-4d58-8011-5acaca1a099f","testStepId":"c8e130d9-9db4-4723-aa22-1dba57fc4b4f","testStepResult":{"duration":{"seconds":0,"nanos":894569875},"status":"PASSED"},"timestamp":{"seconds":1748955247,"nanos":324000000}}},{"testStepStarted":{"testCaseStartedId":"dfba1110-42a3-4d58-8011-5acaca1a099f","testStepId":"32b0acc8-400b-4df2-ad8c-1cb322405164","timestamp":{"seconds":1748955247,"nanos":324000000}}},{"testStepFinished":{"testCaseStartedId":"dfba1110-42a3-4d58-8011-5acaca1a099f","testStepId":"32b0acc8-400b-4df2-ad8c-1cb322405164","testStepResult":{"duration":{"seconds":0,"nanos":217708},"status":"PASSED"},"timestamp":{"seconds":1748955247,"nanos":324000000}}},{"testStepStarted":{"testCaseStartedId":"dfba1110-42a3-4d58-8011-5acaca1a099f","testStepId":"cda6f232-1c4b-4c3b-bc8a-b26aa2f49589","timestamp":{"seconds":1748955247,"nanos":325000000}}},{"testStepFinished":{"testCaseStartedId":"dfba1110-42a3-4d58-8011-5acaca1a099f","testStepId":"cda6f232-1c4b-4c3b-bc8a-b26aa2f49589","testStepResult":{"duration":{"seconds":0,"nanos":78040},"status":"PASSED"},"timestamp":{"seconds":1748955247,"nanos":325000000}}},{"testStepStarted":{"testCaseStartedId":"dfba1110-42a3-4d58-8011-5acaca1a099f","testStepId":"a04b9e9a-e315-4287-927f-b54de5a300b3","timestamp":{"seconds":1748955247,"nanos":325000000}}},{"testStepFinished":{"testCaseStartedId":"dfba1110-42a3-4d58-8011-5acaca1a099f","testStepId":"a04b9e9a-e315-4287-927f-b54de5a300b3","testStepResult":{"duration":{"seconds":0,"nanos":458667},"status":"PASSED"},"timestamp":{"seconds":1748955247,"nanos":325000000}}},{"testStepStarted":{"testCaseStartedId":"dfba1110-42a3-4d58-8011-5acaca1a099f","testStepId":"4c1ff4f9-dfe5-4f61-8c52-08e20751727f","timestamp":{"seconds":1748955247,"nanos":325000000}}},{"testStepFinished":{"testCaseStartedId":"dfba1110-42a3-4d58-8011-5acaca1a099f","testStepId":"4c1ff4f9-dfe5-4f61-8c52-08e20751727f","testStepResult":{"duration":{"seconds":0,"nanos":1823208},"status":"PASSED"},"timestamp":{"seconds":1748955247,"nanos":327000000}}},{"testStepStarted":{"testCaseStartedId":"dfba1110-42a3-4d58-8011-5acaca1a099f","testStepId":"9899972a-a3b2-4602-8b62-e14f17bd34da","timestamp":{"seconds":1748955247,"nanos":327000000}}},{"testStepFinished":{"testCaseStartedId":"dfba1110-42a3-4d58-8011-5acaca1a099f","testStepId":"9899972a-a3b2-4602-8b62-e14f17bd34da","testStepResult":{"duration":{"seconds":0,"nanos":125207},"status":"PASSED"},"timestamp":{"seconds":1748955247,"nanos":328000000}}},{"testStepStarted":{"testCaseStartedId":"dfba1110-42a3-4d58-8011-5acaca1a099f","testStepId":"05901994-7e2f-4a77-bea1-c3d6d51132a1","timestamp":{"seconds":1748955247,"nanos":328000000}}},{"testStepFinished":{"testCaseStartedId":"dfba1110-42a3-4d58-8011-5acaca1a099f","testStepId":"05901994-7e2f-4a77-bea1-c3d6d51132a1","testStepResult":{"duration":{"seconds":14,"nanos":665569374},"status":"FAILED","message":"Error: k6 test execution failed\n at CustomWorld.<anonymous> (\/Users\/paschal\/personal\/k6-cucumber-steps\/step_definitions\/load_test_steps.js:334:13)","exception":{"type":"Error","message":"k6 test execution failed","stackTrace":" at CustomWorld.<anonymous> (\/Users\/paschal\/personal\/k6-cucumber-steps\/step_definitions\/load_test_steps.js:334:13)"}},"timestamp":{"seconds":1748955261,"nanos":994000000}}},{"testCaseFinished":{"testCaseStartedId":"dfba1110-42a3-4d58-8011-5acaca1a099f","timestamp":{"seconds":1748955261,"nanos":994000000},"willBeRetried":false}},{"testCaseStarted":{"attempt":0,"testCaseId":"b241695b-6e09-40a9-9b2f-3f3f38189818","id":"edebda2b-13a6-48ef-9935-220b17ce746e","timestamp":{"seconds":1748955261,"nanos":994000000}}},{"testStepStarted":{"testCaseStartedId":"edebda2b-13a6-48ef-9935-220b17ce746e","testStepId":"2115cf4a-6cdd-404a-af80-10a5b2fa8ff3","timestamp":{"seconds":1748955261,"nanos":994000000}}},{"testStepFinished":{"testCaseStartedId":"edebda2b-13a6-48ef-9935-220b17ce746e","testStepId":"2115cf4a-6cdd-404a-af80-10a5b2fa8ff3","testStepResult":{"duration":{"seconds":0,"nanos":626931291},"status":"PASSED"},"timestamp":{"seconds":1748955262,"nanos":621000000}}},{"testStepStarted":{"testCaseStartedId":"edebda2b-13a6-48ef-9935-220b17ce746e","testStepId":"70753513-4df5-49c6-b06f-ed2cfafd3087","timestamp":{"seconds":1748955262,"nanos":622000000}}},{"testStepFinished":{"testCaseStartedId":"edebda2b-13a6-48ef-9935-220b17ce746e","testStepId":"70753513-4df5-49c6-b06f-ed2cfafd3087","testStepResult":{"duration":{"seconds":0,"nanos":569790},"status":"PASSED"},"timestamp":{"seconds":1748955262,"nanos":622000000}}},{"testStepStarted":{"testCaseStartedId":"edebda2b-13a6-48ef-9935-220b17ce746e","testStepId":"c431a9fe-c535-4efb-bafa-718e98b86a19","timestamp":{"seconds":1748955262,"nanos":623000000}}},{"testStepFinished":{"testCaseStartedId":"edebda2b-13a6-48ef-9935-220b17ce746e","testStepId":"c431a9fe-c535-4efb-bafa-718e98b86a19","testStepResult":{"duration":{"seconds":0,"nanos":76042},"status":"PASSED"},"timestamp":{"seconds":1748955262,"nanos":623000000}}},{"testStepStarted":{"testCaseStartedId":"edebda2b-13a6-48ef-9935-220b17ce746e","testStepId":"3c2cb40e-75f5-4b61-b37d-f9357c7e8a00","timestamp":{"seconds":1748955262,"nanos":623000000}}},{"testStepFinished":{"testCaseStartedId":"edebda2b-13a6-48ef-9935-220b17ce746e","testStepId":"3c2cb40e-75f5-4b61-b37d-f9357c7e8a00","testStepResult":{"duration":{"seconds":0,"nanos":255083},"status":"PASSED"},"timestamp":{"seconds":1748955262,"nanos":623000000}}},{"testStepStarted":{"testCaseStartedId":"edebda2b-13a6-48ef-9935-220b17ce746e","testStepId":"3e4af396-8ed1-4efe-860a-cdb50ffc18ba","timestamp":{"seconds":1748955262,"nanos":623000000}}},{"testStepFinished":{"testCaseStartedId":"edebda2b-13a6-48ef-9935-220b17ce746e","testStepId":"3e4af396-8ed1-4efe-860a-cdb50ffc18ba","testStepResult":{"duration":{"seconds":0,"nanos":1752667},"status":"PASSED"},"timestamp":{"seconds":1748955262,"nanos":625000000}}},{"testStepStarted":{"testCaseStartedId":"edebda2b-13a6-48ef-9935-220b17ce746e","testStepId":"3290be0a-6849-4ab5-90a1-e1dc0f367b38","timestamp":{"seconds":1748955262,"nanos":625000000}}},{"testStepFinished":{"testCaseStartedId":"edebda2b-13a6-48ef-9935-220b17ce746e","testStepId":"3290be0a-6849-4ab5-90a1-e1dc0f367b38","testStepResult":{"duration":{"seconds":0,"nanos":87707},"status":"PASSED"},"timestamp":{"seconds":1748955262,"nanos":625000000}}},{"testStepStarted":{"testCaseStartedId":"edebda2b-13a6-48ef-9935-220b17ce746e","testStepId":"560eff96-8cb6-404d-91af-b7744e39da52","timestamp":{"seconds":1748955262,"nanos":625000000}}},{"testStepFinished":{"testCaseStartedId":"edebda2b-13a6-48ef-9935-220b17ce746e","testStepId":"560eff96-8cb6-404d-91af-b7744e39da52","testStepResult":{"duration":{"seconds":14,"nanos":650450625},"status":"PASSED"},"timestamp":{"seconds":1748955277,"nanos":276000000}}},{"testCaseFinished":{"testCaseStartedId":"edebda2b-13a6-48ef-9935-220b17ce746e","timestamp":{"seconds":1748955277,"nanos":276000000},"willBeRetried":false}},{"testRunFinished":{"testRunStartedId":"a201d523-9771-4693-93cf-01bd75e2264a","timestamp":{"seconds":1748955277,"nanos":277000000},"success":false}}];
|
|
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.5.0"},"runtime":{"name":"node.js","version":"22.14.0"}}},{"source":{"data":"@rate-limit\nFeature: Rate Limit Enforcement for \/login and \/bsp\n\n Background: Login and set alias for token\n Given I login via POST to \"\/api\/v3\/client\/api\/login\" with payload from \"login.json\"\n Then I store the value at \"data.token\" as alias \"auth_token\"\n\n @within-limit\n Scenario: API allows up to 5 requests in 10 seconds (under limit)\n When I set a k6 script for POST testing\n When I set to run the k6 script with the following configurations:\n | virtual_users | duration | http_req_failed | http_req_duration |\n | 1 | 10 | rate<0.05 | p(95)<2000 |\n When I use JSON payload from \"okra.json\" for POST to \"\/api\/v3\/client\/bsp\"\n When I set the authentication type to \"auth_token\"\n Then I see the API should handle the POST request successfully\n\n @exceed-limit\n Scenario: API blocks more than 5 requests in 10 seconds (exceeds limit)\n When I set a k6 script for POST testing\n When I set to run the k6 script with the following configurations:\n | virtual_users | duration | http_req_failed | http_req_duration |\n | 6 | 10 | rate>=0.50 | p(95)<3000 |\n When I use JSON payload from \"okra.json\" for POST to \"\/api\/v3\/client\/bsp\"\n When I set the authentication type to \"auth_token\"\n Then I see the API should handle the POST request successfully\n\n @get\n Scenario Outline: I run the k6 script for load testing with dynamic GET requests\n Given I set a k6 script for GET testing\n When I set to 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 I set the following endpoints used:\n \"\"\"\n \/get?foo1=bar1&foo2=bar2\n https:\/\/postman-echo.com\/get?foo1=bar1&foo2=bar2\n \"\"\"\n When I set the authentication type to \"none\"\n Then I see 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)<5000 |\n | 5 | 2 | rate<0.05 | p(95)<5000 |\n# | 100 | 15 | rate<0.05 | p(95)<3500 |\n# | 200 | 20 | rate<0.05 | p(95)<3500 |\n","uri":"features\/bsp.feature","mediaType":"text\/x.cucumber.gherkin+plain"}},{"gherkinDocument":{"feature":{"tags":[{"location":{"line":1,"column":1},"name":"@rate-limit","id":"f12333e7-8b9a-4e7f-88a1-3abc90df16d5"}],"location":{"line":2,"column":1},"language":"en","keyword":"Feature","name":"Rate Limit Enforcement for \/login and \/bsp","description":"","children":[{"background":{"id":"589c60aa-407b-40eb-a480-97799862d35a","location":{"line":4,"column":3},"keyword":"Background","name":"Login and set alias for token","description":"","steps":[{"id":"cac25111-9279-4133-b04f-d24a8805ca7e","location":{"line":5,"column":5},"keyword":"Given ","keywordType":"Context","text":"I login via POST to \"\/api\/v3\/client\/api\/login\" with payload from \"login.json\""},{"id":"0d36a384-2050-40ce-b388-134dd1d0d9ea","location":{"line":6,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"I store the value at \"data.token\" as alias \"auth_token\""}]}},{"scenario":{"id":"499d2dc2-cb2d-4c19-abad-4bed17dc51b8","tags":[{"location":{"line":8,"column":3},"name":"@within-limit","id":"cdab5e67-80c5-4571-904d-35f33127410f"}],"location":{"line":9,"column":3},"keyword":"Scenario","name":"API allows up to 5 requests in 10 seconds (under limit)","description":"","steps":[{"id":"9438f7d5-a8a0-434d-b882-2bf39ad9db91","location":{"line":10,"column":5},"keyword":"When ","keywordType":"Action","text":"I set a k6 script for POST testing"},{"id":"0539f132-ad02-4a6f-a926-36d322f804e5","location":{"line":11,"column":5},"keyword":"When ","keywordType":"Action","text":"I set to run the k6 script with the following configurations:","dataTable":{"location":{"line":12,"column":7},"rows":[{"id":"3053b1a6-d99a-4431-9685-d526dddde373","location":{"line":12,"column":7},"cells":[{"location":{"line":12,"column":9},"value":"virtual_users"},{"location":{"line":12,"column":25},"value":"duration"},{"location":{"line":12,"column":36},"value":"http_req_failed"},{"location":{"line":12,"column":54},"value":"http_req_duration"}]},{"id":"b15ad8c5-8343-4bf3-8200-7f64db2084ed","location":{"line":13,"column":7},"cells":[{"location":{"line":13,"column":21},"value":"1"},{"location":{"line":13,"column":31},"value":"10"},{"location":{"line":13,"column":36},"value":"rate<0.05"},{"location":{"line":13,"column":54},"value":"p(95)<2000"}]}]}},{"id":"d9559069-ed05-49ff-8626-2cece7ba471c","location":{"line":14,"column":5},"keyword":"When ","keywordType":"Action","text":"I use JSON payload from \"okra.json\" for POST to \"\/api\/v3\/client\/bsp\""},{"id":"996ecc8d-ce44-4280-ba6e-c65af06f1b7c","location":{"line":15,"column":5},"keyword":"When ","keywordType":"Action","text":"I set the authentication type to \"auth_token\""},{"id":"da1b79f2-5738-4818-8aa2-d68f7b36e033","location":{"line":16,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"I see the API should handle the POST request successfully"}],"examples":[]}},{"scenario":{"id":"02a9c484-db65-4912-ac0c-8016dc51220b","tags":[{"location":{"line":18,"column":3},"name":"@exceed-limit","id":"142b35bf-2a25-4761-a1a3-a507f8c69409"}],"location":{"line":19,"column":3},"keyword":"Scenario","name":"API blocks more than 5 requests in 10 seconds (exceeds limit)","description":"","steps":[{"id":"c0bc247a-9fea-43d8-96d7-24cdba086b98","location":{"line":20,"column":5},"keyword":"When ","keywordType":"Action","text":"I set a k6 script for POST testing"},{"id":"49a7d5e7-6475-4239-9ca5-5a4ea8fe74cb","location":{"line":21,"column":5},"keyword":"When ","keywordType":"Action","text":"I set to run the k6 script with the following configurations:","dataTable":{"location":{"line":22,"column":7},"rows":[{"id":"707bd9a4-7162-4f9c-9a7c-67b056f53bce","location":{"line":22,"column":7},"cells":[{"location":{"line":22,"column":9},"value":"virtual_users"},{"location":{"line":22,"column":25},"value":"duration"},{"location":{"line":22,"column":36},"value":"http_req_failed"},{"location":{"line":22,"column":54},"value":"http_req_duration"}]},{"id":"e6c30d08-9f0d-481e-b77a-689b410ec029","location":{"line":23,"column":7},"cells":[{"location":{"line":23,"column":21},"value":"6"},{"location":{"line":23,"column":31},"value":"10"},{"location":{"line":23,"column":36},"value":"rate>=0.50"},{"location":{"line":23,"column":54},"value":"p(95)<3000"}]}]}},{"id":"a19544f9-8be3-4ee6-9fff-cd4725db4732","location":{"line":24,"column":5},"keyword":"When ","keywordType":"Action","text":"I use JSON payload from \"okra.json\" for POST to \"\/api\/v3\/client\/bsp\""},{"id":"ac21e79e-1a60-4b49-912b-4a4764542a17","location":{"line":25,"column":5},"keyword":"When ","keywordType":"Action","text":"I set the authentication type to \"auth_token\""},{"id":"df933c86-83b2-4132-9553-12839081b17a","location":{"line":26,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"I see the API should handle the POST request successfully"}],"examples":[]}},{"scenario":{"id":"d1942ee7-1b45-4f61-beb9-67b625ae16ae","tags":[{"location":{"line":28,"column":3},"name":"@get","id":"346d3c5c-e253-4ce6-944c-6a6c23d436b4"}],"location":{"line":29,"column":3},"keyword":"Scenario Outline","name":"I run the k6 script for load testing with dynamic GET requests","description":"","steps":[{"id":"6e659e20-8761-4dda-8367-85524f949776","location":{"line":30,"column":5},"keyword":"Given ","keywordType":"Context","text":"I set a k6 script for GET testing"},{"id":"d89a1633-6e7a-4bf2-9462-14b9b658ba1f","location":{"line":31,"column":5},"keyword":"When ","keywordType":"Action","text":"I set to run the k6 script with the following configurations:","dataTable":{"location":{"line":32,"column":7},"rows":[{"id":"24ccd7bb-0ee6-4047-975f-c13706696623","location":{"line":32,"column":7},"cells":[{"location":{"line":32,"column":9},"value":"virtual_users"},{"location":{"line":32,"column":27},"value":"duration"},{"location":{"line":32,"column":40},"value":"http_req_failed"},{"location":{"line":32,"column":60},"value":"http_req_duration"}]},{"id":"bf347f0a-342b-4b07-b0e0-c91c3db2ddf9","location":{"line":33,"column":7},"cells":[{"location":{"line":33,"column":9},"value":"<virtual_users>"},{"location":{"line":33,"column":27},"value":"<duration>"},{"location":{"line":33,"column":40},"value":"<http_req_failed>"},{"location":{"line":33,"column":60},"value":"<http_req_duration>"}]}]}},{"id":"79abe692-45a7-4d06-88d7-bcabab4dfc39","location":{"line":34,"column":5},"keyword":"And ","keywordType":"Conjunction","text":"I set the following endpoints used:","docString":{"location":{"line":35,"column":7},"content":"\/get?foo1=bar1&foo2=bar2\nhttps:\/\/postman-echo.com\/get?foo1=bar1&foo2=bar2","delimiter":"\"\"\""}},{"id":"ada228a8-d92c-462a-8a2d-9feb9e131d86","location":{"line":39,"column":5},"keyword":"When ","keywordType":"Action","text":"I set the authentication type to \"none\""},{"id":"495dcb98-d5f4-40d3-bd70-7a4530df5d08","location":{"line":40,"column":5},"keyword":"Then ","keywordType":"Outcome","text":"I see the API should handle the GET request successfully"}],"examples":[{"id":"7b27e96f-399d-4ec3-9fd8-8b8a3869a0cd","tags":[],"location":{"line":42,"column":5},"keyword":"Examples","name":"","description":"","tableHeader":{"id":"bf997470-d472-435a-b8f1-3c013feac883","location":{"line":43,"column":7},"cells":[{"location":{"line":43,"column":9},"value":"virtual_users"},{"location":{"line":43,"column":25},"value":"duration"},{"location":{"line":43,"column":36},"value":"http_req_failed"},{"location":{"line":43,"column":54},"value":"http_req_duration"}]},"tableBody":[{"id":"69874b08-0e6d-4b45-88c4-f513ddb5eeb9","location":{"line":44,"column":7},"cells":[{"location":{"line":44,"column":20},"value":"10"},{"location":{"line":44,"column":32},"value":"5"},{"location":{"line":44,"column":36},"value":"rate<0.05"},{"location":{"line":44,"column":54},"value":"p(95)<5000"}]},{"id":"e8506d2c-a932-4078-bad6-a2d15c31ab69","location":{"line":45,"column":7},"cells":[{"location":{"line":45,"column":21},"value":"5"},{"location":{"line":45,"column":32},"value":"2"},{"location":{"line":45,"column":36},"value":"rate<0.05"},{"location":{"line":45,"column":54},"value":"p(95)<5000"}]}]}]}}]},"comments":[{"location":{"line":46,"column":1},"text":"# | 100 | 15 | rate<0.05 | p(95)<3500 |"},{"location":{"line":47,"column":1},"text":"# | 200 | 20 | rate<0.05 | p(95)<3500 |"}],"uri":"features\/bsp.feature"}},{"pickle":{"id":"108206a6-4cc4-4aa9-ae20-f4000ecfbea3","uri":"features\/bsp.feature","astNodeIds":["499d2dc2-cb2d-4c19-abad-4bed17dc51b8"],"tags":[{"name":"@rate-limit","astNodeId":"f12333e7-8b9a-4e7f-88a1-3abc90df16d5"},{"name":"@within-limit","astNodeId":"cdab5e67-80c5-4571-904d-35f33127410f"}],"name":"API allows up to 5 requests in 10 seconds (under limit)","language":"en","steps":[{"id":"2def547b-b386-4341-8192-2d9c2e20ec49","text":"I login via POST to \"\/api\/v3\/client\/api\/login\" with payload from \"login.json\"","type":"Context","astNodeIds":["cac25111-9279-4133-b04f-d24a8805ca7e"]},{"id":"3f98b97b-e9e5-41a1-9fb9-79a017c0711d","text":"I store the value at \"data.token\" as alias \"auth_token\"","type":"Outcome","astNodeIds":["0d36a384-2050-40ce-b388-134dd1d0d9ea"]},{"id":"57cee142-1788-4c1a-826f-2a3e83af42f4","text":"I set a k6 script for POST testing","type":"Action","astNodeIds":["9438f7d5-a8a0-434d-b882-2bf39ad9db91"]},{"id":"1e706b0b-d623-4d05-918c-129bb5740a9c","text":"I set to 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":"1"},{"value":"10"},{"value":"rate<0.05"},{"value":"p(95)<2000"}]}]}},"astNodeIds":["0539f132-ad02-4a6f-a926-36d322f804e5"]},{"id":"c4deb9a2-6509-4032-8bf4-d04c8cb24265","text":"I use JSON payload from \"okra.json\" for POST to \"\/api\/v3\/client\/bsp\"","type":"Action","astNodeIds":["d9559069-ed05-49ff-8626-2cece7ba471c"]},{"id":"d2aae648-bbec-497f-ba62-4f2223c06ba7","text":"I set the authentication type to \"auth_token\"","type":"Action","astNodeIds":["996ecc8d-ce44-4280-ba6e-c65af06f1b7c"]},{"id":"c9398853-8886-4550-bf30-4ad7d22922ff","text":"I see the API should handle the POST request successfully","type":"Outcome","astNodeIds":["da1b79f2-5738-4818-8aa2-d68f7b36e033"]}]}},{"pickle":{"id":"3f810192-427f-4681-a352-aaf646450441","uri":"features\/bsp.feature","astNodeIds":["02a9c484-db65-4912-ac0c-8016dc51220b"],"tags":[{"name":"@rate-limit","astNodeId":"f12333e7-8b9a-4e7f-88a1-3abc90df16d5"},{"name":"@exceed-limit","astNodeId":"142b35bf-2a25-4761-a1a3-a507f8c69409"}],"name":"API blocks more than 5 requests in 10 seconds (exceeds limit)","language":"en","steps":[{"id":"aed0b69a-d493-4721-9c77-c1001e62b76c","text":"I login via POST to \"\/api\/v3\/client\/api\/login\" with payload from \"login.json\"","type":"Context","astNodeIds":["cac25111-9279-4133-b04f-d24a8805ca7e"]},{"id":"06394c14-743a-4419-8954-1f6ae4f1452e","text":"I store the value at \"data.token\" as alias \"auth_token\"","type":"Outcome","astNodeIds":["0d36a384-2050-40ce-b388-134dd1d0d9ea"]},{"id":"992bf5c2-54bb-49ca-bddf-d97fb154d39c","text":"I set a k6 script for POST testing","type":"Action","astNodeIds":["c0bc247a-9fea-43d8-96d7-24cdba086b98"]},{"id":"b7bb7bad-0d03-47fc-a898-bbf4edab186d","text":"I set to 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":"6"},{"value":"10"},{"value":"rate>=0.50"},{"value":"p(95)<3000"}]}]}},"astNodeIds":["49a7d5e7-6475-4239-9ca5-5a4ea8fe74cb"]},{"id":"8a2eb407-f58d-40ce-b073-ad70036aca37","text":"I use JSON payload from \"okra.json\" for POST to \"\/api\/v3\/client\/bsp\"","type":"Action","astNodeIds":["a19544f9-8be3-4ee6-9fff-cd4725db4732"]},{"id":"a1f1c2f0-554a-4692-957d-c58456c934c8","text":"I set the authentication type to \"auth_token\"","type":"Action","astNodeIds":["ac21e79e-1a60-4b49-912b-4a4764542a17"]},{"id":"84769dce-e722-43a4-916d-350069470539","text":"I see the API should handle the POST request successfully","type":"Outcome","astNodeIds":["df933c86-83b2-4132-9553-12839081b17a"]}]}},{"pickle":{"id":"37e73220-3fec-4aba-9273-688ba353270c","uri":"features\/bsp.feature","astNodeIds":["d1942ee7-1b45-4f61-beb9-67b625ae16ae","69874b08-0e6d-4b45-88c4-f513ddb5eeb9"],"name":"I run the k6 script for load testing with dynamic GET requests","language":"en","steps":[{"id":"e7ba9c54-7046-4979-b570-908d9dfc5c9d","text":"I login via POST to \"\/api\/v3\/client\/api\/login\" with payload from \"login.json\"","type":"Context","astNodeIds":["cac25111-9279-4133-b04f-d24a8805ca7e"]},{"id":"1c95608b-e521-4d0c-8a25-32df87c96641","text":"I store the value at \"data.token\" as alias \"auth_token\"","type":"Outcome","astNodeIds":["0d36a384-2050-40ce-b388-134dd1d0d9ea"]},{"id":"ec2b2772-0026-4ad7-be26-511159a93ac3","text":"I set a k6 script for GET testing","type":"Context","astNodeIds":["6e659e20-8761-4dda-8367-85524f949776","69874b08-0e6d-4b45-88c4-f513ddb5eeb9"]},{"id":"4525c543-8d8b-410c-bfef-32a2de45c0d6","text":"I set to 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":"10"},{"value":"5"},{"value":"rate<0.05"},{"value":"p(95)<5000"}]}]}},"astNodeIds":["d89a1633-6e7a-4bf2-9462-14b9b658ba1f","69874b08-0e6d-4b45-88c4-f513ddb5eeb9"]},{"id":"5680c8bf-e7c2-4c56-9203-70ee922fb18f","text":"I set the following endpoints used:","type":"Action","argument":{"docString":{"content":"\/get?foo1=bar1&foo2=bar2\nhttps:\/\/postman-echo.com\/get?foo1=bar1&foo2=bar2"}},"astNodeIds":["79abe692-45a7-4d06-88d7-bcabab4dfc39","69874b08-0e6d-4b45-88c4-f513ddb5eeb9"]},{"id":"c44e8893-6b01-420d-be78-9e7b25f5fc34","text":"I set the authentication type to \"none\"","type":"Action","astNodeIds":["ada228a8-d92c-462a-8a2d-9feb9e131d86","69874b08-0e6d-4b45-88c4-f513ddb5eeb9"]},{"id":"b52a60cb-9598-467c-affa-7b51d4b2c4a4","text":"I see the API should handle the GET request successfully","type":"Outcome","astNodeIds":["495dcb98-d5f4-40d3-bd70-7a4530df5d08","69874b08-0e6d-4b45-88c4-f513ddb5eeb9"]}],"tags":[{"name":"@rate-limit","astNodeId":"f12333e7-8b9a-4e7f-88a1-3abc90df16d5"},{"name":"@get","astNodeId":"346d3c5c-e253-4ce6-944c-6a6c23d436b4"}]}},{"pickle":{"id":"85baac60-8641-49b3-bc7c-5754de39c4d2","uri":"features\/bsp.feature","astNodeIds":["d1942ee7-1b45-4f61-beb9-67b625ae16ae","e8506d2c-a932-4078-bad6-a2d15c31ab69"],"name":"I run the k6 script for load testing with dynamic GET requests","language":"en","steps":[{"id":"7999b895-af11-4faa-b568-ccdb7823df46","text":"I login via POST to \"\/api\/v3\/client\/api\/login\" with payload from \"login.json\"","type":"Context","astNodeIds":["cac25111-9279-4133-b04f-d24a8805ca7e"]},{"id":"d9d089ff-9757-4a2f-b176-4219d57931f6","text":"I store the value at \"data.token\" as alias \"auth_token\"","type":"Outcome","astNodeIds":["0d36a384-2050-40ce-b388-134dd1d0d9ea"]},{"id":"53d721e9-8a2a-4a87-a0bc-f83b3d9ab218","text":"I set a k6 script for GET testing","type":"Context","astNodeIds":["6e659e20-8761-4dda-8367-85524f949776","e8506d2c-a932-4078-bad6-a2d15c31ab69"]},{"id":"740f96d7-feb9-4321-b0a7-daacb73e26dd","text":"I set to 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":"5"},{"value":"2"},{"value":"rate<0.05"},{"value":"p(95)<5000"}]}]}},"astNodeIds":["d89a1633-6e7a-4bf2-9462-14b9b658ba1f","e8506d2c-a932-4078-bad6-a2d15c31ab69"]},{"id":"28c80918-faee-454e-b717-52eea8982199","text":"I set the following endpoints used:","type":"Action","argument":{"docString":{"content":"\/get?foo1=bar1&foo2=bar2\nhttps:\/\/postman-echo.com\/get?foo1=bar1&foo2=bar2"}},"astNodeIds":["79abe692-45a7-4d06-88d7-bcabab4dfc39","e8506d2c-a932-4078-bad6-a2d15c31ab69"]},{"id":"e954d659-273e-420e-a1a3-bb11fdaa8b63","text":"I set the authentication type to \"none\"","type":"Action","astNodeIds":["ada228a8-d92c-462a-8a2d-9feb9e131d86","e8506d2c-a932-4078-bad6-a2d15c31ab69"]},{"id":"2974e7dd-0380-493d-ab13-175aef7c0151","text":"I see the API should handle the GET request successfully","type":"Outcome","astNodeIds":["495dcb98-d5f4-40d3-bd70-7a4530df5d08","e8506d2c-a932-4078-bad6-a2d15c31ab69"]}],"tags":[{"name":"@rate-limit","astNodeId":"f12333e7-8b9a-4e7f-88a1-3abc90df16d5"},{"name":"@get","astNodeId":"346d3c5c-e253-4ce6-944c-6a6c23d436b4"}]}},{"stepDefinition":{"id":"bd032950-06eb-48e3-80c0-4a6eebb04fb9","pattern":{"source":"I set a k6 script for {word} testing","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":28}}}},{"stepDefinition":{"id":"13b1d760-8a89-443e-871b-d31d839821e2","pattern":{"source":"I set to run the k6 script with the following configurations:","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":40}}}},{"stepDefinition":{"id":"ea091c95-8832-40d6-b4b1-0b5199ab0c67","pattern":{"source":"I set the request headers:","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":124}}}},{"stepDefinition":{"id":"5a895bf1-93a0-44aa-9f02-7c7479ca913d","pattern":{"source":"I set the following endpoints used:","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":145}}}},{"stepDefinition":{"id":"da3fd24e-6e1b-407c-9389-fe58898ef008","pattern":{"source":"I set the following {word} body is used for {string}","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":165}}}},{"stepDefinition":{"id":"22f6b4ae-156a-4226-8423-e68a2a698254","pattern":{"source":"I use JSON payload from {string} for {word} to {string}","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":174}}}},{"stepDefinition":{"id":"2fee4d08-f379-4654-b647-8400e521ee0b","pattern":{"source":"I set the authentication type to {string}","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":226}}}},{"stepDefinition":{"id":"697d6394-11a0-4b85-8d93-f0b2fe948247","pattern":{"source":"I store the value at {string} as alias {string}","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":237}}}},{"stepDefinition":{"id":"9fb16dc8-43a5-4bf7-98cb-704c807d7ef7","pattern":{"source":"I login via POST to {string} with payload from {string}","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":262}}}},{"stepDefinition":{"id":"55ecb4f1-37ff-45be-bfb4-47a2c00bf1ec","pattern":{"source":"I see the API should handle the {word} request successfully","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":306}}}},{"testRunStarted":{"id":"fe759f94-8b97-4456-ab63-1d834c12b3b0","timestamp":{"seconds":1750840270,"nanos":690000000}}},{"testCase":{"testRunStartedId":"fe759f94-8b97-4456-ab63-1d834c12b3b0","pickleId":"37e73220-3fec-4aba-9273-688ba353270c","id":"a9059a9d-2074-44b5-ae7b-bd001794f701","testSteps":[{"id":"4b5e0abe-37f3-4949-ab6c-ee36346ed79d","pickleStepId":"e7ba9c54-7046-4979-b570-908d9dfc5c9d","stepDefinitionIds":["9fb16dc8-43a5-4bf7-98cb-704c807d7ef7"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":20,"value":"\"\/api\/v3\/client\/api\/login\"","children":[{"start":21,"value":"\/api\/v3\/client\/api\/login","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"},{"group":{"start":65,"value":"\"login.json\"","children":[{"start":66,"value":"login.json","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"77ed9f04-ffa3-4510-959f-67c9a054fb0f","pickleStepId":"1c95608b-e521-4d0c-8a25-32df87c96641","stepDefinitionIds":["697d6394-11a0-4b85-8d93-f0b2fe948247"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":21,"value":"\"data.token\"","children":[{"start":22,"value":"data.token","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"},{"group":{"start":43,"value":"\"auth_token\"","children":[{"start":44,"value":"auth_token","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"ee0c0b27-8a73-467e-bbe9-53a282011307","pickleStepId":"ec2b2772-0026-4ad7-be26-511159a93ac3","stepDefinitionIds":["bd032950-06eb-48e3-80c0-4a6eebb04fb9"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":22,"value":"GET","children":[]},"parameterTypeName":"word"}]}]},{"id":"1f8fae62-ea29-42bb-a40c-a427c2b4762c","pickleStepId":"4525c543-8d8b-410c-bfef-32a2de45c0d6","stepDefinitionIds":["13b1d760-8a89-443e-871b-d31d839821e2"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"6e22fba0-d401-425b-be0c-7c3edd40b6fa","pickleStepId":"5680c8bf-e7c2-4c56-9203-70ee922fb18f","stepDefinitionIds":["5a895bf1-93a0-44aa-9f02-7c7479ca913d"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"415b8256-0b5b-4883-87c1-f9e13c38053f","pickleStepId":"c44e8893-6b01-420d-be78-9e7b25f5fc34","stepDefinitionIds":["2fee4d08-f379-4654-b647-8400e521ee0b"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":33,"value":"\"none\"","children":[{"start":34,"value":"none","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"974cfc59-c610-4822-a21d-f9497fedc8ff","pickleStepId":"b52a60cb-9598-467c-affa-7b51d4b2c4a4","stepDefinitionIds":["55ecb4f1-37ff-45be-bfb4-47a2c00bf1ec"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":32,"value":"GET","children":[]},"parameterTypeName":"word"}]}]}]}},{"testCase":{"testRunStartedId":"fe759f94-8b97-4456-ab63-1d834c12b3b0","pickleId":"85baac60-8641-49b3-bc7c-5754de39c4d2","id":"d8796e84-7c4e-408a-a3bf-c14bc82d403b","testSteps":[{"id":"fb8a6861-0807-4ea3-8b0b-6831a19f0f0b","pickleStepId":"7999b895-af11-4faa-b568-ccdb7823df46","stepDefinitionIds":["9fb16dc8-43a5-4bf7-98cb-704c807d7ef7"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":20,"value":"\"\/api\/v3\/client\/api\/login\"","children":[{"start":21,"value":"\/api\/v3\/client\/api\/login","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"},{"group":{"start":65,"value":"\"login.json\"","children":[{"start":66,"value":"login.json","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"e0dcb6f0-5774-4f05-98b4-394147fd0ac3","pickleStepId":"d9d089ff-9757-4a2f-b176-4219d57931f6","stepDefinitionIds":["697d6394-11a0-4b85-8d93-f0b2fe948247"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":21,"value":"\"data.token\"","children":[{"start":22,"value":"data.token","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"},{"group":{"start":43,"value":"\"auth_token\"","children":[{"start":44,"value":"auth_token","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"64e8e8c4-cc0b-40b2-b0b9-2d8e2c24c260","pickleStepId":"53d721e9-8a2a-4a87-a0bc-f83b3d9ab218","stepDefinitionIds":["bd032950-06eb-48e3-80c0-4a6eebb04fb9"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":22,"value":"GET","children":[]},"parameterTypeName":"word"}]}]},{"id":"4991b36e-c565-4c03-b3ac-3392c41fc21d","pickleStepId":"740f96d7-feb9-4321-b0a7-daacb73e26dd","stepDefinitionIds":["13b1d760-8a89-443e-871b-d31d839821e2"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"d88aa119-7e53-4dee-a1f9-558082b02ebc","pickleStepId":"28c80918-faee-454e-b717-52eea8982199","stepDefinitionIds":["5a895bf1-93a0-44aa-9f02-7c7479ca913d"],"stepMatchArgumentsLists":[{"stepMatchArguments":[]}]},{"id":"3693030a-616d-4d94-beb0-7b90dde941dc","pickleStepId":"e954d659-273e-420e-a1a3-bb11fdaa8b63","stepDefinitionIds":["2fee4d08-f379-4654-b647-8400e521ee0b"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":33,"value":"\"none\"","children":[{"start":34,"value":"none","children":[{"children":[]}]},{"children":[{"children":[]}]}]},"parameterTypeName":"string"}]}]},{"id":"6bae6ed1-1952-4c9a-91c1-f95526ba184f","pickleStepId":"2974e7dd-0380-493d-ab13-175aef7c0151","stepDefinitionIds":["55ecb4f1-37ff-45be-bfb4-47a2c00bf1ec"],"stepMatchArgumentsLists":[{"stepMatchArguments":[{"group":{"start":32,"value":"GET","children":[]},"parameterTypeName":"word"}]}]}]}},{"testCaseStarted":{"attempt":0,"testCaseId":"a9059a9d-2074-44b5-ae7b-bd001794f701","id":"469e750a-9787-4df4-a7d0-b87258a18ec9","timestamp":{"seconds":1750840270,"nanos":702000000}}},{"testStepStarted":{"testCaseStartedId":"469e750a-9787-4df4-a7d0-b87258a18ec9","testStepId":"4b5e0abe-37f3-4949-ab6c-ee36346ed79d","timestamp":{"seconds":1750840270,"nanos":702000000}}},{"testStepFinished":{"testCaseStartedId":"469e750a-9787-4df4-a7d0-b87258a18ec9","testStepId":"4b5e0abe-37f3-4949-ab6c-ee36346ed79d","testStepResult":{"duration":{"seconds":0,"nanos":780541},"status":"FAILED","message":"Error: Payload file not found: \/Users\/paschal\/personal\/k6-cucumber-steps\/payloads\/login.json\n at CustomWorld.<anonymous> (\/Users\/paschal\/personal\/k6-cucumber-steps\/step_definitions\/load_test_steps.js:270:13)","exception":{"type":"Error","message":"Payload file not found: \/Users\/paschal\/personal\/k6-cucumber-steps\/payloads\/login.json","stackTrace":" at CustomWorld.<anonymous> (\/Users\/paschal\/personal\/k6-cucumber-steps\/step_definitions\/load_test_steps.js:270:13)"}},"timestamp":{"seconds":1750840270,"nanos":703000000}}},{"testStepStarted":{"testCaseStartedId":"469e750a-9787-4df4-a7d0-b87258a18ec9","testStepId":"77ed9f04-ffa3-4510-959f-67c9a054fb0f","timestamp":{"seconds":1750840270,"nanos":703000000}}},{"testStepFinished":{"testCaseStartedId":"469e750a-9787-4df4-a7d0-b87258a18ec9","testStepId":"77ed9f04-ffa3-4510-959f-67c9a054fb0f","testStepResult":{"status":"SKIPPED","duration":{"seconds":0,"nanos":0}},"timestamp":{"seconds":1750840270,"nanos":703000000}}},{"testStepStarted":{"testCaseStartedId":"469e750a-9787-4df4-a7d0-b87258a18ec9","testStepId":"ee0c0b27-8a73-467e-bbe9-53a282011307","timestamp":{"seconds":1750840270,"nanos":703000000}}},{"testStepFinished":{"testCaseStartedId":"469e750a-9787-4df4-a7d0-b87258a18ec9","testStepId":"ee0c0b27-8a73-467e-bbe9-53a282011307","testStepResult":{"status":"SKIPPED","duration":{"seconds":0,"nanos":0}},"timestamp":{"seconds":1750840270,"nanos":703000000}}},{"testStepStarted":{"testCaseStartedId":"469e750a-9787-4df4-a7d0-b87258a18ec9","testStepId":"1f8fae62-ea29-42bb-a40c-a427c2b4762c","timestamp":{"seconds":1750840270,"nanos":703000000}}},{"testStepFinished":{"testCaseStartedId":"469e750a-9787-4df4-a7d0-b87258a18ec9","testStepId":"1f8fae62-ea29-42bb-a40c-a427c2b4762c","testStepResult":{"status":"SKIPPED","duration":{"seconds":0,"nanos":0}},"timestamp":{"seconds":1750840270,"nanos":703000000}}},{"testStepStarted":{"testCaseStartedId":"469e750a-9787-4df4-a7d0-b87258a18ec9","testStepId":"6e22fba0-d401-425b-be0c-7c3edd40b6fa","timestamp":{"seconds":1750840270,"nanos":703000000}}},{"testStepFinished":{"testCaseStartedId":"469e750a-9787-4df4-a7d0-b87258a18ec9","testStepId":"6e22fba0-d401-425b-be0c-7c3edd40b6fa","testStepResult":{"status":"SKIPPED","duration":{"seconds":0,"nanos":0}},"timestamp":{"seconds":1750840270,"nanos":703000000}}},{"testStepStarted":{"testCaseStartedId":"469e750a-9787-4df4-a7d0-b87258a18ec9","testStepId":"415b8256-0b5b-4883-87c1-f9e13c38053f","timestamp":{"seconds":1750840270,"nanos":703000000}}},{"testStepFinished":{"testCaseStartedId":"469e750a-9787-4df4-a7d0-b87258a18ec9","testStepId":"415b8256-0b5b-4883-87c1-f9e13c38053f","testStepResult":{"status":"SKIPPED","duration":{"seconds":0,"nanos":0}},"timestamp":{"seconds":1750840270,"nanos":703000000}}},{"testStepStarted":{"testCaseStartedId":"469e750a-9787-4df4-a7d0-b87258a18ec9","testStepId":"974cfc59-c610-4822-a21d-f9497fedc8ff","timestamp":{"seconds":1750840270,"nanos":703000000}}},{"testStepFinished":{"testCaseStartedId":"469e750a-9787-4df4-a7d0-b87258a18ec9","testStepId":"974cfc59-c610-4822-a21d-f9497fedc8ff","testStepResult":{"status":"SKIPPED","duration":{"seconds":0,"nanos":0}},"timestamp":{"seconds":1750840270,"nanos":703000000}}},{"testCaseFinished":{"testCaseStartedId":"469e750a-9787-4df4-a7d0-b87258a18ec9","timestamp":{"seconds":1750840270,"nanos":703000000},"willBeRetried":false}},{"testCaseStarted":{"attempt":0,"testCaseId":"d8796e84-7c4e-408a-a3bf-c14bc82d403b","id":"0d1f2486-4f40-45f0-8302-8a62ffacdbe4","timestamp":{"seconds":1750840270,"nanos":703000000}}},{"testStepStarted":{"testCaseStartedId":"0d1f2486-4f40-45f0-8302-8a62ffacdbe4","testStepId":"fb8a6861-0807-4ea3-8b0b-6831a19f0f0b","timestamp":{"seconds":1750840270,"nanos":703000000}}},{"testStepFinished":{"testCaseStartedId":"0d1f2486-4f40-45f0-8302-8a62ffacdbe4","testStepId":"fb8a6861-0807-4ea3-8b0b-6831a19f0f0b","testStepResult":{"duration":{"seconds":0,"nanos":92582},"status":"FAILED","message":"Error: Payload file not found: \/Users\/paschal\/personal\/k6-cucumber-steps\/payloads\/login.json\n at CustomWorld.<anonymous> (\/Users\/paschal\/personal\/k6-cucumber-steps\/step_definitions\/load_test_steps.js:270:13)","exception":{"type":"Error","message":"Payload file not found: \/Users\/paschal\/personal\/k6-cucumber-steps\/payloads\/login.json","stackTrace":" at CustomWorld.<anonymous> (\/Users\/paschal\/personal\/k6-cucumber-steps\/step_definitions\/load_test_steps.js:270:13)"}},"timestamp":{"seconds":1750840270,"nanos":704000000}}},{"testStepStarted":{"testCaseStartedId":"0d1f2486-4f40-45f0-8302-8a62ffacdbe4","testStepId":"e0dcb6f0-5774-4f05-98b4-394147fd0ac3","timestamp":{"seconds":1750840270,"nanos":704000000}}},{"testStepFinished":{"testCaseStartedId":"0d1f2486-4f40-45f0-8302-8a62ffacdbe4","testStepId":"e0dcb6f0-5774-4f05-98b4-394147fd0ac3","testStepResult":{"status":"SKIPPED","duration":{"seconds":0,"nanos":0}},"timestamp":{"seconds":1750840270,"nanos":704000000}}},{"testStepStarted":{"testCaseStartedId":"0d1f2486-4f40-45f0-8302-8a62ffacdbe4","testStepId":"64e8e8c4-cc0b-40b2-b0b9-2d8e2c24c260","timestamp":{"seconds":1750840270,"nanos":704000000}}},{"testStepFinished":{"testCaseStartedId":"0d1f2486-4f40-45f0-8302-8a62ffacdbe4","testStepId":"64e8e8c4-cc0b-40b2-b0b9-2d8e2c24c260","testStepResult":{"status":"SKIPPED","duration":{"seconds":0,"nanos":0}},"timestamp":{"seconds":1750840270,"nanos":704000000}}},{"testStepStarted":{"testCaseStartedId":"0d1f2486-4f40-45f0-8302-8a62ffacdbe4","testStepId":"4991b36e-c565-4c03-b3ac-3392c41fc21d","timestamp":{"seconds":1750840270,"nanos":704000000}}},{"testStepFinished":{"testCaseStartedId":"0d1f2486-4f40-45f0-8302-8a62ffacdbe4","testStepId":"4991b36e-c565-4c03-b3ac-3392c41fc21d","testStepResult":{"status":"SKIPPED","duration":{"seconds":0,"nanos":0}},"timestamp":{"seconds":1750840270,"nanos":704000000}}},{"testStepStarted":{"testCaseStartedId":"0d1f2486-4f40-45f0-8302-8a62ffacdbe4","testStepId":"d88aa119-7e53-4dee-a1f9-558082b02ebc","timestamp":{"seconds":1750840270,"nanos":704000000}}},{"testStepFinished":{"testCaseStartedId":"0d1f2486-4f40-45f0-8302-8a62ffacdbe4","testStepId":"d88aa119-7e53-4dee-a1f9-558082b02ebc","testStepResult":{"status":"SKIPPED","duration":{"seconds":0,"nanos":0}},"timestamp":{"seconds":1750840270,"nanos":704000000}}},{"testStepStarted":{"testCaseStartedId":"0d1f2486-4f40-45f0-8302-8a62ffacdbe4","testStepId":"3693030a-616d-4d94-beb0-7b90dde941dc","timestamp":{"seconds":1750840270,"nanos":704000000}}},{"testStepFinished":{"testCaseStartedId":"0d1f2486-4f40-45f0-8302-8a62ffacdbe4","testStepId":"3693030a-616d-4d94-beb0-7b90dde941dc","testStepResult":{"status":"SKIPPED","duration":{"seconds":0,"nanos":0}},"timestamp":{"seconds":1750840270,"nanos":704000000}}},{"testStepStarted":{"testCaseStartedId":"0d1f2486-4f40-45f0-8302-8a62ffacdbe4","testStepId":"6bae6ed1-1952-4c9a-91c1-f95526ba184f","timestamp":{"seconds":1750840270,"nanos":704000000}}},{"testStepFinished":{"testCaseStartedId":"0d1f2486-4f40-45f0-8302-8a62ffacdbe4","testStepId":"6bae6ed1-1952-4c9a-91c1-f95526ba184f","testStepResult":{"status":"SKIPPED","duration":{"seconds":0,"nanos":0}},"timestamp":{"seconds":1750840270,"nanos":704000000}}},{"testCaseFinished":{"testCaseStartedId":"0d1f2486-4f40-45f0-8302-8a62ffacdbe4","timestamp":{"seconds":1750840270,"nanos":704000000},"willBeRetried":false}},{"testRunFinished":{"testRunStartedId":"fe759f94-8b97-4456-ab63-1d834c12b3b0","timestamp":{"seconds":1750840270,"nanos":704000000},"success":false}}];
|
|
44
44
|
</script>
|
|
45
45
|
<script>
|
|
46
46
|
/*! For license information please see main.js.LICENSE.txt */
|