k6-cucumber-steps 1.0.18 → 1.0.20

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "k6-cucumber-steps",
3
- "version": "1.0.18",
3
+ "version": "1.0.20",
4
4
  "main": "index.js",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -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 \/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}}];
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"}}},{"stepDefinition":{"id":"f27054a5-fe78-484b-a714-342e0b67aece","pattern":{"source":"I set a k6 script for {word} testing","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":21}}}},{"stepDefinition":{"id":"4da80a21-ad67-40cc-9558-a541a75c6405","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":25}}}},{"stepDefinition":{"id":"da5c035a-a857-4eaf-8795-7d12ef330787","pattern":{"source":"I set the request headers:","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":71}}}},{"stepDefinition":{"id":"8e5b884f-e1fa-4fda-b628-2f653f465d42","pattern":{"source":"I set the following endpoint\\(s) used:","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":83}}}},{"stepDefinition":{"id":"2c465282-7ba0-4c86-960f-783e55e77e98","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":90}}}},{"stepDefinition":{"id":"e87fc015-7de7-432a-b8c2-cfa93d98aa69","pattern":{"source":"I set the authentication type is {string}","type":"CUCUMBER_EXPRESSION"},"sourceReference":{"uri":"step_definitions\/load_test_steps.js","location":{"line":99}}}},{"stepDefinition":{"id":"f58e290e-a8b1-4992-8278-662efa27882b","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":103}}}},{"testRunStarted":{"id":"a14f0eb5-e1e1-4196-8b5b-665bdea98eb1","timestamp":{"seconds":1745793198,"nanos":679000000}}},{"testRunFinished":{"testRunStartedId":"a14f0eb5-e1e1-4196-8b5b-665bdea98eb1","timestamp":{"seconds":1745793198,"nanos":680000000},"success":true}}];
44
44
  </script>
45
45
  <script>
46
46
  /*! For license information please see main.js.LICENSE.txt */
