@browserstack/mcp-server 1.5.0-beta.24 → 1.5.0-beta.25
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.
|
@@ -28,7 +28,21 @@
|
|
|
28
28
|
],
|
|
29
29
|
"responses": {
|
|
30
30
|
"200": {
|
|
31
|
-
"
|
|
31
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
32
|
+
"schema": {
|
|
33
|
+
"allOf": [
|
|
34
|
+
{
|
|
35
|
+
"$schema": "SuccessEnvelope"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"properties": {
|
|
39
|
+
"data": {
|
|
40
|
+
"$schema": "GetLoadTestPlatformStatusData"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
]
|
|
45
|
+
}
|
|
32
46
|
},
|
|
33
47
|
"400": {
|
|
34
48
|
"$response": "BadRequest"
|
|
@@ -51,7 +65,9 @@
|
|
|
51
65
|
{
|
|
52
66
|
"name": "limit",
|
|
53
67
|
"type": "integer",
|
|
54
|
-
"description": "Max items to return (1-100, default 50)."
|
|
68
|
+
"description": "Max items to return (1-100, default 50).",
|
|
69
|
+
"minimum": 1,
|
|
70
|
+
"maximum": 100
|
|
55
71
|
},
|
|
56
72
|
{
|
|
57
73
|
"name": "cursor",
|
|
@@ -85,7 +101,21 @@
|
|
|
85
101
|
],
|
|
86
102
|
"responses": {
|
|
87
103
|
"200": {
|
|
88
|
-
"
|
|
104
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
105
|
+
"schema": {
|
|
106
|
+
"allOf": [
|
|
107
|
+
{
|
|
108
|
+
"$schema": "SuccessEnvelope"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"properties": {
|
|
112
|
+
"data": {
|
|
113
|
+
"$schema": "ListLoadTestProjectsData"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
]
|
|
118
|
+
}
|
|
89
119
|
},
|
|
90
120
|
"400": {
|
|
91
121
|
"$response": "BadRequest"
|
|
@@ -117,7 +147,9 @@
|
|
|
117
147
|
{
|
|
118
148
|
"name": "limit",
|
|
119
149
|
"type": "integer",
|
|
120
|
-
"description": "Max items to return (1-100, default 50)."
|
|
150
|
+
"description": "Max items to return (1-100, default 50).",
|
|
151
|
+
"minimum": 1,
|
|
152
|
+
"maximum": 100
|
|
121
153
|
},
|
|
122
154
|
{
|
|
123
155
|
"name": "cursor",
|
|
@@ -158,7 +190,7 @@
|
|
|
158
190
|
{
|
|
159
191
|
"name": "updatedSince",
|
|
160
192
|
"type": "string",
|
|
161
|
-
"description": "ISO-8601 timestamp; only tests updated after it.",
|
|
193
|
+
"description": "ISO-8601 timestamp; only tests updated after it. ISO-8601 — a date (2026-09-12) or a date-time (2026-09-12T10:30:00Z).",
|
|
162
194
|
"example": "2026-08-01T00:00:00Z"
|
|
163
195
|
}
|
|
164
196
|
],
|
|
@@ -177,7 +209,21 @@
|
|
|
177
209
|
],
|
|
178
210
|
"responses": {
|
|
179
211
|
"200": {
|
|
180
|
-
"
|
|
212
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
213
|
+
"schema": {
|
|
214
|
+
"allOf": [
|
|
215
|
+
{
|
|
216
|
+
"$schema": "SuccessEnvelope"
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"properties": {
|
|
220
|
+
"data": {
|
|
221
|
+
"$schema": "ListLoadTestsData"
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
]
|
|
226
|
+
}
|
|
181
227
|
},
|
|
182
228
|
"400": {
|
|
183
229
|
"$response": "BadRequest"
|
|
@@ -205,19 +251,23 @@
|
|
|
205
251
|
{
|
|
206
252
|
"name": "name",
|
|
207
253
|
"type": "string",
|
|
208
|
-
"description": "Test name to search for (substring match, case-insensitive); required."
|
|
254
|
+
"description": "Test name to search for (substring match, case-insensitive); required.",
|
|
255
|
+
"example": "checkout"
|
|
209
256
|
},
|
|
210
257
|
{
|
|
211
258
|
"name": "limit",
|
|
212
259
|
"type": "integer",
|
|
213
|
-
"description": "Max items to return (1-100, default 50)."
|
|
260
|
+
"description": "Max items to return (1-100, default 50).",
|
|
261
|
+
"minimum": 1,
|
|
262
|
+
"maximum": 100
|
|
214
263
|
}
|
|
215
264
|
],
|
|
216
265
|
"intent": "Find a load test by name across ALL of the caller's projects — use this to resolve a named test to a testId without knowing which project it is in.",
|
|
217
266
|
"guidance": [
|
|
218
267
|
"Group-scoped: unlike listLoadTests it needs no projectId. Prefer it to resolve a named test in one call instead of paging every project.",
|
|
219
268
|
"Each row carries testId, projectId, name, testType and framework — disambiguate same-named tests in different projects by projectId.",
|
|
220
|
-
"Returns one row per test (its latest version); the numeric testId is what getLoadTest and startLoadTestRun need."
|
|
269
|
+
"Returns one row per test (its latest version); the numeric testId is what getLoadTest and startLoadTestRun need.",
|
|
270
|
+
"hasMore:true means more matches exist beyond the returned limit — there is NO cursor and no page 2; narrow the name query or raise limit to surface them (results are the top matches, not a paginated list)."
|
|
221
271
|
],
|
|
222
272
|
"returns": [
|
|
223
273
|
"tests",
|
|
@@ -225,7 +275,21 @@
|
|
|
225
275
|
],
|
|
226
276
|
"responses": {
|
|
227
277
|
"200": {
|
|
228
|
-
"
|
|
278
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
279
|
+
"schema": {
|
|
280
|
+
"allOf": [
|
|
281
|
+
{
|
|
282
|
+
"$schema": "SuccessEnvelope"
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
"properties": {
|
|
286
|
+
"data": {
|
|
287
|
+
"$schema": "SearchLoadTestsData"
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
]
|
|
292
|
+
}
|
|
229
293
|
},
|
|
230
294
|
"400": {
|
|
231
295
|
"$response": "BadRequest"
|
|
@@ -283,13 +347,14 @@
|
|
|
283
347
|
{
|
|
284
348
|
"name": "sinceIso",
|
|
285
349
|
"type": "string",
|
|
286
|
-
"description": "ISO-8601 lower bound.",
|
|
350
|
+
"description": "ISO-8601 lower bound. ISO-8601 — a date (2026-09-12) or a date-time (2026-09-12T10:30:00Z).",
|
|
287
351
|
"example": "2026-08-01T00:00:00Z"
|
|
288
352
|
},
|
|
289
353
|
{
|
|
290
354
|
"name": "untilIso",
|
|
291
355
|
"type": "string",
|
|
292
|
-
"description": "ISO-8601 upper bound."
|
|
356
|
+
"description": "ISO-8601 upper bound. ISO-8601 — a date (2026-09-12) or a date-time (2026-09-12T10:30:00Z).",
|
|
357
|
+
"example": "2026-09-12"
|
|
293
358
|
}
|
|
294
359
|
],
|
|
295
360
|
"intent": "Show how a project's load-test metrics trend across recent runs — use this for 'is performance getting better or worse across this project?'",
|
|
@@ -303,7 +368,21 @@
|
|
|
303
368
|
],
|
|
304
369
|
"responses": {
|
|
305
370
|
"200": {
|
|
306
|
-
"
|
|
371
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
372
|
+
"schema": {
|
|
373
|
+
"allOf": [
|
|
374
|
+
{
|
|
375
|
+
"$schema": "SuccessEnvelope"
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"properties": {
|
|
379
|
+
"data": {
|
|
380
|
+
"$schema": "GetLoadTestProjectTrendsData"
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
]
|
|
385
|
+
}
|
|
307
386
|
},
|
|
308
387
|
"400": {
|
|
309
388
|
"$response": "BadRequest"
|
|
@@ -336,7 +415,9 @@
|
|
|
336
415
|
{
|
|
337
416
|
"name": "limit",
|
|
338
417
|
"type": "integer",
|
|
339
|
-
"description": "Max items to return (1-100, default 50)."
|
|
418
|
+
"description": "Max items to return (1-100, default 50).",
|
|
419
|
+
"minimum": 1,
|
|
420
|
+
"maximum": 100
|
|
340
421
|
},
|
|
341
422
|
{
|
|
342
423
|
"name": "cursor",
|
|
@@ -371,13 +452,14 @@
|
|
|
371
452
|
{
|
|
372
453
|
"name": "sinceIso",
|
|
373
454
|
"type": "string",
|
|
374
|
-
"description": "ISO-8601 lower bound.",
|
|
455
|
+
"description": "ISO-8601 lower bound. ISO-8601 — a date (2026-09-12) or a date-time (2026-09-12T10:30:00Z).",
|
|
375
456
|
"example": "2026-08-01T00:00:00Z"
|
|
376
457
|
},
|
|
377
458
|
{
|
|
378
459
|
"name": "untilIso",
|
|
379
460
|
"type": "string",
|
|
380
|
-
"description": "ISO-8601 upper bound."
|
|
461
|
+
"description": "ISO-8601 upper bound. ISO-8601 — a date (2026-09-12) or a date-time (2026-09-12T10:30:00Z).",
|
|
462
|
+
"example": "2026-09-12"
|
|
381
463
|
},
|
|
382
464
|
{
|
|
383
465
|
"name": "hadSlaBreach",
|
|
@@ -390,7 +472,7 @@
|
|
|
390
472
|
"description": "Filter to runs carrying this tag (a run's own tags, or the tags it inherits from its test when it has none of its own)."
|
|
391
473
|
}
|
|
392
474
|
],
|
|
393
|
-
"intent": "List the execution history across every load test in a project — newest first, paginated. Use for 'what ran last week in this project?'
|
|
475
|
+
"intent": "List the execution history across every load test in a project — newest first, paginated. Use for 'what ran last week in this project?'.",
|
|
394
476
|
"guidance": [
|
|
395
477
|
"Returns run metadata only, not metrics — use getLoadTestRunReport for a run's KPIs.",
|
|
396
478
|
"Each run carries a tags array — its own run-level tags if set (via updateLoadTest with runId), otherwise the tags inherited from its test. Filter with the tag query param.",
|
|
@@ -405,7 +487,21 @@
|
|
|
405
487
|
],
|
|
406
488
|
"responses": {
|
|
407
489
|
"200": {
|
|
408
|
-
"
|
|
490
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
491
|
+
"schema": {
|
|
492
|
+
"allOf": [
|
|
493
|
+
{
|
|
494
|
+
"$schema": "SuccessEnvelope"
|
|
495
|
+
},
|
|
496
|
+
{
|
|
497
|
+
"properties": {
|
|
498
|
+
"data": {
|
|
499
|
+
"$schema": "ListProjectLoadTestRunsData"
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
]
|
|
504
|
+
}
|
|
409
505
|
},
|
|
410
506
|
"400": {
|
|
411
507
|
"$response": "BadRequest"
|
|
@@ -433,7 +529,9 @@
|
|
|
433
529
|
{
|
|
434
530
|
"name": "limit",
|
|
435
531
|
"type": "integer",
|
|
436
|
-
"description": "Max items to return (1-200, default 50)."
|
|
532
|
+
"description": "Max items to return (1-200, default 50).",
|
|
533
|
+
"minimum": 1,
|
|
534
|
+
"maximum": 200
|
|
437
535
|
},
|
|
438
536
|
{
|
|
439
537
|
"name": "minElapsedSec",
|
|
@@ -468,7 +566,21 @@
|
|
|
468
566
|
],
|
|
469
567
|
"responses": {
|
|
470
568
|
"200": {
|
|
471
|
-
"
|
|
569
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
570
|
+
"schema": {
|
|
571
|
+
"allOf": [
|
|
572
|
+
{
|
|
573
|
+
"$schema": "SuccessEnvelope"
|
|
574
|
+
},
|
|
575
|
+
{
|
|
576
|
+
"properties": {
|
|
577
|
+
"data": {
|
|
578
|
+
"$schema": "ListActiveLoadTestRunsData"
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
]
|
|
583
|
+
}
|
|
472
584
|
},
|
|
473
585
|
"400": {
|
|
474
586
|
"$response": "BadRequest"
|
|
@@ -519,7 +631,21 @@
|
|
|
519
631
|
],
|
|
520
632
|
"responses": {
|
|
521
633
|
"200": {
|
|
522
|
-
"
|
|
634
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
635
|
+
"schema": {
|
|
636
|
+
"allOf": [
|
|
637
|
+
{
|
|
638
|
+
"$schema": "SuccessEnvelope"
|
|
639
|
+
},
|
|
640
|
+
{
|
|
641
|
+
"properties": {
|
|
642
|
+
"data": {
|
|
643
|
+
"$schema": "GetLoadTestRunStatusData"
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
]
|
|
648
|
+
}
|
|
523
649
|
},
|
|
524
650
|
"400": {
|
|
525
651
|
"$response": "BadRequest"
|
|
@@ -575,7 +701,21 @@
|
|
|
575
701
|
],
|
|
576
702
|
"responses": {
|
|
577
703
|
"200": {
|
|
578
|
-
"
|
|
704
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
705
|
+
"schema": {
|
|
706
|
+
"allOf": [
|
|
707
|
+
{
|
|
708
|
+
"$schema": "SuccessEnvelope"
|
|
709
|
+
},
|
|
710
|
+
{
|
|
711
|
+
"properties": {
|
|
712
|
+
"data": {
|
|
713
|
+
"$schema": "GetLoadTestInsightSummaryData"
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
]
|
|
718
|
+
}
|
|
579
719
|
},
|
|
580
720
|
"400": {
|
|
581
721
|
"$response": "BadRequest"
|
|
@@ -667,12 +807,14 @@
|
|
|
667
807
|
{
|
|
668
808
|
"name": "sinceIso",
|
|
669
809
|
"type": "string",
|
|
670
|
-
"description": "ISO-8601 lower bound; slices the report to data in this time window."
|
|
810
|
+
"description": "ISO-8601 lower bound; slices the report to data in this time window. ISO-8601 — a date (2026-09-12) or a date-time (2026-09-12T10:30:00Z).",
|
|
811
|
+
"example": "2026-09-12"
|
|
671
812
|
},
|
|
672
813
|
{
|
|
673
814
|
"name": "untilIso",
|
|
674
815
|
"type": "string",
|
|
675
|
-
"description": "ISO-8601 upper bound for the time-window slice."
|
|
816
|
+
"description": "ISO-8601 upper bound for the time-window slice. ISO-8601 — a date (2026-09-12) or a date-time (2026-09-12T10:30:00Z).",
|
|
817
|
+
"example": "2026-09-12"
|
|
676
818
|
}
|
|
677
819
|
],
|
|
678
820
|
"intent": "Get the full metrics report for a completed run — KPIs, SLA verdicts, per-transaction and error breakdowns. Use this to answer 'how did this run perform?'",
|
|
@@ -683,7 +825,8 @@
|
|
|
683
825
|
"metrics accepts dotted names or @ aliases; see getLoadTestMetricsManifest for what applies to this test type.",
|
|
684
826
|
"Answer a scoped question with the narrowest slice instead of the whole report: one metric → metrics=; error breakdown → errorCategory= (or slaOnly=true); a time window → sinceIso/untilIso; slowest transaction → detail=per-txn with groupBy=transaction and topN.",
|
|
685
827
|
"One call with the right params returns everything for that question — do not re-fetch the same run with the same params. Fetch the full report (view=full / detail=full) only when the user explicitly asks for the raw or complete report.",
|
|
686
|
-
"A plain 'summarize this run' / 'give me a summary' request is answered by getLoadTestInsightSummary, NOT this endpoint. Only call this when the user asks for specific KPIs, SLA verdicts, web vitals, transactions, or the raw/complete report."
|
|
828
|
+
"A plain 'summarize this run' / 'give me a summary' request is answered by getLoadTestInsightSummary, NOT this endpoint. Only call this when the user asks for specific KPIs, SLA verdicts, web vitals, transactions, or the raw/complete report.",
|
|
829
|
+
"durationSec is the run's wall-clock length in WHOLE SECONDS. When presenting it to the user, render it as minutes and seconds (e.g. 330 -> '5m 30s', 90 -> '1m 30s', 45 -> '45s'), not as a raw seconds count; keep the raw seconds only for calculations."
|
|
687
830
|
],
|
|
688
831
|
"returns": [
|
|
689
832
|
"runId",
|
|
@@ -699,7 +842,21 @@
|
|
|
699
842
|
],
|
|
700
843
|
"responses": {
|
|
701
844
|
"200": {
|
|
702
|
-
"
|
|
845
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
846
|
+
"schema": {
|
|
847
|
+
"allOf": [
|
|
848
|
+
{
|
|
849
|
+
"$schema": "SuccessEnvelope"
|
|
850
|
+
},
|
|
851
|
+
{
|
|
852
|
+
"properties": {
|
|
853
|
+
"data": {
|
|
854
|
+
"$schema": "GetLoadTestRunReportData"
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
}
|
|
858
|
+
]
|
|
859
|
+
}
|
|
703
860
|
},
|
|
704
861
|
"400": {
|
|
705
862
|
"$response": "BadRequest"
|
|
@@ -741,7 +898,21 @@
|
|
|
741
898
|
],
|
|
742
899
|
"responses": {
|
|
743
900
|
"200": {
|
|
744
|
-
"
|
|
901
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
902
|
+
"schema": {
|
|
903
|
+
"allOf": [
|
|
904
|
+
{
|
|
905
|
+
"$schema": "SuccessEnvelope"
|
|
906
|
+
},
|
|
907
|
+
{
|
|
908
|
+
"properties": {
|
|
909
|
+
"data": {
|
|
910
|
+
"$schema": "StopLoadTestRunData"
|
|
911
|
+
}
|
|
912
|
+
}
|
|
913
|
+
}
|
|
914
|
+
]
|
|
915
|
+
}
|
|
745
916
|
},
|
|
746
917
|
"400": {
|
|
747
918
|
"$response": "BadRequest"
|
|
@@ -775,7 +946,21 @@
|
|
|
775
946
|
],
|
|
776
947
|
"responses": {
|
|
777
948
|
"200": {
|
|
778
|
-
"
|
|
949
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
950
|
+
"schema": {
|
|
951
|
+
"allOf": [
|
|
952
|
+
{
|
|
953
|
+
"$schema": "SuccessEnvelope"
|
|
954
|
+
},
|
|
955
|
+
{
|
|
956
|
+
"properties": {
|
|
957
|
+
"data": {
|
|
958
|
+
"$schema": "GetLoadTestQuotaData"
|
|
959
|
+
}
|
|
960
|
+
}
|
|
961
|
+
}
|
|
962
|
+
]
|
|
963
|
+
}
|
|
779
964
|
},
|
|
780
965
|
"400": {
|
|
781
966
|
"$response": "BadRequest"
|
|
@@ -799,7 +984,8 @@
|
|
|
799
984
|
"name": "testId",
|
|
800
985
|
"type": "integer",
|
|
801
986
|
"required": true,
|
|
802
|
-
"description": "The test to price."
|
|
987
|
+
"description": "The test to price.",
|
|
988
|
+
"example": 1234
|
|
803
989
|
},
|
|
804
990
|
{
|
|
805
991
|
"name": "overrides",
|
|
@@ -836,7 +1022,21 @@
|
|
|
836
1022
|
],
|
|
837
1023
|
"responses": {
|
|
838
1024
|
"200": {
|
|
839
|
-
"
|
|
1025
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
1026
|
+
"schema": {
|
|
1027
|
+
"allOf": [
|
|
1028
|
+
{
|
|
1029
|
+
"$schema": "SuccessEnvelope"
|
|
1030
|
+
},
|
|
1031
|
+
{
|
|
1032
|
+
"properties": {
|
|
1033
|
+
"data": {
|
|
1034
|
+
"$schema": "EstimateLoadTestRunCostData"
|
|
1035
|
+
}
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1038
|
+
]
|
|
1039
|
+
}
|
|
840
1040
|
},
|
|
841
1041
|
"400": {
|
|
842
1042
|
"$response": "BadRequest"
|
|
@@ -860,13 +1060,17 @@
|
|
|
860
1060
|
"name": "baselineRunId",
|
|
861
1061
|
"type": "string",
|
|
862
1062
|
"required": true,
|
|
863
|
-
"description": "Run UUID to compare against."
|
|
1063
|
+
"description": "Run UUID to compare against.",
|
|
1064
|
+
"format": "uuid",
|
|
1065
|
+
"example": "6f1d2c9a-7b3e-4a10-9c22-0e5f8a1b2c3d"
|
|
864
1066
|
},
|
|
865
1067
|
{
|
|
866
1068
|
"name": "candidateRunId",
|
|
867
1069
|
"type": "string",
|
|
868
1070
|
"required": true,
|
|
869
|
-
"description": "Run UUID being evaluated; must differ from baselineRunId."
|
|
1071
|
+
"description": "Run UUID being evaluated; must differ from baselineRunId.",
|
|
1072
|
+
"format": "uuid",
|
|
1073
|
+
"example": "b2e4f6a8-1c3d-4e5f-8a90-2b4c6d8e0f11"
|
|
870
1074
|
},
|
|
871
1075
|
{
|
|
872
1076
|
"name": "dimensions",
|
|
@@ -881,12 +1085,18 @@
|
|
|
881
1085
|
{
|
|
882
1086
|
"name": "metrics",
|
|
883
1087
|
"type": "string",
|
|
884
|
-
"description": "Comma-separated dotted metric names or @ aliases (e.g.
|
|
1088
|
+
"description": "Comma-separated dotted metric names or @ aliases (e.g. latency.p95, @vitals). Filters kpiDeltas; the first entry with a per-transaction value also picks the transaction metric. Resolve valid names via getLoadTestMetricsManifest."
|
|
885
1089
|
},
|
|
886
1090
|
{
|
|
887
1091
|
"name": "groupBy",
|
|
888
1092
|
"type": "string",
|
|
889
|
-
"description": "
|
|
1093
|
+
"description": "Axis for transaction deltas (default transaction = request name).",
|
|
1094
|
+
"values": [
|
|
1095
|
+
"transaction",
|
|
1096
|
+
"label",
|
|
1097
|
+
"threadGroup",
|
|
1098
|
+
"scenario"
|
|
1099
|
+
]
|
|
890
1100
|
},
|
|
891
1101
|
{
|
|
892
1102
|
"name": "topN",
|
|
@@ -896,27 +1106,50 @@
|
|
|
896
1106
|
{
|
|
897
1107
|
"name": "regressedOnly",
|
|
898
1108
|
"type": "boolean",
|
|
899
|
-
"description": "Return only regressed rows."
|
|
1109
|
+
"description": "Return only regressed transaction rows."
|
|
900
1110
|
},
|
|
901
1111
|
{
|
|
902
1112
|
"name": "pctChangeMin",
|
|
903
1113
|
"type": "number",
|
|
904
|
-
"description": "Minimum percent change to
|
|
1114
|
+
"description": "Minimum absolute percent change for a KPI or transaction row to be included."
|
|
905
1115
|
}
|
|
906
1116
|
],
|
|
907
|
-
"intent": "Compare two
|
|
1117
|
+
"intent": "Compare two executions (runs) of the SAME load test and surface the deltas — the regression check ('did the latest run regress vs the previous one?'). Not for comparing different tests: runs of different tests are rejected (DIFFERENT_TESTS). For a trend across more than two runs use getLoadTestHistoricalTrends.",
|
|
908
1118
|
"guidance": [
|
|
909
|
-
"
|
|
910
|
-
"
|
|
911
|
-
"
|
|
1119
|
+
"Pick both runs from listLoadTestRuns for ONE testId, filtered to finished runs (status=terminal). The older run is the baseline, the newer the candidate.",
|
|
1120
|
+
"'Compare the latest run' means the latest finished run (candidate) vs the finished run before it (baseline).",
|
|
1121
|
+
"Both runs must be finished and must share the same test types — otherwise the call fails with VALIDATION_ERROR. Runs of different tests fail with DIFFERENT_TESTS; do not retry with other tests' runs.",
|
|
1122
|
+
"Use this to compare two runs — it returns per-KPI, per-transaction and SLA-verdict deltas from the same data as the Compare Runs page. Do not fetch both run reports and diff them yourself.",
|
|
1123
|
+
"pctChange is signed (candidate vs baseline); direction/regressed already account for whether higher or lower is better — report those, do not re-derive them. direction \"unknown\" (regressed null) means one or both runs have no value for that metric: report it as missing data, never as no change.",
|
|
1124
|
+
"Transaction deltas are computed on one metric: the first metrics entry that has a per-transaction value (latency.*, errors.rate, throughput.*), else latency.p95. groupBy picks the transaction axis.",
|
|
1125
|
+
"regressedOnly + pctChangeMin filter to material regressions; regressedOnly applies to transactionDeltas, pctChangeMin to kpiDeltas and transactionDeltas.",
|
|
1126
|
+
"Check warnings before reporting: they name metrics with no data on a run, runs whose SLA thresholds were not evaluated, SLA definitions that changed between the runs, and requested metrics compare cannot serve (e.g. engine.*). Surface any warning to the user."
|
|
912
1127
|
],
|
|
913
1128
|
"returns": [
|
|
1129
|
+
"baseline",
|
|
1130
|
+
"candidate",
|
|
914
1131
|
"kpiDeltas",
|
|
915
|
-
"transactionDeltas"
|
|
1132
|
+
"transactionDeltas",
|
|
1133
|
+
"slaVerdictChanges",
|
|
1134
|
+
"warnings"
|
|
916
1135
|
],
|
|
917
1136
|
"responses": {
|
|
918
1137
|
"200": {
|
|
919
|
-
"
|
|
1138
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
1139
|
+
"schema": {
|
|
1140
|
+
"allOf": [
|
|
1141
|
+
{
|
|
1142
|
+
"$schema": "SuccessEnvelope"
|
|
1143
|
+
},
|
|
1144
|
+
{
|
|
1145
|
+
"properties": {
|
|
1146
|
+
"data": {
|
|
1147
|
+
"$schema": "CompareLoadTestRunsData"
|
|
1148
|
+
}
|
|
1149
|
+
}
|
|
1150
|
+
}
|
|
1151
|
+
]
|
|
1152
|
+
}
|
|
920
1153
|
},
|
|
921
1154
|
"400": {
|
|
922
1155
|
"$response": "BadRequest"
|
|
@@ -924,6 +1157,9 @@
|
|
|
924
1157
|
"401": {
|
|
925
1158
|
"$response": "Unauthorized"
|
|
926
1159
|
},
|
|
1160
|
+
"404": {
|
|
1161
|
+
"$response": "NotFound"
|
|
1162
|
+
},
|
|
927
1163
|
"500": {
|
|
928
1164
|
"$response": "InternalServerError"
|
|
929
1165
|
}
|
|
@@ -941,7 +1177,8 @@
|
|
|
941
1177
|
"type": "string",
|
|
942
1178
|
"required": true,
|
|
943
1179
|
"maxLength": 255,
|
|
944
|
-
"description": "Test name. Max 255 characters — truncate before sending; a longer name is rejected with a 400."
|
|
1180
|
+
"description": "Test name. Max 255 characters — truncate before sending; a longer name is rejected with a 400.",
|
|
1181
|
+
"example": "checkout-baseline"
|
|
945
1182
|
},
|
|
946
1183
|
{
|
|
947
1184
|
"name": "testType",
|
|
@@ -1043,7 +1280,21 @@
|
|
|
1043
1280
|
],
|
|
1044
1281
|
"responses": {
|
|
1045
1282
|
"200": {
|
|
1046
|
-
"
|
|
1283
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
1284
|
+
"schema": {
|
|
1285
|
+
"allOf": [
|
|
1286
|
+
{
|
|
1287
|
+
"$schema": "SuccessEnvelope"
|
|
1288
|
+
},
|
|
1289
|
+
{
|
|
1290
|
+
"properties": {
|
|
1291
|
+
"data": {
|
|
1292
|
+
"$schema": "CreateLoadTestData"
|
|
1293
|
+
}
|
|
1294
|
+
}
|
|
1295
|
+
}
|
|
1296
|
+
]
|
|
1297
|
+
}
|
|
1047
1298
|
},
|
|
1048
1299
|
"400": {
|
|
1049
1300
|
"$response": "BadRequest"
|
|
@@ -1125,7 +1376,21 @@
|
|
|
1125
1376
|
],
|
|
1126
1377
|
"responses": {
|
|
1127
1378
|
"200": {
|
|
1128
|
-
"
|
|
1379
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
1380
|
+
"schema": {
|
|
1381
|
+
"allOf": [
|
|
1382
|
+
{
|
|
1383
|
+
"$schema": "SuccessEnvelope"
|
|
1384
|
+
},
|
|
1385
|
+
{
|
|
1386
|
+
"properties": {
|
|
1387
|
+
"data": {
|
|
1388
|
+
"$schema": "StartLoadTestRunData"
|
|
1389
|
+
}
|
|
1390
|
+
}
|
|
1391
|
+
}
|
|
1392
|
+
]
|
|
1393
|
+
}
|
|
1129
1394
|
},
|
|
1130
1395
|
"400": {
|
|
1131
1396
|
"$response": "BadRequest"
|
|
@@ -1158,7 +1423,9 @@
|
|
|
1158
1423
|
{
|
|
1159
1424
|
"name": "limit",
|
|
1160
1425
|
"type": "integer",
|
|
1161
|
-
"description": "Max items to return (1-100, default 50)."
|
|
1426
|
+
"description": "Max items to return (1-100, default 50).",
|
|
1427
|
+
"minimum": 1,
|
|
1428
|
+
"maximum": 100
|
|
1162
1429
|
},
|
|
1163
1430
|
{
|
|
1164
1431
|
"name": "cursor",
|
|
@@ -1178,12 +1445,14 @@
|
|
|
1178
1445
|
{
|
|
1179
1446
|
"name": "sinceIso",
|
|
1180
1447
|
"type": "string",
|
|
1181
|
-
"description": "ISO-8601 lower bound."
|
|
1448
|
+
"description": "ISO-8601 lower bound. ISO-8601 — a date (2026-09-12) or a date-time (2026-09-12T10:30:00Z).",
|
|
1449
|
+
"example": "2026-09-12"
|
|
1182
1450
|
},
|
|
1183
1451
|
{
|
|
1184
1452
|
"name": "untilIso",
|
|
1185
1453
|
"type": "string",
|
|
1186
|
-
"description": "ISO-8601 upper bound."
|
|
1454
|
+
"description": "ISO-8601 upper bound. ISO-8601 — a date (2026-09-12) or a date-time (2026-09-12T10:30:00Z).",
|
|
1455
|
+
"example": "2026-09-12"
|
|
1187
1456
|
},
|
|
1188
1457
|
{
|
|
1189
1458
|
"name": "verdict",
|
|
@@ -1222,7 +1491,21 @@
|
|
|
1222
1491
|
],
|
|
1223
1492
|
"responses": {
|
|
1224
1493
|
"200": {
|
|
1225
|
-
"
|
|
1494
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
1495
|
+
"schema": {
|
|
1496
|
+
"allOf": [
|
|
1497
|
+
{
|
|
1498
|
+
"$schema": "SuccessEnvelope"
|
|
1499
|
+
},
|
|
1500
|
+
{
|
|
1501
|
+
"properties": {
|
|
1502
|
+
"data": {
|
|
1503
|
+
"$schema": "ListLoadTestRunsData"
|
|
1504
|
+
}
|
|
1505
|
+
}
|
|
1506
|
+
}
|
|
1507
|
+
]
|
|
1508
|
+
}
|
|
1226
1509
|
},
|
|
1227
1510
|
"400": {
|
|
1228
1511
|
"$response": "BadRequest"
|
|
@@ -1285,12 +1568,14 @@
|
|
|
1285
1568
|
{
|
|
1286
1569
|
"name": "sinceIso",
|
|
1287
1570
|
"type": "string",
|
|
1288
|
-
"description": "ISO-8601 lower bound."
|
|
1571
|
+
"description": "ISO-8601 lower bound. ISO-8601 — a date (2026-09-12) or a date-time (2026-09-12T10:30:00Z).",
|
|
1572
|
+
"example": "2026-09-12"
|
|
1289
1573
|
},
|
|
1290
1574
|
{
|
|
1291
1575
|
"name": "untilIso",
|
|
1292
1576
|
"type": "string",
|
|
1293
|
-
"description": "ISO-8601 upper bound."
|
|
1577
|
+
"description": "ISO-8601 upper bound. ISO-8601 — a date (2026-09-12) or a date-time (2026-09-12T10:30:00Z).",
|
|
1578
|
+
"example": "2026-09-12"
|
|
1294
1579
|
}
|
|
1295
1580
|
],
|
|
1296
1581
|
"intent": "Show how one test's metrics trend across its recent runs — use this for 'is this test getting slower over time?'",
|
|
@@ -1304,7 +1589,21 @@
|
|
|
1304
1589
|
],
|
|
1305
1590
|
"responses": {
|
|
1306
1591
|
"200": {
|
|
1307
|
-
"
|
|
1592
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
1593
|
+
"schema": {
|
|
1594
|
+
"allOf": [
|
|
1595
|
+
{
|
|
1596
|
+
"$schema": "SuccessEnvelope"
|
|
1597
|
+
},
|
|
1598
|
+
{
|
|
1599
|
+
"properties": {
|
|
1600
|
+
"data": {
|
|
1601
|
+
"$schema": "GetLoadTestHistoricalTrendsData"
|
|
1602
|
+
}
|
|
1603
|
+
}
|
|
1604
|
+
}
|
|
1605
|
+
]
|
|
1606
|
+
}
|
|
1308
1607
|
},
|
|
1309
1608
|
"400": {
|
|
1310
1609
|
"$response": "BadRequest"
|
|
@@ -1345,7 +1644,21 @@
|
|
|
1345
1644
|
],
|
|
1346
1645
|
"responses": {
|
|
1347
1646
|
"200": {
|
|
1348
|
-
"
|
|
1647
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
1648
|
+
"schema": {
|
|
1649
|
+
"allOf": [
|
|
1650
|
+
{
|
|
1651
|
+
"$schema": "SuccessEnvelope"
|
|
1652
|
+
},
|
|
1653
|
+
{
|
|
1654
|
+
"properties": {
|
|
1655
|
+
"data": {
|
|
1656
|
+
"$schema": "GetLoadTestMetricsManifestData"
|
|
1657
|
+
}
|
|
1658
|
+
}
|
|
1659
|
+
}
|
|
1660
|
+
]
|
|
1661
|
+
}
|
|
1349
1662
|
},
|
|
1350
1663
|
"400": {
|
|
1351
1664
|
"$response": "BadRequest"
|
|
@@ -1388,7 +1701,8 @@
|
|
|
1388
1701
|
{
|
|
1389
1702
|
"name": "ifVersion",
|
|
1390
1703
|
"type": "string",
|
|
1391
|
-
"description": "Optimistic-concurrency guard (ISO timestamp of the version being edited)."
|
|
1704
|
+
"description": "Optimistic-concurrency guard (ISO timestamp of the version being edited).",
|
|
1705
|
+
"format": "date-time"
|
|
1392
1706
|
},
|
|
1393
1707
|
{
|
|
1394
1708
|
"name": "validationToken",
|
|
@@ -1424,7 +1738,8 @@
|
|
|
1424
1738
|
"config is a partial update, but each field it carries REPLACES that field wholesale — it does not merge. tags overwrites the entire tag set; it does not append. To add a tag to a test (or the same tag across several tests), getLoadTest each one first and send the union under config.tags.",
|
|
1425
1739
|
"To change the load profile, send config.loadProfile plus that profile's fields (see createLoadTest's load-profile guidance for the four shapes). Switching profiles clears the previous profile's fields — e.g. ramping→throughput empties the stages and drops iterations. iterations and throughput are PLU-only.",
|
|
1426
1740
|
"To tag a specific RUN rather than the test, pass runId (a run UUID from listLoadTestRuns) together with config.tags — the tags apply to that one run and the saved test is untouched. A run inherits the test's tags until you set its own; setting run tags overrides (they also replace wholesale, so send the union to add). Omit runId to tag the test itself.",
|
|
1427
|
-
"Tags live on the load test, not on its runs — there is no per-run tagging, so do not touch runs when asked to tag a test. To tag every test in a project, list them with listLoadTests and page through with cursor until hasMore is false, then updateLoadTest each one — do not stop after the first page or a subset."
|
|
1741
|
+
"Tags live on the load test, not on its runs — there is no per-run tagging, so do not touch runs when asked to tag a test. To tag every test in a project, list them with listLoadTests and page through with cursor until hasMore is false, then updateLoadTest each one — do not stop after the first page or a subset.",
|
|
1742
|
+
"Optimistic concurrency is opt-in: pass ifVersion (the version token from a prior get/create/update) so the edit fails with 409 CONFLICT if the test changed meanwhile; OMITTING ifVersion is a last-write-wins update that overwrites any concurrent change."
|
|
1428
1743
|
],
|
|
1429
1744
|
"returns": [
|
|
1430
1745
|
"testId",
|
|
@@ -1432,7 +1747,21 @@
|
|
|
1432
1747
|
],
|
|
1433
1748
|
"responses": {
|
|
1434
1749
|
"200": {
|
|
1435
|
-
"
|
|
1750
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
1751
|
+
"schema": {
|
|
1752
|
+
"allOf": [
|
|
1753
|
+
{
|
|
1754
|
+
"$schema": "SuccessEnvelope"
|
|
1755
|
+
},
|
|
1756
|
+
{
|
|
1757
|
+
"properties": {
|
|
1758
|
+
"data": {
|
|
1759
|
+
"$schema": "UpdateLoadTestData"
|
|
1760
|
+
}
|
|
1761
|
+
}
|
|
1762
|
+
}
|
|
1763
|
+
]
|
|
1764
|
+
}
|
|
1436
1765
|
},
|
|
1437
1766
|
"400": {
|
|
1438
1767
|
"$response": "BadRequest"
|
|
@@ -1494,7 +1823,21 @@
|
|
|
1494
1823
|
],
|
|
1495
1824
|
"responses": {
|
|
1496
1825
|
"200": {
|
|
1497
|
-
"
|
|
1826
|
+
"description": "Standard success envelope; operation data under `data`.",
|
|
1827
|
+
"schema": {
|
|
1828
|
+
"allOf": [
|
|
1829
|
+
{
|
|
1830
|
+
"$schema": "SuccessEnvelope"
|
|
1831
|
+
},
|
|
1832
|
+
{
|
|
1833
|
+
"properties": {
|
|
1834
|
+
"data": {
|
|
1835
|
+
"$schema": "GetLoadTestData"
|
|
1836
|
+
}
|
|
1837
|
+
}
|
|
1838
|
+
}
|
|
1839
|
+
]
|
|
1840
|
+
}
|
|
1498
1841
|
},
|
|
1499
1842
|
"400": {
|
|
1500
1843
|
"$response": "BadRequest"
|
|
@@ -1549,15 +1892,765 @@
|
|
|
1549
1892
|
"success",
|
|
1550
1893
|
"error"
|
|
1551
1894
|
]
|
|
1895
|
+
},
|
|
1896
|
+
"GetLoadTestPlatformStatusData": {
|
|
1897
|
+
"type": "object",
|
|
1898
|
+
"properties": {
|
|
1899
|
+
"platformState": {
|
|
1900
|
+
"type": "string"
|
|
1901
|
+
},
|
|
1902
|
+
"components": {
|
|
1903
|
+
"type": "array"
|
|
1904
|
+
},
|
|
1905
|
+
"checkedAt": {
|
|
1906
|
+
"type": "string",
|
|
1907
|
+
"format": "date-time"
|
|
1908
|
+
}
|
|
1909
|
+
}
|
|
1910
|
+
},
|
|
1911
|
+
"ListLoadTestProjectsData": {
|
|
1912
|
+
"type": "object",
|
|
1913
|
+
"properties": {
|
|
1914
|
+
"projects": {
|
|
1915
|
+
"type": "array",
|
|
1916
|
+
"items": {
|
|
1917
|
+
"type": "object",
|
|
1918
|
+
"properties": {
|
|
1919
|
+
"projectId": {
|
|
1920
|
+
"type": "integer"
|
|
1921
|
+
},
|
|
1922
|
+
"name": {
|
|
1923
|
+
"type": "string"
|
|
1924
|
+
},
|
|
1925
|
+
"testCount": {
|
|
1926
|
+
"type": "integer",
|
|
1927
|
+
"nullable": true
|
|
1928
|
+
},
|
|
1929
|
+
"lastActivityAt": {
|
|
1930
|
+
"type": "string",
|
|
1931
|
+
"nullable": true
|
|
1932
|
+
},
|
|
1933
|
+
"owner": {
|
|
1934
|
+
"type": "object",
|
|
1935
|
+
"properties": {
|
|
1936
|
+
"userId": {
|
|
1937
|
+
"type": "integer",
|
|
1938
|
+
"nullable": true
|
|
1939
|
+
},
|
|
1940
|
+
"email": {
|
|
1941
|
+
"type": "string",
|
|
1942
|
+
"nullable": true
|
|
1943
|
+
}
|
|
1944
|
+
}
|
|
1945
|
+
}
|
|
1946
|
+
}
|
|
1947
|
+
}
|
|
1948
|
+
},
|
|
1949
|
+
"hasMore": {
|
|
1950
|
+
"type": "boolean"
|
|
1951
|
+
},
|
|
1952
|
+
"nextCursor": {
|
|
1953
|
+
"type": "string"
|
|
1954
|
+
}
|
|
1955
|
+
}
|
|
1956
|
+
},
|
|
1957
|
+
"ListLoadTestsData": {
|
|
1958
|
+
"type": "object",
|
|
1959
|
+
"properties": {
|
|
1960
|
+
"tests": {
|
|
1961
|
+
"type": "array",
|
|
1962
|
+
"items": {
|
|
1963
|
+
"type": "object",
|
|
1964
|
+
"properties": {
|
|
1965
|
+
"testId": {
|
|
1966
|
+
"type": "integer"
|
|
1967
|
+
},
|
|
1968
|
+
"name": {
|
|
1969
|
+
"type": "string",
|
|
1970
|
+
"nullable": true
|
|
1971
|
+
},
|
|
1972
|
+
"testType": {
|
|
1973
|
+
"type": "string",
|
|
1974
|
+
"description": "plu (API), blu (Browser) or hybrid."
|
|
1975
|
+
},
|
|
1976
|
+
"framework": {
|
|
1977
|
+
"type": "string",
|
|
1978
|
+
"nullable": true
|
|
1979
|
+
},
|
|
1980
|
+
"tags": {
|
|
1981
|
+
"type": "array",
|
|
1982
|
+
"items": {
|
|
1983
|
+
"type": "string"
|
|
1984
|
+
}
|
|
1985
|
+
},
|
|
1986
|
+
"owner": {
|
|
1987
|
+
"type": "object",
|
|
1988
|
+
"properties": {
|
|
1989
|
+
"userId": {
|
|
1990
|
+
"type": "integer",
|
|
1991
|
+
"nullable": true
|
|
1992
|
+
},
|
|
1993
|
+
"email": {
|
|
1994
|
+
"type": "string",
|
|
1995
|
+
"nullable": true
|
|
1996
|
+
}
|
|
1997
|
+
}
|
|
1998
|
+
},
|
|
1999
|
+
"lastRun": {
|
|
2000
|
+
"type": "object",
|
|
2001
|
+
"description": "Most recent execution, when present.",
|
|
2002
|
+
"properties": {
|
|
2003
|
+
"runId": {
|
|
2004
|
+
"type": "string",
|
|
2005
|
+
"nullable": true
|
|
2006
|
+
},
|
|
2007
|
+
"status": {
|
|
2008
|
+
"type": "string",
|
|
2009
|
+
"nullable": true
|
|
2010
|
+
},
|
|
2011
|
+
"startedAt": {
|
|
2012
|
+
"type": "string",
|
|
2013
|
+
"nullable": true
|
|
2014
|
+
},
|
|
2015
|
+
"verdict": {
|
|
2016
|
+
"type": "string",
|
|
2017
|
+
"nullable": true
|
|
2018
|
+
}
|
|
2019
|
+
}
|
|
2020
|
+
}
|
|
2021
|
+
}
|
|
2022
|
+
}
|
|
2023
|
+
},
|
|
2024
|
+
"hasMore": {
|
|
2025
|
+
"type": "boolean"
|
|
2026
|
+
},
|
|
2027
|
+
"nextCursor": {
|
|
2028
|
+
"type": "string"
|
|
2029
|
+
}
|
|
2030
|
+
}
|
|
2031
|
+
},
|
|
2032
|
+
"SearchLoadTestsData": {
|
|
2033
|
+
"type": "object",
|
|
2034
|
+
"properties": {
|
|
2035
|
+
"tests": {
|
|
2036
|
+
"type": "array",
|
|
2037
|
+
"items": {
|
|
2038
|
+
"type": "object",
|
|
2039
|
+
"properties": {
|
|
2040
|
+
"testId": {
|
|
2041
|
+
"type": "integer"
|
|
2042
|
+
},
|
|
2043
|
+
"name": {
|
|
2044
|
+
"type": "string",
|
|
2045
|
+
"nullable": true
|
|
2046
|
+
},
|
|
2047
|
+
"projectId": {
|
|
2048
|
+
"type": "integer",
|
|
2049
|
+
"nullable": true
|
|
2050
|
+
},
|
|
2051
|
+
"testType": {
|
|
2052
|
+
"type": "string"
|
|
2053
|
+
},
|
|
2054
|
+
"framework": {
|
|
2055
|
+
"type": "string",
|
|
2056
|
+
"nullable": true
|
|
2057
|
+
}
|
|
2058
|
+
}
|
|
2059
|
+
}
|
|
2060
|
+
},
|
|
2061
|
+
"hasMore": {
|
|
2062
|
+
"type": "boolean"
|
|
2063
|
+
}
|
|
2064
|
+
}
|
|
2065
|
+
},
|
|
2066
|
+
"GetLoadTestProjectTrendsData": {
|
|
2067
|
+
"type": "object",
|
|
2068
|
+
"properties": {
|
|
2069
|
+
"metrics": {
|
|
2070
|
+
"description": "Trend series payload; shape per getLoadTestMetricsManifest."
|
|
2071
|
+
}
|
|
2072
|
+
}
|
|
2073
|
+
},
|
|
2074
|
+
"ListProjectLoadTestRunsData": {
|
|
2075
|
+
"type": "object",
|
|
2076
|
+
"properties": {
|
|
2077
|
+
"runs": {
|
|
2078
|
+
"type": "array",
|
|
2079
|
+
"items": {
|
|
2080
|
+
"type": "object",
|
|
2081
|
+
"properties": {
|
|
2082
|
+
"runId": {
|
|
2083
|
+
"type": "string"
|
|
2084
|
+
},
|
|
2085
|
+
"status": {
|
|
2086
|
+
"type": "string",
|
|
2087
|
+
"nullable": true
|
|
2088
|
+
},
|
|
2089
|
+
"startedAt": {
|
|
2090
|
+
"type": "string",
|
|
2091
|
+
"nullable": true
|
|
2092
|
+
},
|
|
2093
|
+
"durationSec": {
|
|
2094
|
+
"type": "integer",
|
|
2095
|
+
"nullable": true,
|
|
2096
|
+
"description": "Wall-clock seconds; null while running or when timestamps are missing."
|
|
2097
|
+
},
|
|
2098
|
+
"vus": {
|
|
2099
|
+
"type": "integer",
|
|
2100
|
+
"nullable": true
|
|
2101
|
+
},
|
|
2102
|
+
"verdict": {
|
|
2103
|
+
"type": "string",
|
|
2104
|
+
"nullable": true
|
|
2105
|
+
},
|
|
2106
|
+
"vuHours": {
|
|
2107
|
+
"type": "number",
|
|
2108
|
+
"nullable": true,
|
|
2109
|
+
"description": "Billed VU-hours; null until billed."
|
|
2110
|
+
},
|
|
2111
|
+
"tags": {
|
|
2112
|
+
"type": "array",
|
|
2113
|
+
"items": {
|
|
2114
|
+
"type": "string"
|
|
2115
|
+
},
|
|
2116
|
+
"description": "Run-level tags, or the tags inherited from the test when the run has none."
|
|
2117
|
+
}
|
|
2118
|
+
}
|
|
2119
|
+
}
|
|
2120
|
+
},
|
|
2121
|
+
"hasMore": {
|
|
2122
|
+
"type": "boolean"
|
|
2123
|
+
},
|
|
2124
|
+
"nextCursor": {
|
|
2125
|
+
"type": "string"
|
|
2126
|
+
}
|
|
2127
|
+
}
|
|
2128
|
+
},
|
|
2129
|
+
"ListActiveLoadTestRunsData": {
|
|
2130
|
+
"type": "object",
|
|
2131
|
+
"properties": {
|
|
2132
|
+
"runs": {
|
|
2133
|
+
"type": "array",
|
|
2134
|
+
"items": {
|
|
2135
|
+
"type": "object",
|
|
2136
|
+
"properties": {
|
|
2137
|
+
"runId": {
|
|
2138
|
+
"type": "string"
|
|
2139
|
+
},
|
|
2140
|
+
"testId": {
|
|
2141
|
+
"type": "integer",
|
|
2142
|
+
"nullable": true
|
|
2143
|
+
},
|
|
2144
|
+
"testName": {
|
|
2145
|
+
"type": "string",
|
|
2146
|
+
"nullable": true
|
|
2147
|
+
},
|
|
2148
|
+
"projectId": {
|
|
2149
|
+
"type": "integer",
|
|
2150
|
+
"nullable": true
|
|
2151
|
+
},
|
|
2152
|
+
"startedBy": {
|
|
2153
|
+
"type": "object",
|
|
2154
|
+
"properties": {
|
|
2155
|
+
"userId": {
|
|
2156
|
+
"type": "integer",
|
|
2157
|
+
"nullable": true
|
|
2158
|
+
},
|
|
2159
|
+
"email": {
|
|
2160
|
+
"type": "string",
|
|
2161
|
+
"nullable": true
|
|
2162
|
+
}
|
|
2163
|
+
}
|
|
2164
|
+
},
|
|
2165
|
+
"startedAt": {
|
|
2166
|
+
"type": "string",
|
|
2167
|
+
"nullable": true
|
|
2168
|
+
},
|
|
2169
|
+
"elapsedSec": {
|
|
2170
|
+
"type": "integer",
|
|
2171
|
+
"nullable": true
|
|
2172
|
+
},
|
|
2173
|
+
"vus": {
|
|
2174
|
+
"type": "integer",
|
|
2175
|
+
"nullable": true
|
|
2176
|
+
},
|
|
2177
|
+
"vuHoursBurnedSoFar": {
|
|
2178
|
+
"type": "number"
|
|
2179
|
+
},
|
|
2180
|
+
"status": {
|
|
2181
|
+
"type": "string",
|
|
2182
|
+
"nullable": true
|
|
2183
|
+
},
|
|
2184
|
+
"tags": {
|
|
2185
|
+
"type": "array",
|
|
2186
|
+
"items": {
|
|
2187
|
+
"type": "string"
|
|
2188
|
+
},
|
|
2189
|
+
"description": "Run-level tags, or the tags inherited from the test when the run has none."
|
|
2190
|
+
}
|
|
2191
|
+
}
|
|
2192
|
+
}
|
|
2193
|
+
}
|
|
2194
|
+
}
|
|
2195
|
+
},
|
|
2196
|
+
"GetLoadTestRunStatusData": {
|
|
2197
|
+
"type": "object",
|
|
2198
|
+
"properties": {
|
|
2199
|
+
"status": {
|
|
2200
|
+
"type": "string"
|
|
2201
|
+
},
|
|
2202
|
+
"elapsedSec": {
|
|
2203
|
+
"type": "number"
|
|
2204
|
+
},
|
|
2205
|
+
"remainingSec": {
|
|
2206
|
+
"type": "number"
|
|
2207
|
+
},
|
|
2208
|
+
"pollAfterSeconds": {
|
|
2209
|
+
"type": "number"
|
|
2210
|
+
},
|
|
2211
|
+
"slaBreachFlags": {
|
|
2212
|
+
"type": "array"
|
|
2213
|
+
}
|
|
2214
|
+
}
|
|
2215
|
+
},
|
|
2216
|
+
"GetLoadTestInsightSummaryData": {
|
|
2217
|
+
"type": "object",
|
|
2218
|
+
"properties": {
|
|
2219
|
+
"state": {
|
|
2220
|
+
"type": "string"
|
|
2221
|
+
},
|
|
2222
|
+
"status": {
|
|
2223
|
+
"type": "string"
|
|
2224
|
+
},
|
|
2225
|
+
"report": {
|
|
2226
|
+
"type": "object"
|
|
2227
|
+
}
|
|
2228
|
+
}
|
|
2229
|
+
},
|
|
2230
|
+
"GetLoadTestRunReportData": {
|
|
2231
|
+
"type": "object",
|
|
2232
|
+
"properties": {
|
|
2233
|
+
"runId": {
|
|
2234
|
+
"type": "string",
|
|
2235
|
+
"format": "uuid"
|
|
2236
|
+
},
|
|
2237
|
+
"testType": {
|
|
2238
|
+
"type": "string"
|
|
2239
|
+
},
|
|
2240
|
+
"status": {
|
|
2241
|
+
"type": "string"
|
|
2242
|
+
},
|
|
2243
|
+
"testName": {
|
|
2244
|
+
"type": "string"
|
|
2245
|
+
},
|
|
2246
|
+
"durationSec": {
|
|
2247
|
+
"type": "number",
|
|
2248
|
+
"description": "Run wall-clock duration in whole seconds. Present to the user as minutes + seconds (e.g. 5m 30s)."
|
|
2249
|
+
},
|
|
2250
|
+
"kpis": {
|
|
2251
|
+
"type": "object"
|
|
2252
|
+
},
|
|
2253
|
+
"slaVerdicts": {
|
|
2254
|
+
"type": "array"
|
|
2255
|
+
},
|
|
2256
|
+
"transactions": {
|
|
2257
|
+
"type": "array"
|
|
2258
|
+
},
|
|
2259
|
+
"errorsByCategory": {
|
|
2260
|
+
"type": "object"
|
|
2261
|
+
},
|
|
2262
|
+
"meta": {
|
|
2263
|
+
"type": "object"
|
|
2264
|
+
}
|
|
2265
|
+
}
|
|
2266
|
+
},
|
|
2267
|
+
"StopLoadTestRunData": {
|
|
2268
|
+
"type": "object",
|
|
2269
|
+
"properties": {
|
|
2270
|
+
"runId": {
|
|
2271
|
+
"type": "string",
|
|
2272
|
+
"format": "uuid"
|
|
2273
|
+
},
|
|
2274
|
+
"status": {
|
|
2275
|
+
"type": "string"
|
|
2276
|
+
},
|
|
2277
|
+
"stoppedAt": {
|
|
2278
|
+
"type": "string",
|
|
2279
|
+
"format": "date-time"
|
|
2280
|
+
}
|
|
2281
|
+
}
|
|
2282
|
+
},
|
|
2283
|
+
"GetLoadTestQuotaData": {
|
|
2284
|
+
"type": "object",
|
|
2285
|
+
"properties": {
|
|
2286
|
+
"plan": {
|
|
2287
|
+
"type": "object"
|
|
2288
|
+
},
|
|
2289
|
+
"vuHours": {
|
|
2290
|
+
"type": "object"
|
|
2291
|
+
},
|
|
2292
|
+
"concurrency": {
|
|
2293
|
+
"type": "object"
|
|
2294
|
+
}
|
|
2295
|
+
}
|
|
2296
|
+
},
|
|
2297
|
+
"EstimateLoadTestRunCostData": {
|
|
2298
|
+
"type": "object",
|
|
2299
|
+
"properties": {
|
|
2300
|
+
"estimatedVuHours": {
|
|
2301
|
+
"type": "number"
|
|
2302
|
+
},
|
|
2303
|
+
"estimationBasis": {
|
|
2304
|
+
"type": "string"
|
|
2305
|
+
},
|
|
2306
|
+
"rangeBasis": {
|
|
2307
|
+
"type": "string"
|
|
2308
|
+
},
|
|
2309
|
+
"rangeExplanation": {
|
|
2310
|
+
"type": "string"
|
|
2311
|
+
},
|
|
2312
|
+
"fitsInQuota": {
|
|
2313
|
+
"type": "boolean"
|
|
2314
|
+
},
|
|
2315
|
+
"remainingAfterEstimate": {
|
|
2316
|
+
"type": "number"
|
|
2317
|
+
}
|
|
2318
|
+
}
|
|
2319
|
+
},
|
|
2320
|
+
"CompareLoadTestRunsData": {
|
|
2321
|
+
"type": "object",
|
|
2322
|
+
"properties": {
|
|
2323
|
+
"baseline": {
|
|
2324
|
+
"type": "object",
|
|
2325
|
+
"properties": {
|
|
2326
|
+
"runId": {
|
|
2327
|
+
"type": "string",
|
|
2328
|
+
"format": "uuid"
|
|
2329
|
+
},
|
|
2330
|
+
"testId": {
|
|
2331
|
+
"type": "integer"
|
|
2332
|
+
},
|
|
2333
|
+
"startedAt": {
|
|
2334
|
+
"type": "string",
|
|
2335
|
+
"format": "date-time"
|
|
2336
|
+
}
|
|
2337
|
+
}
|
|
2338
|
+
},
|
|
2339
|
+
"candidate": {
|
|
2340
|
+
"type": "object",
|
|
2341
|
+
"properties": {
|
|
2342
|
+
"runId": {
|
|
2343
|
+
"type": "string",
|
|
2344
|
+
"format": "uuid"
|
|
2345
|
+
},
|
|
2346
|
+
"testId": {
|
|
2347
|
+
"type": "integer"
|
|
2348
|
+
},
|
|
2349
|
+
"startedAt": {
|
|
2350
|
+
"type": "string",
|
|
2351
|
+
"format": "date-time"
|
|
2352
|
+
}
|
|
2353
|
+
}
|
|
2354
|
+
},
|
|
2355
|
+
"kpiDeltas": {
|
|
2356
|
+
"type": "array",
|
|
2357
|
+
"description": "Per-KPI baseline→candidate deltas.",
|
|
2358
|
+
"items": {
|
|
2359
|
+
"type": "object",
|
|
2360
|
+
"properties": {
|
|
2361
|
+
"metric": {
|
|
2362
|
+
"type": "string"
|
|
2363
|
+
},
|
|
2364
|
+
"baseline": {
|
|
2365
|
+
"type": "number",
|
|
2366
|
+
"description": "Null when either run lacks the value.",
|
|
2367
|
+
"nullable": true
|
|
2368
|
+
},
|
|
2369
|
+
"candidate": {
|
|
2370
|
+
"type": "number",
|
|
2371
|
+
"description": "Null when either run lacks the value.",
|
|
2372
|
+
"nullable": true
|
|
2373
|
+
},
|
|
2374
|
+
"absChange": {
|
|
2375
|
+
"type": "number",
|
|
2376
|
+
"description": "Null when either run lacks the value.",
|
|
2377
|
+
"nullable": true
|
|
2378
|
+
},
|
|
2379
|
+
"pctChange": {
|
|
2380
|
+
"type": "number",
|
|
2381
|
+
"description": "Signed percent change, candidate vs baseline. Null when either run lacks the value.",
|
|
2382
|
+
"nullable": true
|
|
2383
|
+
},
|
|
2384
|
+
"direction": {
|
|
2385
|
+
"type": "string",
|
|
2386
|
+
"enum": [
|
|
2387
|
+
"improved",
|
|
2388
|
+
"regressed",
|
|
2389
|
+
"unchanged",
|
|
2390
|
+
"unknown"
|
|
2391
|
+
],
|
|
2392
|
+
"description": "\"unknown\" when either run has no value for the metric."
|
|
2393
|
+
}
|
|
2394
|
+
}
|
|
2395
|
+
}
|
|
2396
|
+
},
|
|
2397
|
+
"transactionDeltas": {
|
|
2398
|
+
"type": "array",
|
|
2399
|
+
"description": "Per-transaction deltas on one metric, sorted by |pctChange| desc.",
|
|
2400
|
+
"items": {
|
|
2401
|
+
"type": "object",
|
|
2402
|
+
"properties": {
|
|
2403
|
+
"name": {
|
|
2404
|
+
"type": "string"
|
|
2405
|
+
},
|
|
2406
|
+
"metric": {
|
|
2407
|
+
"type": "string"
|
|
2408
|
+
},
|
|
2409
|
+
"baseline": {
|
|
2410
|
+
"type": "number",
|
|
2411
|
+
"description": "Null when either run lacks the value.",
|
|
2412
|
+
"nullable": true
|
|
2413
|
+
},
|
|
2414
|
+
"candidate": {
|
|
2415
|
+
"type": "number",
|
|
2416
|
+
"description": "Null when either run lacks the value.",
|
|
2417
|
+
"nullable": true
|
|
2418
|
+
},
|
|
2419
|
+
"absChange": {
|
|
2420
|
+
"type": "number",
|
|
2421
|
+
"description": "Null when either run lacks the value.",
|
|
2422
|
+
"nullable": true
|
|
2423
|
+
},
|
|
2424
|
+
"pctChange": {
|
|
2425
|
+
"type": "number",
|
|
2426
|
+
"description": "Signed percent change, candidate vs baseline. Null when either run lacks the value.",
|
|
2427
|
+
"nullable": true
|
|
2428
|
+
},
|
|
2429
|
+
"regressed": {
|
|
2430
|
+
"type": "boolean",
|
|
2431
|
+
"description": "Null when either run lacks the transaction (unknown, not unregressed).",
|
|
2432
|
+
"nullable": true
|
|
2433
|
+
}
|
|
2434
|
+
}
|
|
2435
|
+
}
|
|
2436
|
+
},
|
|
2437
|
+
"slaVerdictChanges": {
|
|
2438
|
+
"type": "array",
|
|
2439
|
+
"description": "SLA thresholds whose verdict changed between the runs.",
|
|
2440
|
+
"items": {
|
|
2441
|
+
"type": "object",
|
|
2442
|
+
"properties": {
|
|
2443
|
+
"metric": {
|
|
2444
|
+
"type": "string"
|
|
2445
|
+
},
|
|
2446
|
+
"type": {
|
|
2447
|
+
"type": "string"
|
|
2448
|
+
},
|
|
2449
|
+
"condition": {
|
|
2450
|
+
"type": "string"
|
|
2451
|
+
},
|
|
2452
|
+
"threshold": {},
|
|
2453
|
+
"unit": {
|
|
2454
|
+
"type": "string"
|
|
2455
|
+
},
|
|
2456
|
+
"request": {},
|
|
2457
|
+
"from": {
|
|
2458
|
+
"type": "string",
|
|
2459
|
+
"description": "Null when the threshold is absent on that run.",
|
|
2460
|
+
"nullable": true
|
|
2461
|
+
},
|
|
2462
|
+
"to": {
|
|
2463
|
+
"type": "string",
|
|
2464
|
+
"description": "Null when the threshold is absent on that run.",
|
|
2465
|
+
"nullable": true
|
|
2466
|
+
},
|
|
2467
|
+
"diffStatus": {
|
|
2468
|
+
"type": "string",
|
|
2469
|
+
"enum": [
|
|
2470
|
+
"now_failing",
|
|
2471
|
+
"now_passing",
|
|
2472
|
+
"added",
|
|
2473
|
+
"dropped"
|
|
2474
|
+
]
|
|
2475
|
+
}
|
|
2476
|
+
}
|
|
2477
|
+
}
|
|
2478
|
+
},
|
|
2479
|
+
"warnings": {
|
|
2480
|
+
"type": "array",
|
|
2481
|
+
"items": {
|
|
2482
|
+
"type": "string"
|
|
2483
|
+
}
|
|
2484
|
+
}
|
|
2485
|
+
}
|
|
2486
|
+
},
|
|
2487
|
+
"CreateLoadTestData": {
|
|
2488
|
+
"type": "object",
|
|
2489
|
+
"properties": {
|
|
2490
|
+
"testId": {
|
|
2491
|
+
"type": "integer"
|
|
2492
|
+
},
|
|
2493
|
+
"name": {
|
|
2494
|
+
"type": "string"
|
|
2495
|
+
},
|
|
2496
|
+
"projectId": {
|
|
2497
|
+
"type": "integer"
|
|
2498
|
+
},
|
|
2499
|
+
"version": {
|
|
2500
|
+
"type": "string",
|
|
2501
|
+
"format": "date-time",
|
|
2502
|
+
"description": "Optimistic-concurrency token: the test's updated_at as an ISO-8601 date-time (seconds precision). Pass it back unchanged as updateLoadTest's ifVersion."
|
|
2503
|
+
},
|
|
2504
|
+
"dashboardLink": {
|
|
2505
|
+
"type": "string"
|
|
2506
|
+
}
|
|
2507
|
+
}
|
|
2508
|
+
},
|
|
2509
|
+
"StartLoadTestRunData": {
|
|
2510
|
+
"type": "object",
|
|
2511
|
+
"properties": {
|
|
2512
|
+
"runId": {
|
|
2513
|
+
"type": "string",
|
|
2514
|
+
"format": "uuid"
|
|
2515
|
+
},
|
|
2516
|
+
"status": {
|
|
2517
|
+
"type": "string"
|
|
2518
|
+
},
|
|
2519
|
+
"startedAt": {
|
|
2520
|
+
"type": "string",
|
|
2521
|
+
"format": "date-time"
|
|
2522
|
+
},
|
|
2523
|
+
"dashboardLink": {
|
|
2524
|
+
"type": "string"
|
|
2525
|
+
},
|
|
2526
|
+
"estimatedVuHoursRange": {
|
|
2527
|
+
"description": "Low/high VU-hour estimate for the started run."
|
|
2528
|
+
}
|
|
2529
|
+
}
|
|
2530
|
+
},
|
|
2531
|
+
"ListLoadTestRunsData": {
|
|
2532
|
+
"type": "object",
|
|
2533
|
+
"properties": {
|
|
2534
|
+
"runs": {
|
|
2535
|
+
"type": "array",
|
|
2536
|
+
"items": {
|
|
2537
|
+
"type": "object",
|
|
2538
|
+
"properties": {
|
|
2539
|
+
"runId": {
|
|
2540
|
+
"type": "string"
|
|
2541
|
+
},
|
|
2542
|
+
"status": {
|
|
2543
|
+
"type": "string",
|
|
2544
|
+
"nullable": true
|
|
2545
|
+
},
|
|
2546
|
+
"startedAt": {
|
|
2547
|
+
"type": "string",
|
|
2548
|
+
"nullable": true
|
|
2549
|
+
},
|
|
2550
|
+
"durationSec": {
|
|
2551
|
+
"type": "integer",
|
|
2552
|
+
"nullable": true,
|
|
2553
|
+
"description": "Wall-clock seconds; null while running or when timestamps are missing."
|
|
2554
|
+
},
|
|
2555
|
+
"vus": {
|
|
2556
|
+
"type": "integer",
|
|
2557
|
+
"nullable": true
|
|
2558
|
+
},
|
|
2559
|
+
"verdict": {
|
|
2560
|
+
"type": "string",
|
|
2561
|
+
"nullable": true
|
|
2562
|
+
},
|
|
2563
|
+
"vuHours": {
|
|
2564
|
+
"type": "number",
|
|
2565
|
+
"nullable": true,
|
|
2566
|
+
"description": "Billed VU-hours; null until billed."
|
|
2567
|
+
},
|
|
2568
|
+
"tags": {
|
|
2569
|
+
"type": "array",
|
|
2570
|
+
"items": {
|
|
2571
|
+
"type": "string"
|
|
2572
|
+
},
|
|
2573
|
+
"description": "Run-level tags, or the tags inherited from the test when the run has none."
|
|
2574
|
+
}
|
|
2575
|
+
}
|
|
2576
|
+
}
|
|
2577
|
+
},
|
|
2578
|
+
"hasMore": {
|
|
2579
|
+
"type": "boolean"
|
|
2580
|
+
},
|
|
2581
|
+
"nextCursor": {
|
|
2582
|
+
"type": "string"
|
|
2583
|
+
}
|
|
2584
|
+
}
|
|
2585
|
+
},
|
|
2586
|
+
"GetLoadTestHistoricalTrendsData": {
|
|
2587
|
+
"type": "object",
|
|
2588
|
+
"properties": {
|
|
2589
|
+
"metrics": {
|
|
2590
|
+
"description": "Trend series payload; shape per getLoadTestMetricsManifest."
|
|
2591
|
+
}
|
|
2592
|
+
}
|
|
2593
|
+
},
|
|
2594
|
+
"GetLoadTestMetricsManifestData": {
|
|
2595
|
+
"type": "object",
|
|
2596
|
+
"properties": {
|
|
2597
|
+
"testType": {
|
|
2598
|
+
"type": "string"
|
|
2599
|
+
},
|
|
2600
|
+
"metrics": {
|
|
2601
|
+
"type": "array"
|
|
2602
|
+
},
|
|
2603
|
+
"aliases": {
|
|
2604
|
+
"type": "object"
|
|
2605
|
+
}
|
|
2606
|
+
}
|
|
2607
|
+
},
|
|
2608
|
+
"UpdateLoadTestData": {
|
|
2609
|
+
"type": "object",
|
|
2610
|
+
"properties": {
|
|
2611
|
+
"testId": {
|
|
2612
|
+
"type": "integer"
|
|
2613
|
+
},
|
|
2614
|
+
"version": {
|
|
2615
|
+
"type": "string",
|
|
2616
|
+
"format": "date-time",
|
|
2617
|
+
"description": "Optimistic-concurrency token: the test's updated_at as an ISO-8601 date-time (seconds precision). Pass it back unchanged as updateLoadTest's ifVersion."
|
|
2618
|
+
}
|
|
2619
|
+
}
|
|
2620
|
+
},
|
|
2621
|
+
"GetLoadTestData": {
|
|
2622
|
+
"type": "object",
|
|
2623
|
+
"properties": {
|
|
2624
|
+
"testId": {
|
|
2625
|
+
"type": "integer"
|
|
2626
|
+
},
|
|
2627
|
+
"name": {
|
|
2628
|
+
"type": "string"
|
|
2629
|
+
},
|
|
2630
|
+
"testType": {
|
|
2631
|
+
"type": "string"
|
|
2632
|
+
},
|
|
2633
|
+
"framework": {
|
|
2634
|
+
"type": "string"
|
|
2635
|
+
},
|
|
2636
|
+
"version": {
|
|
2637
|
+
"type": "string",
|
|
2638
|
+
"format": "date-time",
|
|
2639
|
+
"description": "Optimistic-concurrency token: the test's updated_at as an ISO-8601 date-time (seconds precision). Pass it back unchanged as updateLoadTest's ifVersion."
|
|
2640
|
+
},
|
|
2641
|
+
"projectId": {
|
|
2642
|
+
"type": "integer"
|
|
2643
|
+
},
|
|
2644
|
+
"ownerUserId": {
|
|
2645
|
+
"type": "integer"
|
|
2646
|
+
},
|
|
2647
|
+
"config": {
|
|
2648
|
+
"type": "object"
|
|
2649
|
+
}
|
|
2650
|
+
}
|
|
1552
2651
|
}
|
|
1553
2652
|
},
|
|
1554
2653
|
"responses": {
|
|
1555
|
-
"Success": {
|
|
1556
|
-
"description": "Standard success envelope; operation data under `data`.",
|
|
1557
|
-
"schema": {
|
|
1558
|
-
"$schema": "SuccessEnvelope"
|
|
1559
|
-
}
|
|
1560
|
-
},
|
|
1561
2654
|
"BadRequest": {
|
|
1562
2655
|
"description": "Invalid parameters or body.",
|
|
1563
2656
|
"schema": {
|
|
@@ -1613,6 +2706,7 @@
|
|
|
1613
2706
|
"loadTest": {
|
|
1614
2707
|
"entity": "loadTest",
|
|
1615
2708
|
"title": "Load Test",
|
|
2709
|
+
"description": "A saved load-test configuration (framework, script, load profile and thresholds); addressed by a numeric testId. Runs are executions of it.",
|
|
1616
2710
|
"aliases": [
|
|
1617
2711
|
"test",
|
|
1618
2712
|
"load test",
|
|
@@ -1652,6 +2746,7 @@
|
|
|
1652
2746
|
"run": {
|
|
1653
2747
|
"entity": "run",
|
|
1654
2748
|
"title": "Run",
|
|
2749
|
+
"description": "A single execution of a load test; addressed by runId (a UUID, also called jobId). Carries status, metrics and a report.",
|
|
1655
2750
|
"aliases": [
|
|
1656
2751
|
"execution",
|
|
1657
2752
|
"job",
|
|
@@ -1690,6 +2785,7 @@
|
|
|
1690
2785
|
"project": {
|
|
1691
2786
|
"entity": "project",
|
|
1692
2787
|
"title": "Project",
|
|
2788
|
+
"description": "A container that groups related load tests under a group/account; addressed by a numeric projectId.",
|
|
1693
2789
|
"aliases": [
|
|
1694
2790
|
"project",
|
|
1695
2791
|
"workspace",
|
|
@@ -1715,6 +2811,7 @@
|
|
|
1715
2811
|
"report": {
|
|
1716
2812
|
"entity": "report",
|
|
1717
2813
|
"title": "Run Report",
|
|
2814
|
+
"description": "The results of a completed run (KPIs, SLA verdicts, per-transaction rows, error breakdown); addressed by the run's runId.",
|
|
1718
2815
|
"aliases": [
|
|
1719
2816
|
"report",
|
|
1720
2817
|
"result",
|
|
@@ -1742,6 +2839,7 @@
|
|
|
1742
2839
|
"insight": {
|
|
1743
2840
|
"entity": "insight",
|
|
1744
2841
|
"title": "AI Insight",
|
|
2842
|
+
"description": "AI-generated analysis of a completed run (root cause and recommendations); addressed by the run's runId, and may be pending until generated.",
|
|
1745
2843
|
"aliases": [
|
|
1746
2844
|
"insight",
|
|
1747
2845
|
"ai insight",
|
|
@@ -1768,6 +2866,7 @@
|
|
|
1768
2866
|
"trend": {
|
|
1769
2867
|
"entity": "trend",
|
|
1770
2868
|
"title": "Historical Trend",
|
|
2869
|
+
"description": "Historical time-series of a metric across a test's or project's runs; scoped by testId or projectId, not independently identified.",
|
|
1771
2870
|
"aliases": [
|
|
1772
2871
|
"trend",
|
|
1773
2872
|
"trends",
|
|
@@ -1800,6 +2899,7 @@
|
|
|
1800
2899
|
"quota": {
|
|
1801
2900
|
"entity": "quota",
|
|
1802
2901
|
"title": "Quota & Cost",
|
|
2902
|
+
"description": "The caller's VU-hour entitlement, usage and concurrency limits; account/group-scoped, with no id.",
|
|
1803
2903
|
"aliases": [
|
|
1804
2904
|
"quota",
|
|
1805
2905
|
"vu hours",
|
|
@@ -1829,6 +2929,7 @@
|
|
|
1829
2929
|
"metrics": {
|
|
1830
2930
|
"entity": "metrics",
|
|
1831
2931
|
"title": "Metrics Manifest",
|
|
2932
|
+
"description": "The per-testType catalogue of available metric names, @-aliases and groupBy dimensions; a manifest, not an instance.",
|
|
1832
2933
|
"aliases": [
|
|
1833
2934
|
"metric",
|
|
1834
2935
|
"metrics",
|
|
@@ -1856,6 +2957,7 @@
|
|
|
1856
2957
|
"platform": {
|
|
1857
2958
|
"entity": "platform",
|
|
1858
2959
|
"title": "Platform Status",
|
|
2960
|
+
"description": "Health status of the Load Testing service and its dependencies; a singleton probe with no id.",
|
|
1859
2961
|
"aliases": [
|
|
1860
2962
|
"platform",
|
|
1861
2963
|
"status",
|