docs(loadtest): hold/stress профили и правила безопасности IFT. Refs EventHub/EventHubBack#31 [skip ci]

This commit is contained in:
2026-07-15 16:00:33 +03:00
parent c1ba207374
commit 823274caab
10 changed files with 807 additions and 61 deletions
+38 -38
View File
@@ -43,74 +43,74 @@
</setdynvars>
<request subst="true">
<match do="abort" when="nomatch">HTTP/[0-9.]+ 20</match>
<dyn_variable name="admin_token" re="&quot;token&quot;\s*:\s*&quot;([^&quot;]+)"/>
<match do="abort" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="https://admin-api.ift.eventhub.local/v1/admin/login" method="POST"
<http url="https://admin-api.ift.eventhub.local/v1/admin/login" version="1.1" method="POST"
content_type="application/json"
contents='{"email":"%%_admin_email%%","password":"%%_admin_password%%"}'/>
</request>
<thinktime min="1" max="2" random="true"/>
<request subst="true">
<match do="abort" when="nomatch">HTTP/[0-9.]+ 20</match>
<dyn_variable name="user_id" re="&quot;id&quot;\s*:\s*&quot;([^&quot;]+)"/>
<match do="abort" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="/v1/register" method="POST" content_type="application/json"
<http url="https://api.ift.eventhub.local/v1/register" version="1.1" method="POST" content_type="application/json"
contents='{"email":"lt_b_%%_rand_id%%@loadtest.local","password":"testpassword123"}'/>
</request>
<thinktime min="1" max="2" random="true"/>
<request subst="true">
<match do="abort" when="nomatch">HTTP/[0-9.]+ 20</match>
<dyn_variable name="vtoken" re="&quot;token&quot;\s*:\s*&quot;([^&quot;]+)"/>
<match do="abort" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="https://admin-api.ift.eventhub.local/v1/admin/users/%%_user_id%%/verification-token"
method="GET">
version="1.1" method="GET">
<http_header name="Authorization" value="Bearer %%_admin_token%%"/>
</http>
</request>
<thinktime value="1"/>
<request subst="true">
<match do="abort" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="/v1/verify" method="POST" content_type="application/json"
<match do="abort" when="nomatch">HTTP/[0-9.]+ 20</match>
<http url="https://api.ift.eventhub.local/v1/verify" version="1.1" method="POST" content_type="application/json"
contents='{"token":"%%_vtoken%%"}'/>
</request>
<thinktime value="1"/>
<request subst="true">
<match do="abort" when="nomatch">HTTP/[0-9.]+ 20</match>
<dyn_variable name="token" re="&quot;token&quot;\s*:\s*&quot;([^&quot;]+)"/>
<match do="abort" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="/v1/login" method="POST" content_type="application/json"
<http url="https://api.ift.eventhub.local/v1/login" version="1.1" method="POST" content_type="application/json"
contents='{"email":"lt_b_%%_rand_id%%@loadtest.local","password":"testpassword123"}'/>
</request>
<thinktime min="1" max="2" random="true"/>
<request subst="true">
<match do="abort" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="/v1/user/me" method="GET">
<match do="abort" when="nomatch">HTTP/[0-9.]+ 20</match>
<http url="https://api.ift.eventhub.local/v1/user/me" version="1.1" method="GET">
<http_header name="Authorization" value="Bearer %%_token%%"/>
</http>
</request>
<thinktime min="1" max="2" random="true"/>
<request subst="true">
<match do="abort" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="/v1/calendars" method="GET">
<match do="abort" when="nomatch">HTTP/[0-9.]+ 20</match>
<http url="https://api.ift.eventhub.local/v1/calendars" version="1.1" method="GET">
<http_header name="Authorization" value="Bearer %%_token%%"/>
</http>
</request>
<thinktime min="1" max="2" random="true"/>
<request subst="true">
<match do="log" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="/v1/search?q=lt" method="GET">
<match do="log" when="nomatch">HTTP/[0-9.]+ 20</match>
<http url="https://api.ift.eventhub.local/v1/search?q=lt" version="1.1" method="GET">
<http_header name="Authorization" value="Bearer %%_token%%"/>
</http>
</request>
<thinktime min="1" max="2" random="true"/>
<request subst="true">
<match do="log" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="/v1/user/bookings" method="GET">
<match do="log" when="nomatch">HTTP/[0-9.]+ 20</match>
<http url="https://api.ift.eventhub.local/v1/user/bookings" version="1.1" method="GET">
<http_header name="Authorization" value="Bearer %%_token%%"/>
</http>
</request>
@@ -132,51 +132,51 @@
</setdynvars>
<request subst="true">
<match do="abort" when="nomatch">HTTP/[0-9.]+ 20</match>
<dyn_variable name="admin_token" re="&quot;token&quot;\s*:\s*&quot;([^&quot;]+)"/>
<match do="abort" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="https://admin-api.ift.eventhub.local/v1/admin/login" method="POST"
<http url="https://admin-api.ift.eventhub.local/v1/admin/login" version="1.1" method="POST"
content_type="application/json"
contents='{"email":"%%_admin_email%%","password":"%%_admin_password%%"}'/>
</request>
<thinktime min="1" max="2" random="true"/>
<request subst="true">
<match do="abort" when="nomatch">HTTP/[0-9.]+ 20</match>
<dyn_variable name="user_id" re="&quot;id&quot;\s*:\s*&quot;([^&quot;]+)"/>
<match do="abort" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="/v1/register" method="POST" content_type="application/json"
<http url="https://api.ift.eventhub.local/v1/register" version="1.1" method="POST" content_type="application/json"
contents='{"email":"lt_c_%%_rand_id%%@loadtest.local","password":"testpassword123"}'/>
</request>
<thinktime min="1" max="2" random="true"/>
<request subst="true">
<match do="abort" when="nomatch">HTTP/[0-9.]+ 20</match>
<dyn_variable name="vtoken" re="&quot;token&quot;\s*:\s*&quot;([^&quot;]+)"/>
<match do="abort" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="https://admin-api.ift.eventhub.local/v1/admin/users/%%_user_id%%/verification-token"
method="GET">
version="1.1" method="GET">
<http_header name="Authorization" value="Bearer %%_admin_token%%"/>
</http>
</request>
<thinktime value="1"/>
<request subst="true">
<match do="abort" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="/v1/verify" method="POST" content_type="application/json"
<match do="abort" when="nomatch">HTTP/[0-9.]+ 20</match>
<http url="https://api.ift.eventhub.local/v1/verify" version="1.1" method="POST" content_type="application/json"
contents='{"token":"%%_vtoken%%"}'/>
</request>
<thinktime value="1"/>
<request subst="true">
<match do="abort" when="nomatch">HTTP/[0-9.]+ 20</match>
<dyn_variable name="token" re="&quot;token&quot;\s*:\s*&quot;([^&quot;]+)"/>
<match do="abort" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="/v1/login" method="POST" content_type="application/json"
<http url="https://api.ift.eventhub.local/v1/login" version="1.1" method="POST" content_type="application/json"
contents='{"email":"lt_c_%%_rand_id%%@loadtest.local","password":"testpassword123"}'/>
</request>
<thinktime min="1" max="2" random="true"/>
<request subst="true">
<match do="abort" when="nomatch">HTTP/[0-9.]+ 20</match>
<dyn_variable name="calendar_id" re="&quot;id&quot;\s*:\s*&quot;([^&quot;]+)"/>
<match do="abort" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="/v1/calendars" method="POST" content_type="application/json"
<http url="https://api.ift.eventhub.local/v1/calendars" version="1.1" method="POST" content_type="application/json"
contents='{"title":"LT Cal %%_rand_id%%","confirmation":"auto","description":"loadtest"}'>
<http_header name="Authorization" value="Bearer %%_token%%"/>
</http>
@@ -184,17 +184,17 @@
<thinktime min="1" max="2" random="true"/>
<request subst="true">
<match do="log" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="/v1/calendars/%%_calendar_id%%" method="GET">
<match do="log" when="nomatch">HTTP/[0-9.]+ 20</match>
<http url="https://api.ift.eventhub.local/v1/calendars/%%_calendar_id%%" version="1.1" method="GET">
<http_header name="Authorization" value="Bearer %%_token%%"/>
</http>
</request>
<thinktime value="1"/>
<request subst="true">
<match do="abort" when="nomatch">HTTP/[0-9.]+ 20</match>
<dyn_variable name="event_id" re="&quot;id&quot;\s*:\s*&quot;([^&quot;]+)"/>
<match do="abort" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="/v1/calendars/%%_calendar_id%%/events" method="POST" content_type="application/json"
<http url="https://api.ift.eventhub.local/v1/calendars/%%_calendar_id%%/events" version="1.1" method="POST" content_type="application/json"
contents='{"title":"LT Ev %%_rand_id%%","start_time":"2031-07-%%_day%%T12:00:%%_sec%%Z","duration":45,"capacity":30}'>
<http_header name="Authorization" value="Bearer %%_token%%"/>
</http>
@@ -202,16 +202,16 @@
<thinktime min="1" max="2" random="true"/>
<request subst="true">
<match do="abort" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="/v1/events/%%_event_id%%" method="GET">
<match do="abort" when="nomatch">HTTP/[0-9.]+ 20</match>
<http url="https://api.ift.eventhub.local/v1/events/%%_event_id%%" version="1.1" method="GET">
<http_header name="Authorization" value="Bearer %%_token%%"/>
</http>
</request>
<thinktime value="1"/>
<request subst="true">
<match do="log" when="nomatch">HTTP/1.[0-1] 20</match>
<http url="/v1/calendars" method="GET">
<match do="log" when="nomatch">HTTP/[0-9.]+ 20</match>
<http url="https://api.ift.eventhub.local/v1/calendars" version="1.1" method="GET">
<http_header name="Authorization" value="Bearer %%_token%%"/>
</http>
</request>