@@ -1,233 +1 @@
1
- [
2
- {
3
- "description": "",
4
- "elements": [
5
- {
6
- "description": "",
7
- "id": "run-load-tests-with-dynamic-get-and-post-body-from-environment-variables-and-json-files;i-run-the-k6-script-for-load-testing-with-dynamic-get-requests",
8
- "keyword": "Scenario Outline",
9
- "line": 47,
10
- "name": "I run the k6 script for load testing with dynamic GET requests",
11
- "steps": [
12
- {
13
- "arguments": [],
14
- "keyword": "Given ",
15
- "line": 33,
16
- "name": "I have a k6 script for GET testing",
17
- "match": {
18
- "location": "step_definitions/load_test_steps.js:21"
19
- },
20
- "result": {
21
- "status": "passed",
22
- "duration": 676165
23
- }
24
- },
25
- {
26
- "arguments": [
27
- {
28
- "rows": [
29
- {
30
- "cells": [
31
- "virtual_users",
32
- "duration",
33
- "http_req_failed",
34
- "http_req_duration",
35
- "error_rate"
36
- ]
37
- },
38
- {
39
- "cells": [
40
- "10",
41
- "5",
42
- "rate<0.05",
43
- "p(95)<3000",
44
- "<error_rate>"
45
- ]
46
- }
47
- ]
48
- }
49
- ],
50
- "keyword": "When ",
51
- "line": 34,
52
- "name": "I run the k6 script with the following configurations:",
53
- "match": {
54
- "location": "step_definitions/load_test_steps.js:25"
55
- },
56
- "result": {
57
- "status": "passed",
58
- "duration": 277249
59
- }
60
- },
61
- {
62
- "arguments": [
63
- {
64
- "content": "/get?foo1=bar1&foo2=bar2\nhttps://postman-echo.com/get?foo1=bar1&foo2=bar2",
65
- "line": 38
66
- }
67
- ],
68
- "keyword": "And ",
69
- "line": 37,
70
- "name": "the following endpoint(s) is/are used:",
71
- "match": {
72
- "location": "step_definitions/load_test_steps.js:83"
73
- },
74
- "result": {
75
- "status": "passed",
76
- "duration": 52750
77
- }
78
- },
79
- {
80
- "arguments": [],
81
- "keyword": "When ",
82
- "line": 42,
83
- "name": "the authentication type is \"none\"",
84
- "match": {
85
- "location": "step_definitions/load_test_steps.js:99"
86
- },
87
- "result": {
88
- "status": "passed",
89
- "duration": 86542
90
- }
91
- },
92
- {
93
- "arguments": [],
94
- "keyword": "Then ",
95
- "line": 43,
96
- "name": "the API should handle the GET request successfully",
97
- "match": {
98
- "location": "step_definitions/load_test_steps.js:134"
99
- },
100
- "result": {
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)"
104
- }
105
- }
106
- ],
107
- "tags": [
108
- {
109
- "name": "@loadTest",
110
- "line": 31
111
- }
112
- ],
113
- "type": "scenario"
114
- },
115
- {
116
- "description": "",
117
- "id": "run-load-tests-with-dynamic-get-and-post-body-from-environment-variables-and-json-files;i-run-the-k6-script-for-load-testing-with-dynamic-get-requests",
118
- "keyword": "Scenario Outline",
119
- "line": 48,
120
- "name": "I run the k6 script for load testing with dynamic GET requests",
121
- "steps": [
122
- {
123
- "arguments": [],
124
- "keyword": "Given ",
125
- "line": 33,
126
- "name": "I have a k6 script for GET testing",
127
- "match": {
128
- "location": "step_definitions/load_test_steps.js:21"
129
- },
130
- "result": {
131
- "status": "passed",
132
- "duration": 56459
133
- }
134
- },
135
- {
136
- "arguments": [
137
- {
138
- "rows": [
139
- {
140
- "cells": [
141
- "virtual_users",
142
- "duration",
143
- "http_req_failed",
144
- "http_req_duration",
145
- "error_rate"
146
- ]
147
- },
148
- {
149
- "cells": [
150
- "50",
151
- "10",
152
- "rate<0.05",
153
- "p(95)<3000",
154
- "<error_rate>"
155
- ]
156
- }
157
- ]
158
- }
159
- ],
160
- "keyword": "When ",
161
- "line": 34,
162
- "name": "I run the k6 script with the following configurations:",
163
- "match": {
164
- "location": "step_definitions/load_test_steps.js:25"
165
- },
166
- "result": {
167
- "status": "passed",
168
- "duration": 42250
169
- }
170
- },
171
- {
172
- "arguments": [
173
- {
174
- "content": "/get?foo1=bar1&foo2=bar2\nhttps://postman-echo.com/get?foo1=bar1&foo2=bar2",
175
- "line": 38
176
- }
177
- ],
178
- "keyword": "And ",
179
- "line": 37,
180
- "name": "the following endpoint(s) is/are used:",
181
- "match": {
182
- "location": "step_definitions/load_test_steps.js:83"
183
- },
184
- "result": {
185
- "status": "passed",
186
- "duration": 24791
187
- }
188
- },
189
- {
190
- "arguments": [],
191
- "keyword": "When ",
192
- "line": 42,
193
- "name": "the authentication type is \"none\"",
194
- "match": {
195
- "location": "step_definitions/load_test_steps.js:99"
196
- },
197
- "result": {
198
- "status": "passed",
199
- "duration": 120874
200
- }
201
- },
202
- {
203
- "arguments": [],
204
- "keyword": "Then ",
205
- "line": 43,
206
- "name": "the API should handle the GET request successfully",
207
- "match": {
208
- "location": "step_definitions/load_test_steps.js:134"
209
- },
210
- "result": {
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)"
214
- }
215
- }
216
- ],
217
- "tags": [
218
- {
219
- "name": "@loadTest",
220
- "line": 31
221
- }
222
- ],
223
- "type": "scenario"
224
- }
225
- ],
226
- "id": "run-load-tests-with-dynamic-get-and-post-body-from-environment-variables-and-json-files",
227
- "line": 1,
228
- "keyword": "Feature",
229
- "name": "Run load tests with dynamic GET and POST body from environment variables and JSON files",
230
- "tags": [],
231
- "uri": "src/examples/features/loadTestTemplate.feature"
232
- }
233
- ]
1
+ []
@@ -57,7 +57,7 @@ declare function When(
57
57
  ) => void
58
58
  ): void;
