k6-cucumber-steps
Version:
Cucumber step definitions for running k6 performance tests.
36 lines • 32.9 kB
HTML
<html lang="en" style="font-size:16px"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Global</title><!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]--><script src="scripts/third-party/hljs.js" defer="defer"></script><script src="scripts/third-party/hljs-line-num.js" defer="defer"></script><script src="scripts/third-party/popper.js" defer="defer"></script><script src="scripts/third-party/tippy.js" defer="defer"></script><script src="scripts/third-party/tocbot.min.js"></script><script>var baseURL="/",locationPathname="";baseURL=(locationPathname=document.location.pathname).substr(0,locationPathname.lastIndexOf("/")+1)</script><link rel="stylesheet" href="styles/clean-jsdoc-theme.min.css"><svg aria-hidden="true" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="display:none"><defs><symbol id="copy-icon" viewbox="0 0 488.3 488.3"><g><path d="M314.25,85.4h-227c-21.3,0-38.6,17.3-38.6,38.6v325.7c0,21.3,17.3,38.6,38.6,38.6h227c21.3,0,38.6-17.3,38.6-38.6V124 C352.75,102.7,335.45,85.4,314.25,85.4z M325.75,449.6c0,6.4-5.2,11.6-11.6,11.6h-227c-6.4,0-11.6-5.2-11.6-11.6V124 c0-6.4,5.2-11.6,11.6-11.6h227c6.4,0,11.6,5.2,11.6,11.6V449.6z"/><path d="M401.05,0h-227c-21.3,0-38.6,17.3-38.6,38.6c0,7.5,6,13.5,13.5,13.5s13.5-6,13.5-13.5c0-6.4,5.2-11.6,11.6-11.6h227 c6.4,0,11.6,5.2,11.6,11.6v325.7c0,6.4-5.2,11.6-11.6,11.6c-7.5,0-13.5,6-13.5,13.5s6,13.5,13.5,13.5c21.3,0,38.6-17.3,38.6-38.6 V38.6C439.65,17.3,422.35,0,401.05,0z"/></g></symbol><symbol id="search-icon" viewBox="0 0 512 512"><g><g><path d="M225.474,0C101.151,0,0,101.151,0,225.474c0,124.33,101.151,225.474,225.474,225.474 c124.33,0,225.474-101.144,225.474-225.474C450.948,101.151,349.804,0,225.474,0z M225.474,409.323 c-101.373,0-183.848-82.475-183.848-183.848S124.101,41.626,225.474,41.626s183.848,82.475,183.848,183.848 S326.847,409.323,225.474,409.323z"/></g></g><g><g><path d="M505.902,476.472L386.574,357.144c-8.131-8.131-21.299-8.131-29.43,0c-8.131,8.124-8.131,21.306,0,29.43l119.328,119.328 c4.065,4.065,9.387,6.098,14.715,6.098c5.321,0,10.649-2.033,14.715-6.098C514.033,497.778,514.033,484.596,505.902,476.472z"/></g></g></symbol><symbol id="font-size-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11.246 15H4.754l-2 5H.6L7 4h2l6.4 16h-2.154l-2-5zm-.8-2L8 6.885 5.554 13h4.892zM21 12.535V12h2v8h-2v-.535a4 4 0 1 1 0-6.93zM19 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4z"/></symbol><symbol id="add-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M11 11V5h2v6h6v2h-6v6h-2v-6H5v-2z"/></symbol><symbol id="minus-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M5 11h14v2H5z"/></symbol><symbol id="dark-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M10 7a7 7 0 0 0 12 4.9v.1c0 5.523-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2h.1A6.979 6.979 0 0 0 10 7zm-6 5a8 8 0 0 0 15.062 3.762A9 9 0 0 1 8.238 4.938 7.999 7.999 0 0 0 4 12z"/></symbol><symbol id="light-theme-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 18a6 6 0 1 1 0-12 6 6 0 0 1 0 12zm0-2a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM11 1h2v3h-2V1zm0 19h2v3h-2v-3zM3.515 4.929l1.414-1.414L7.05 5.636 5.636 7.05 3.515 4.93zM16.95 18.364l1.414-1.414 2.121 2.121-1.414 1.414-2.121-2.121zm2.121-14.85l1.414 1.415-2.121 2.121-1.414-1.414 2.121-2.121zM5.636 16.95l1.414 1.414-2.121 2.121-1.414-1.414 2.121-2.121zM23 11v2h-3v-2h3zM4 11v2H1v-2h3z"/></symbol><symbol id="reset-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M18.537 19.567A9.961 9.961 0 0 1 12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10c0 2.136-.67 4.116-1.81 5.74L17 12h3a8 8 0 1 0-2.46 5.772l.997 1.795z"/></symbol><symbol id="down-icon" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.7803 6.21967C13.0732 6.51256 13.0732 6.98744 12.7803 7.28033L8.53033 11.5303C8.23744 11.8232 7.76256 11.8232 7.46967 11.5303L3.21967 7.28033C2.92678 6.98744 2.92678 6.51256 3.21967 6.21967C3.51256 5.92678 3.98744 5.92678 4.28033 6.21967L8 9.93934L11.7197 6.21967C12.0126 5.92678 12.4874 5.92678 12.7803 6.21967Z"></path></symbol><symbol id="codepen-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M16.5 13.202L13 15.535v3.596L19.197 15 16.5 13.202zM14.697 12L12 10.202 9.303 12 12 13.798 14.697 12zM20 10.869L18.303 12 20 13.131V10.87zM19.197 9L13 4.869v3.596l3.5 2.333L19.197 9zM7.5 10.798L11 8.465V4.869L4.803 9 7.5 10.798zM4.803 15L11 19.131v-3.596l-3.5-2.333L4.803 15zM4 13.131L5.697 12 4 10.869v2.262zM2 9a1 1 0 0 1 .445-.832l9-6a1 1 0 0 1 1.11 0l9 6A1 1 0 0 1 22 9v6a1 1 0 0 1-.445.832l-9 6a1 1 0 0 1-1.11 0l-9-6A1 1 0 0 1 2 15V9z"/></symbol><symbol id="close-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M12 10.586l4.95-4.95 1.414 1.414-4.95 4.95 4.95 4.95-1.414 1.414-4.95-4.95-4.95 4.95-1.414-1.414 4.95-4.95-4.95-4.95L7.05 5.636z"/></symbol><symbol id="menu-icon" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0z"/><path d="M3 4h18v2H3V4zm0 7h18v2H3v-2zm0 7h18v2H3v-2z"/></symbol></defs></svg></head><body data-theme="dark"><div class="sidebar-container"><div class="sidebar" id="sidebar"><div class="sidebar-items-container"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#CustomWorld">CustomWorld</a></div><div class="sidebar-section-children"><a href="global.html#Given_I_set_k6_script_for_method_testing">Given_I_set_k6_script_for_method_testing</a></div><div class="sidebar-section-children"><a href="global.html#K6Config">K6Config</a></div><div class="sidebar-section-children"><a href="global.html#Then_I_store_value_as_alias">Then_I_store_value_as_alias</a></div><div class="sidebar-section-children"><a href="global.html#When_I_login_via_POST_with_payload_from_file">When_I_login_via_POST_with_payload_from_file</a></div><div class="sidebar-section-children"><a href="global.html#When_I_set_authentication_type">When_I_set_authentication_type</a></div><div class="sidebar-section-children"><a href="global.html#When_I_set_endpoints_used">When_I_set_endpoints_used</a></div><div class="sidebar-section-children"><a href="global.html#When_I_set_k6_script_configurations">When_I_set_k6_script_configurations</a></div><div class="sidebar-section-children"><a href="global.html#When_I_set_method_body_for_endpoint">When_I_set_method_body_for_endpoint</a></div><div class="sidebar-section-children"><a href="global.html#When_I_set_request_headers">When_I_set_request_headers</a></div><div class="sidebar-section-children"><a href="global.html#When_I_use_JSON_payload_from_file_for_method_to_endpoint">When_I_use_JSON_payload_from_file_for_method_to_endpoint</a></div></div></div></div></div><div class="navbar-container" id="VuAckcnZhf"><nav class="navbar"><div class="navbar-left-items"></div><div class="navbar-right-items"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div><nav></nav></nav></div><div class="toc-container"><div class="toc-content"><span class="bold">On this page</span><div id="eed4d2a0bfd64539bb9df78095dec881"></div></div></div><div class="body-wrapper"><div class="main-content"><div class="main-wrapper"><section><article><div class="container-overview"></div><h2 id="methods" class="subsection-title has-anchor">Methods</h2><h3 class="name has-anchor" id="Given_I_set_k6_script_for_method_testing"><span class="type-signature"></span>Given_I_set_k6_script_for_method_testing<span class="signature">(method)</span></h3><div class="description"><p>Initializes the k6 script configuration by setting the primary HTTP method for the load test.</p><pre class="prettyprint source lang-gherkin"><code>Given I set a k6 script for {word} testing
</code></pre></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>method</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The HTTP method (e.g., "GET", "POST", "PUT", "DELETE").</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="load_test_steps.js.html">load_test_steps.js</a>, <a href="load_test_steps.js.html#line63">line 63</a></li></ul></dd></div></dl><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Example</strong><div class="rel"><pre class="prettyprint"><code>Given I set a k6 script for GET testing
Given I set a k6 script for POST testing</code></pre></div></div><h3 class="name has-anchor" id="Then_I_store_value_as_alias"><span class="type-signature"></span>Then_I_store_value_as_alias<span class="signature">(jsonPath, alias)</span></h3><div class="description"><p>Stores a value from the last API response into the Cucumber World's aliases context.</p><pre class="prettyprint source lang-gherkin"><code>Then I store the value at "data.token" as alias "authToken"
</code></pre></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>jsonPath</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>A dot-separated JSON path to the value in the last response (e.g., "data.user.id").</p></td></tr><tr><td class="name"><code>alias</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The name of the alias to store the value under (e.g., "userId").</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="load_test_steps.js.html">load_test_steps.js</a>, <a href="load_test_steps.js.html#line440">line 440</a></li></ul></dd></div></dl><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Example</strong><div class="rel"><pre class="prettyprint"><code>Then I store the value at "token" as alias "accessToken"
Then I store the value at "user.profile.email" as alias "userEmail"</code></pre></div></div><h3 class="name has-anchor" id="When_I_login_via_POST_with_payload_from_file"><span class="type-signature"></span>When_I_login_via_POST_with_payload_from_file<span class="signature">(endpoint, fileName)</span></h3><div class="description"><p>Logs in via a POST request to a specified endpoint using a JSON payload from a file. The response data is stored for subsequent steps.</p><pre class="prettyprint source lang-gherkin"><code>When I login via POST to "/auth/login" with payload from "admin_credentials.json"
</code></pre></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>endpoint</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The API endpoint for the login request (relative to <code>BASE_URL</code>).</p></td></tr><tr><td class="name"><code>fileName</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The name of the JSON file containing login credentials.</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="load_test_steps.js.html">load_test_steps.js</a>, <a href="load_test_steps.js.html#line501">line 501</a></li></ul></dd></div></dl><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Example</strong><div class="rel"><pre class="prettyprint"><code>When I login via POST to "/api/login" with payload from "user_creds.json"</code></pre></div></div><h3 class="name has-anchor" id="When_I_set_authentication_type"><span class="type-signature"></span>When_I_set_authentication_type<span class="signature">(authType)</span></h3><div class="description"><p>Sets the authentication type for the k6 request, generating relevant headers.</p><pre class="prettyprint source lang-gherkin"><code>When I set the authentication type to "BearerToken"
</code></pre></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>authType</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The type of authentication (e.g., "BearerToken", "BasicAuth", "APIKey").</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="load_test_steps.js.html">load_test_steps.js</a>, <a href="load_test_steps.js.html#line406">line 406</a></li></ul></dd></div></dl><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Example</strong><div class="rel"><pre class="prettyprint"><code>When I set the authentication type to "BearerToken"</code></pre></div></div><h3 class="name has-anchor" id="When_I_set_endpoints_used"><span class="type-signature"></span>When_I_set_endpoints_used<span class="signature">(docString)</span></h3><div class="description"><p>Sets the list of endpoints to be used in the k6 script. These are typically used when the k6 script iterates over multiple URLs.</p><pre class="prettyprint source lang-gherkin"><code>When I set the following endpoints used:
/api/v1/users
/api/v1/products
/api/v1/orders
</code></pre></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>docString</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>A DocString containing a newline-separated list of endpoints.</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="load_test_steps.js.html">load_test_steps.js</a>, <a href="load_test_steps.js.html#line257">line 257</a></li></ul></dd></div></dl><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Example</strong><div class="rel"><pre class="prettyprint"><code>When I set the following endpoints used:
/health
/status
/metrics</code></pre></div></div><h3 class="name has-anchor" id="When_I_set_k6_script_configurations"><span class="type-signature"></span>When_I_set_k6_script_configurations<span class="signature">(dataTable)</span></h3><div class="description"><p>Configures the k6 script options (VUs, duration, stages, thresholds) from a data table.</p><pre class="prettyprint source lang-gherkin"><code>When I set to run the k6 script with the following configurations:
| virtual_users | duration | stages | http_req_failed | http_req_duration | error_rate |
| 10 | 30 | | p(99)<0.01 | p(99)<500 | rate<0.01 |
| | | [{"duration":"10s","target":10}] | p(90)<0.01 | p(90)<200 | rate<0.001 |
</code></pre></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>dataTable</code></td><td class="type"><span class="param-type">DataTable</span></td><td class="description last"><p>A Cucumber data table containing k6 configuration parameters. Expected columns: <code>virtual_users</code>, <code>duration</code>, <code>stages</code> (JSON string), <code>http_req_failed</code>, <code>http_req_duration</code>, <code>error_rate</code>.</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="load_test_steps.js.html">load_test_steps.js</a>, <a href="load_test_steps.js.html#line99">line 99</a></li></ul></dd></div></dl><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Example</strong><div class="rel"><pre class="prettyprint"><code>When I set to run the k6 script with the following configurations:
| virtual_users | duration | http_req_failed | http_req_duration |
| 50 | 60 | p(99)<0.01 | p(99)<1000 |
When I set to run the k6 script with the following configurations:
| stages | http_req_failed | http_req_duration | error_rate |
| [{"duration":"10s","target":10}, {"duration":"20s","target":50}] | p(99)<0.01 | p(99)<500 | rate<0.01 |</code></pre></div></div><h3 class="name has-anchor" id="When_I_set_method_body_for_endpoint"><span class="type-signature"></span>When_I_set_method_body_for_endpoint<span class="signature">(method, endpoint, docString)</span></h3><div class="description"><p>Sets the request body for a specific HTTP method and endpoint.</p><pre class="prettyprint source lang-gherkin"><code>When I set the following POST body is used for "/api/v1/create"
{ "name": "test", "email": "test@example.com" }
</code></pre></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>method</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The HTTP method (e.g., "POST", "PUT").</p></td></tr><tr><td class="name"><code>endpoint</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The specific endpoint URL for this body.</p></td></tr><tr><td class="name"><code>docString</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>A DocString containing the request body content (e.g., JSON).</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="load_test_steps.js.html">load_test_steps.js</a>, <a href="load_test_steps.js.html#line290">line 290</a></li></ul></dd></div></dl><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Example</strong><div class="rel"><pre class="prettyprint"><code>When I set the following PUT body is used for "/api/v1/update/1"
{ "status": "active" }</code></pre></div></div><h3 class="name has-anchor" id="When_I_set_request_headers"><span class="type-signature"></span>When_I_set_request_headers<span class="signature">(dataTable)</span></h3><div class="description"><p>Sets request headers for the k6 script. Headers are merged with any existing headers.</p><pre class="prettyprint source lang-gherkin"><code>When I set the request headers:
| Header | Value |
| Content-Type | application/json |
| Authorization | Bearer <my_token> |
</code></pre></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>dataTable</code></td><td class="type"><span class="param-type">DataTable</span></td><td class="description last"><p>A Cucumber data table with 'Header' and 'Value' columns.</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="load_test_steps.js.html">load_test_steps.js</a>, <a href="load_test_steps.js.html#line218">line 218</a></li></ul></dd></div></dl><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Example</strong><div class="rel"><pre class="prettyprint"><code>When I set the request headers:
| Header | Value |
| Content-Type | application/json |
| X-Custom-Header| MyValue |</code></pre></div></div><h3 class="name has-anchor" id="When_I_use_JSON_payload_from_file_for_method_to_endpoint"><span class="type-signature"></span>When_I_use_JSON_payload_from_file_for_method_to_endpoint<span class="signature">(fileName, method, endpoint)</span></h3><div class="description"><p>Loads a JSON payload from a file to be used as the request body for a specific method and endpoint in the k6 script.</p><pre class="prettyprint source lang-gherkin"><code>When I use JSON payload from "user_create.json" for POST to "/api/v1/users"
</code></pre></div><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Parameters:</strong><table class="params"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>fileName</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The name of the JSON payload file (e.g., "user_data.json").</p></td></tr><tr><td class="name"><code>method</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The HTTP method (only "POST", "PUT", "PATCH" are supported for bodies).</p></td></tr><tr><td class="name"><code>endpoint</code></td><td class="type"><span class="param-type">string</span></td><td class="description last"><p>The specific endpoint URL.</p></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="load_test_steps.js.html">load_test_steps.js</a>, <a href="load_test_steps.js.html#line332">line 332</a></li></ul></dd></div></dl><div class="method-member-container flex flex-col w-100 overflow-auto mt-20"><strong>Example</strong><div class="rel"><pre class="prettyprint"><code>When I use JSON payload from "login_payload.json" for POST to "/auth/login"</code></pre></div></div><h2 id="type-definitions" class="subsection-title has-anchor">Type Definitions</h2><h3 class="name has-anchor" id="CustomWorld">CustomWorld</h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>config</code></td><td class="type"><span class="param-type">Object</span></td><td class="description last"></td></tr><tr><td class="name"><code>aliases</code></td><td class="type"><span class="param-type">Object</span></td><td class="description last"></td></tr><tr><td class="name"><code>lastResponse</code></td><td class="type"><span class="param-type">Object</span></td><td class="description last"></td></tr><tr><td class="name"><code>parameters</code></td><td class="type"><span class="param-type">Object</span></td><td class="description last"></td></tr><tr><td class="name"><code>log</code></td><td class="type"><span class="param-type">function</span></td><td class="description last"></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="load_test_steps.js.html">load_test_steps.js</a>, <a href="load_test_steps.js.html#line16">line 16</a></li></ul></dd></div></dl><h3 class="name has-anchor" id="K6Config">K6Config</h3><div class="member-item-container flex"><strong>Type:</strong><ul><li><span class="param-type">Object</span></li></ul></div><b class="subsection-title">Properties</b><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>method</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"></td><td class="description last"><p>HTTP method for the request (e.g., "GET", "POST").</p></td></tr><tr><td class="name"><code>endpoint</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"><optional><br></td><td class="description last"><p>The specific endpoint for a single request.</p></td></tr><tr><td class="name"><code>endpoints</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="description last"><p>An array of endpoints for multiple requests.</p></td></tr><tr><td class="name"><code>headers</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"><optional><br></td><td class="description last"><p>Request headers.</p></td></tr><tr><td class="name"><code>body</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"><optional><br></td><td class="description last"><p>Request body content.</p></td></tr><tr><td class="name"><code>options</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"></td><td class="description last"><p>k6 test options (vus, duration, stages, thresholds).</p><h6>Properties</h6><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>thresholds</code></td><td class="type"><span class="param-type">Object</span></td><td class="attributes"></td><td class="description last"><p>k6 metric thresholds.</p><h6>Properties</h6><div class="allow-overflow"><table class="props"><thead><tr><th>Name</th><th>Type</th><th>Attributes</th><th class="last">Description</th></tr></thead><tbody><tr><td class="name"><code>http_req_failed</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"></td><td class="description last"><p>Thresholds for failed HTTP requests.</p></td></tr><tr><td class="name"><code>http_req_duration</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"></td><td class="description last"><p>Thresholds for request duration.</p></td></tr><tr><td class="name"><code>error_rate</code></td><td class="type"><span class="param-type">Array.<string></span></td><td class="attributes"><optional><br></td><td class="description last"><p>Optional threshold for error rate.</p></td></tr></tbody></table></div></td></tr><tr><td class="name"><code>vus</code></td><td class="type"><span class="param-type">number</span></td><td class="attributes"><optional><br></td><td class="description last"><p>Number of virtual users (for open model).</p></td></tr><tr><td class="name"><code>duration</code></td><td class="type"><span class="param-type">string</span></td><td class="attributes"><optional><br></td><td class="description last"><p>Test duration (for open model, e.g., "30s").</p></td></tr><tr><td class="name"><code>stages</code></td><td class="type"><span class="param-type">Array.<Object></span></td><td class="attributes"><optional><br></td><td class="description last"><p>Array of stages for a stepped load model.</p></td></tr></tbody></table></div></td></tr></tbody></table></div><dl class="details"><div class="details-item-container"><dt class="tag-source bold">Source</dt><dd class="tag-source"><ul><li><a href="load_test_steps.js.html">load_test_steps.js</a>, <a href="load_test_steps.js.html#line25">line 25</a></li></ul></dd></div></dl></article></section></div></div></div><div class="search-container" id="PkfLWpAbet" style="display:none"><div class="wrapper" id="iCxFxjkHbP"><button class="icon-button search-close-button" id="VjLlGakifb" aria-label="close search"><svg><use xlink:href="#close-icon"></use></svg></button><div class="search-box-c"><svg><use xlink:href="#search-icon"></use></svg> <input type="text" id="vpcKVYIppa" class="search-input" placeholder="Search..." autofocus></div><div class="search-result-c" id="fWwVHRuDuN"><span class="search-result-c-text">Type anything to view search result</span></div></div></div><div class="mobile-menu-icon-container"><button class="icon-button" id="mobile-menu" data-isopen="false" aria-label="menu"><svg><use xlink:href="#menu-icon"></use></svg></button></div><div id="mobile-sidebar" class="mobile-sidebar-container"><div class="mobile-sidebar-wrapper"><div class="mobile-nav-links"></div><div class="mobile-sidebar-items-c"><div class="sidebar-section-title with-arrow" data-isopen="false" id="sidebar-global"><div>Global</div><svg><use xlink:href="#down-icon"></use></svg></div><div class="sidebar-section-children-container"><div class="sidebar-section-children"><a href="global.html#CustomWorld">CustomWorld</a></div><div class="sidebar-section-children"><a href="global.html#Given_I_set_k6_script_for_method_testing">Given_I_set_k6_script_for_method_testing</a></div><div class="sidebar-section-children"><a href="global.html#K6Config">K6Config</a></div><div class="sidebar-section-children"><a href="global.html#Then_I_store_value_as_alias">Then_I_store_value_as_alias</a></div><div class="sidebar-section-children"><a href="global.html#When_I_login_via_POST_with_payload_from_file">When_I_login_via_POST_with_payload_from_file</a></div><div class="sidebar-section-children"><a href="global.html#When_I_set_authentication_type">When_I_set_authentication_type</a></div><div class="sidebar-section-children"><a href="global.html#When_I_set_endpoints_used">When_I_set_endpoints_used</a></div><div class="sidebar-section-children"><a href="global.html#When_I_set_k6_script_configurations">When_I_set_k6_script_configurations</a></div><div class="sidebar-section-children"><a href="global.html#When_I_set_method_body_for_endpoint">When_I_set_method_body_for_endpoint</a></div><div class="sidebar-section-children"><a href="global.html#When_I_set_request_headers">When_I_set_request_headers</a></div><div class="sidebar-section-children"><a href="global.html#When_I_use_JSON_payload_from_file_for_method_to_endpoint">When_I_use_JSON_payload_from_file_for_method_to_endpoint</a></div></div></div><div class="mobile-navbar-actions"><div class="navbar-right-item"><button class="icon-button search-button" aria-label="open-search"><svg><use xlink:href="#search-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button theme-toggle" aria-label="toggle-theme"><svg><use class="theme-svg-use" xlink:href="#light-theme-icon"></use></svg></button></div><div class="navbar-right-item"><button class="icon-button font-size" aria-label="change-font-size"><svg><use xlink:href="#font-size-icon"></use></svg></button></div></div></div></div><script type="text/javascript" src="scripts/core.min.js"></script><script src="scripts/search.min.js" defer="defer"></script><script src="scripts/third-party/fuse.js" defer="defer"></script><script type="text/javascript">var tocbotInstance=tocbot.init({tocSelector:"#eed4d2a0bfd64539bb9df78095dec881",contentSelector:".main-content",headingSelector:"h1, h2, h3",hasInnerContainers:!0,scrollContainer:".main-content",headingsOffset:130,onClick:bringLinkToView})</script></body></html>