59
59
  declare function When(
60
- pattern: "I set the following endpoint\\(s) used:",
60
+ pattern: "I set the following endpoints used:",
61
61
  implementation: (
62
62
  this: import("@cucumber/cucumber").World,
63
63
  docString: string
@@ -73,7 +73,7 @@ declare function When(
73
73
  ) => void
74
74
  ): void;
75
75
  declare function When(
76
- pattern: "I set the authentication type is {string}",
76
+ pattern: "I set the authentication type to {string}",
77
77
  implementation: (
78
78
  this: import("@cucumber/cucumber").World,
79
79
  authType: string
@@ -18,10 +18,24 @@ const validateThreshold = (threshold) => {
18
18
  }
19
19
  };
20
20
 
21
+ /**
22
+ * @param {string} method - HTTP method (e.g., GET, POST).
23
+ * @example
24
+ * Given I set a k6 script for GET testing
25
+ * Given I set a k6 script for POST testing
26
+ */
21
27
  Given("I set a k6 script for {word} testing", function (method) {
22
28
  this.config = { method: method.toUpperCase() };
23
29
  });
24
30
 
31
+ /**
32
+ * @param {DataTable} dataTable - Table with configurations.
33
+ * @example
34
+ * When I set to run the k6 script with the following configurations:
35
+ * | virtual_users | duration | http_req_failed | http_req_duration | error_rate | stages |
36
+ * | 10 | 5 | rate<0.05 | p(95)<200 | | |
37
+ * | 50 | 10 | | | rate<0.01 | [{"target": 10, "duration": "10s"}, {"target": 50, "duration": "30s"}] |
38
+ */
25
39
  When(
26
40
  "I set to run the k6 script with the following configurations:",
27
41
  function (dataTable) {
@@ -68,6 +82,15 @@ When(
68
82
  }
69
83
  }
70
84
  );
85
+
86
+ /**
87
+ * @param {DataTable} dataTable - Table with header and value for request headers.
88
+ * @example
89
+ * When I set the request headers:
90
+ * | Header | Value |
91
+ * | Content-Type | application/json |
92
+ * | Authorization | Bearer your_auth_token |
93
+ */
71
94
  When("I set the request headers:", function (dataTable) {
72
95
  const headers = {};
73
96
  dataTable.hashes().forEach(({ Header, Value }) => {
@@ -80,13 +103,35 @@ When("I set the request headers:", function (dataTable) {
80
103
  };
81
104
  });
82
105
 
83
- When("I set the following endpoint\\(s) used:", function (docString) {
106
+ /**
107
+ * @param {string} docString - Multiline string containing the endpoints.
108
+ * @example
109
+ * When I set the following endpoints used:
110
+ * """
111
+ * /api/users
112
+ * /api/products
113
+ * """
114
+ */
115
+ When("I set the following endpoints used:", function (docString) {
84
116
  this.config.endpoints = docString
85
117
  .trim()
86
118
  .split("\n")
87
119
  .map((line) => line.trim());
88
120
  });
89
121
 
122
+ /**
123
+ * @param {string} method - HTTP method (e.g., POST, PUT).
124
+ * @param {string} endpoint - The endpoint for the body.
125
+ * @param {string} docString - Multiline string containing the request body (can use placeholders).
126
+ * @example
127
+ * When I set the following POST body is used for "/api/users"
128
+ * """
129
+ * {
130
+ * "username": "{{username}}",
131
+ * "email": "{{faker.internet.email}}"
132
+ * }
133
+ * """
134
+ */
90
135
  When(
91
136
  "I set the following {word} body is used for {string}",
92
137
  function (method, endpoint, docString) {
@@ -96,10 +141,24 @@ When(
96
141
  }
97
142
  );
98
143
 
99
- When("I set the authentication type is {string}", function (authType) {
144
+ /**
145
+ * @param {string} authType - Authentication type (api_key, bearer_token, basic, none).
146
+ * @example
147
+ * When I set the authentication type to "bearer_token"
148
+ * When I set the authentication type to "api_key"
149
+ * When I set the authentication type to "basic"
150
+ * When I set the authentication type to "none"
151
+ */
152
+ When("I set the authentication type to {string}", function (authType) {
100
153
  this.config.headers = generateHeaders(authType, process.env);
101
154
  });
102
155
 
156
+ /**
157
+ * @param {string} method - HTTP method of the request.
158
+ * @example
159
+ * Then I see the API should handle the GET request successfully
160
+ * Then I see the API should handle the POST request successfully
161
+ */
103
162
  Then(
104
163
  "I see the API should handle the {word} request successfully",
105
164
  { timeout: 60000 },