@smartbear/mcp 0.12.0 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -6
- package/dist/bugsnag/client/api/CurrentUser.js +50 -26
- package/dist/bugsnag/client/api/Error.js +158 -57
- package/dist/bugsnag/client/api/Project.js +398 -243
- package/dist/bugsnag/client/api/api.js +4087 -3837
- package/dist/bugsnag/client/api/base.js +155 -173
- package/dist/bugsnag/client/api/configuration.js +28 -25
- package/dist/bugsnag/client/filters.js +11 -20
- package/dist/bugsnag/client.js +1398 -1277
- package/dist/bugsnag/input-schemas.js +39 -57
- package/dist/collaborator/client.js +335 -371
- package/dist/common/bugsnag.js +5 -3
- package/dist/common/cache.js +50 -57
- package/dist/common/client-registry.js +106 -119
- package/dist/common/info.js +7 -3
- package/dist/common/register-clients.js +0 -16
- package/dist/common/server.js +270 -228
- package/dist/common/tools.js +19 -0
- package/dist/common/transport-http.js +252 -343
- package/dist/common/transport-stdio.js +40 -37
- package/dist/common/zod-utils.js +20 -0
- package/dist/index.js +18 -23
- package/dist/package.json.js +11 -0
- package/dist/pactflow/client/ai.js +142 -169
- package/dist/pactflow/client/base.js +41 -51
- package/dist/pactflow/client/prompt-utils.js +93 -84
- package/dist/pactflow/client/prompts.js +95 -92
- package/dist/pactflow/client/tools.js +94 -83
- package/dist/pactflow/client/utils.js +60 -64
- package/dist/pactflow/client.js +399 -320
- package/dist/qmetry/client/api/client-api.js +43 -41
- package/dist/qmetry/client/api/error-handler.js +264 -310
- package/dist/qmetry/client/auto-resolve.js +78 -99
- package/dist/qmetry/client/automation.js +139 -162
- package/dist/qmetry/client/handlers.js +49 -46
- package/dist/qmetry/client/issues.js +133 -115
- package/dist/qmetry/client/project.js +153 -174
- package/dist/qmetry/client/requirement.js +82 -70
- package/dist/qmetry/client/testcase.js +240 -208
- package/dist/qmetry/client/testsuite.js +332 -293
- package/dist/qmetry/client/tools/automation-tools.js +291 -288
- package/dist/qmetry/client/tools/index.js +16 -13
- package/dist/qmetry/client/tools/issue-tools.js +534 -543
- package/dist/qmetry/client/tools/project-tools.js +635 -656
- package/dist/qmetry/client/tools/requirement-tools.js +525 -528
- package/dist/qmetry/client/tools/testcase-tools.js +773 -786
- package/dist/qmetry/client/tools/testsuite-tools.js +1069 -1083
- package/dist/qmetry/client/utils.js +8 -14
- package/dist/qmetry/client.js +111 -109
- package/dist/qmetry/config/constants.js +48 -44
- package/dist/qmetry/config/rest-endpoints.js +51 -48
- package/dist/qmetry/types/automation.js +7 -7
- package/dist/qmetry/types/common.js +763 -1049
- package/dist/qmetry/types/issues.js +26 -19
- package/dist/qmetry/types/project.js +32 -25
- package/dist/qmetry/types/requirements.js +26 -21
- package/dist/qmetry/types/testcase.js +55 -44
- package/dist/qmetry/types/testsuite.js +66 -52
- package/dist/reflect/client.js +284 -226
- package/dist/swagger/client/api.js +645 -662
- package/dist/swagger/client/configuration.js +31 -33
- package/dist/swagger/client/portal-types.js +204 -244
- package/dist/swagger/client/registry-types.js +62 -96
- package/dist/swagger/client/tools.js +148 -158
- package/dist/swagger/client/user-management-types.js +11 -22
- package/dist/swagger/client.js +143 -135
- package/dist/swagger/config-utils.js +10 -16
- package/dist/zephyr/client.js +43 -42
- package/dist/zephyr/common/api-client.js +35 -30
- package/dist/zephyr/common/auth-service.js +16 -13
- package/dist/zephyr/common/rest-api-schemas.js +3173 -5146
- package/dist/zephyr/tool/environment/get-environments.js +66 -66
- package/dist/zephyr/tool/priority/get-priorities.js +41 -41
- package/dist/zephyr/tool/project/get-project.js +37 -37
- package/dist/zephyr/tool/project/get-projects.js +46 -46
- package/dist/zephyr/tool/status/get-statuses.js +47 -47
- package/dist/zephyr/tool/test-case/get-test-case.js +37 -37
- package/dist/zephyr/tool/test-case/get-test-cases.js +62 -62
- package/dist/zephyr/tool/test-cycle/get-test-cycle.js +37 -37
- package/dist/zephyr/tool/test-cycle/get-test-cycles.js +70 -70
- package/dist/zephyr/tool/test-execution/get-test-execution.js +37 -37
- package/dist/zephyr/tool/test-execution/get-test-executions.js +43 -43
- package/package.json +5 -5
- package/dist/bugsnag/client/api/index.js +0 -6
- package/dist/common/types.js +0 -6
- package/dist/qmetry/client/tools/types.js +0 -1
- package/dist/swagger/client/index.js +0 -6
- package/dist/tests/unit/bugsnag/utils/factories.js +0 -86
- package/dist/zephyr/tool/zephyr-tool.js +0 -1
|
@@ -1,1086 +1,1072 @@
|
|
|
1
1
|
import { QMetryToolsHandlers } from "../../config/constants.js";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
2
|
+
import { CreateTestSuiteArgsSchema, UpdateTestSuiteArgsSchema, TestSuiteListArgsSchema, TestSuitesForTestCaseArgsSchema, LinkTestCasesToTestSuiteArgsSchema, RequirementsLinkedTestCasesToTestSuiteArgsSchema, LinkPlatformsToTestSuiteArgsSchema, TestCasesByTestSuiteArgsSchema, ExecutionsByTestSuiteArgsSchema, TestCaseRunsByTestSuiteRunArgsSchema, BulkUpdateExecutionStatusArgsSchema } from "../../types/common.js";
|
|
3
|
+
const TESTSUITE_TOOLS = [
|
|
4
|
+
{
|
|
5
|
+
title: "Create Test Suite",
|
|
6
|
+
summary: "Create a new test suite in QMetry with metadata and release/cycle mapping.",
|
|
7
|
+
handler: QMetryToolsHandlers.CREATE_TEST_SUITE,
|
|
8
|
+
inputSchema: CreateTestSuiteArgsSchema,
|
|
9
|
+
purpose: "Allows users to create a new test suite in QMetry, including metadata and release/cycle mapping. Supports all major test suite fields. For fields like testsuiteOwner, testSuiteState, etc., fetch their valid values using the project info tool. If parentFolderId is not provided, it will be auto-resolved to the root test suite folder using project info.",
|
|
10
|
+
useCases: [
|
|
11
|
+
"Create a basic test suite with just a name and folder",
|
|
12
|
+
"Add detailed metadata like description to a test suite",
|
|
13
|
+
"Associate test suite with specific release/cycle for planning",
|
|
14
|
+
"Set testsuiteOwner, testSuiteState, and other metadata using valid IDs from project info",
|
|
15
|
+
"Create test suites for isAutomatedFlag true or false for automated or manual types, default is false",
|
|
16
|
+
"Add test suite to a specific folder using parentFolderId",
|
|
17
|
+
"Map test suite to multiple cycles/releases and build ID"
|
|
18
|
+
],
|
|
19
|
+
examples: [
|
|
20
|
+
{
|
|
21
|
+
description: "Create a test suite in the root folder (auto-resolved)",
|
|
22
|
+
parameters: {
|
|
23
|
+
name: "Demo Test Suite"
|
|
24
|
+
},
|
|
25
|
+
expectedOutput: "Test suite created in the root test suite folder with ID and summary details"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
description: "Create a simple test suite in folder 102653",
|
|
29
|
+
parameters: {
|
|
30
|
+
parentFolderId: "102653",
|
|
31
|
+
name: "Login Test Suite"
|
|
32
|
+
},
|
|
33
|
+
expectedOutput: "Test suite created with ID and summary details"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
description: "Create a test suite with some details and metadata",
|
|
37
|
+
parameters: {
|
|
38
|
+
parentFolderId: "113557",
|
|
39
|
+
isAutomatedFlag: false,
|
|
40
|
+
name: "Testsuite Summary",
|
|
41
|
+
description: "desc",
|
|
42
|
+
testsuiteOwner: 6963,
|
|
43
|
+
testSuiteState: 505035,
|
|
44
|
+
associateRelCyc: true,
|
|
45
|
+
releaseCycleMapping: [
|
|
23
46
|
{
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
"- Blocked: Test case cannot be executed due to blockers",
|
|
1047
|
-
"- Not Run: Test case not yet executed or needs re-execution",
|
|
1048
|
-
"- WIP: Work In Progress - test case execution in progress",
|
|
1049
|
-
"WORKFLOW FOR USER PROMPTS:",
|
|
1050
|
-
"1. If user says 'execute test case run by id to failed' or 'update status to fail':",
|
|
1051
|
-
" - Fetch test case runs to get tcRunID (entityIDs)",
|
|
1052
|
-
" - Fetch project info to get 'Fail' status ID (runStatusID)",
|
|
1053
|
-
" - Set isBulkOperation=false for single ID",
|
|
1054
|
-
"2. If user says 'bulk update test case run status to pass' or 'update all to passed':",
|
|
1055
|
-
" - Fetch test case runs to get multiple tcRunIDs",
|
|
1056
|
-
" - Fetch project info to get 'Pass' status ID",
|
|
1057
|
-
" - Set isBulkOperation=true",
|
|
1058
|
-
" - Join multiple IDs with commas (no spaces)",
|
|
1059
|
-
"3. If user says 'execute status to not run of given test case run ids':",
|
|
1060
|
-
" - Use provided IDs or fetch if needed",
|
|
1061
|
-
" - Fetch project info to get 'Not Run' status ID",
|
|
1062
|
-
" - Set isBulkOperation based on ID count",
|
|
1063
|
-
"4. If the user requests updating status for ALL executions of a test suite, the agent must:",
|
|
1064
|
-
" 1. Call FETCH_EXECUTIONS_BY_TESTSUITE to get all qmTsRunIds.",
|
|
1065
|
-
" 2. For each qmTsRunId:",
|
|
1066
|
-
" - Call FETCH_TESTCASE_RUNS_BY_TESTSUITE_RUN to get tcRunID (entityIDs)",
|
|
1067
|
-
" - Fetch project info to get 'Fail' status ID (runStatusID)",
|
|
1068
|
-
" - Call BULK_UPDATE_EXECUTION_STATUS with the corresponding qmTsRunId + tcRunID + desired runStatusID",
|
|
1069
|
-
" 3. Repeat until all executions are updated.",
|
|
1070
|
-
" This tool is intended to be invoked multiple times in sequence for multi-execution updates.",
|
|
1071
|
-
"FIELD MAPPING CRITICAL NOTES:",
|
|
1072
|
-
"- entityIDs must be comma-separated STRING (e.g., '66095069,66095075')",
|
|
1073
|
-
"- qmTsRunId must be STRING format (e.g., '2720260')",
|
|
1074
|
-
"- runStatusID must be NUMERIC (e.g., 123268)",
|
|
1075
|
-
"- dropID can be numeric or string (flexible)",
|
|
1076
|
-
"API ENDPOINT: PUT /rest/execution/runstatus/bulkupdate",
|
|
1077
|
-
"This tool is essential for test execution management and status tracking",
|
|
1078
|
-
"Critical for maintaining accurate test execution records and reporting",
|
|
1079
|
-
"Use for manual test execution updates and automated test result integration",
|
|
1080
|
-
"Essential for test execution audit trails and compliance requirements",
|
|
1081
|
-
],
|
|
1082
|
-
outputDescription: "JSON object with success status, updated execution details, and confirmation message",
|
|
1083
|
-
readOnly: false,
|
|
1084
|
-
idempotent: false,
|
|
1085
|
-
},
|
|
47
|
+
buildID: 18411,
|
|
48
|
+
releaseId: 10286
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
expectedOutput: "Test suite created with details and metadata. Example uses: parentFolderId=113557 (MAC root TS folder from rootFolders.TS.id), testsuiteOwner=6963 (umang.savaliya from customListObjs.owner[index].id), testSuiteState=505035 (New from customListObjs.testSuiteState[index].id), releaseId=10286 (Air release from projects[index].releases[index].releaseID), buildID=18411 (Air Q1-19 cycle from projects[index].releases[index].builds[index].buildID)"
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
hints: [
|
|
56
|
+
"If parentFolderId is not provided, it will be auto-resolved to the root test suite folder using project info (rootFolders.TS.id).",
|
|
57
|
+
"To get valid values for testsuiteOwner, testSuiteState, etc., call the 'Admin/Get info Service' API (FETCH_PROJECT_INFO tool) and use the returned customListObjs IDs.",
|
|
58
|
+
"CRITICAL: For testsuiteOwner mapping - Call API 'Admin/Get info Service', from the response get value from customListObjs.owner[<index>].id. Match the user by customListObjs.owner[<index>].name.",
|
|
59
|
+
"If the user provides an owner name (testsuiteOwner), fetch project info, find the matching owner in customListObjs.owner[index].name or customListObjs.owner[index].uniqueLabel, and use its ID in the payload as testsuiteOwner. If the name is not found, skip the testsuiteOwner field (it is not required) and show a user-friendly message: 'Test suite created without owner, as given owner is not available in the current project.'",
|
|
60
|
+
"CRITICAL: For testSuiteState mapping - Call API 'Admin/Get info Service', from the response get value from customListObjs.testSuiteState[<index>].id. Match the state by customListObjs.testSuiteState[<index>].name.",
|
|
61
|
+
"If the user provides a test suite state name(testSuiteState), fetch project info, find the matching state in customListObjs.testSuiteState[index].name, and use its ID in the payload as testSuiteState. If the name is not found, skip the testSuiteState field (it is not required) and show a user-friendly message: 'Test suite created without test suite state, as given state is not available in the current project.'",
|
|
62
|
+
"parentFolderId is required; use the root folder ID from project info (rootFolders.TS.id) or a specific folder.",
|
|
63
|
+
"Release/cycle mapping is optional but useful for planning.",
|
|
64
|
+
"If the user wants to link or associate a release and cycle to the test suite, set associateRelCyc: true in the payload.",
|
|
65
|
+
"CRITICAL: For releaseCycleMapping.releaseId - Call API 'Release/List' (or use project info projects[<index>].releases[<index>].releaseID), from the response get value from data[<index>].releaseID or projects[<index>].releases[<index>].releaseID. Match the release by name.",
|
|
66
|
+
"CRITICAL: For releaseCycleMapping.buildID - Call API 'Cycle/List' (or use project info projects[<index>].releases[<index>].builds[<index>].buildID), from the response get value from data[<index>].buildID or projects[<index>].releases[<index>].builds[<index>].buildID. Match the build/cycle by name.",
|
|
67
|
+
"If the user provides a release name, map it to its ID from projects[<index>].releases[<index>].releaseID in the project info response, and use that ID as releaseId in releaseCycleMapping.",
|
|
68
|
+
"If the user provides a build/cycle name, map it to its ID from projects[<index>].releases[<index>].builds[<index>].buildID in the project info response, and use that ID as buildID in releaseCycleMapping.",
|
|
69
|
+
"Example payload: releaseCycleMapping: [ { releaseId: <releaseID>, buildID: <buildID> } ]",
|
|
70
|
+
"Example: For 'Air' release and 'Air Q1-19' cycle in MAC project, use releaseId: 10286 and buildID: 18411",
|
|
71
|
+
"LLM should ensure that provided release/cycle names or IDs exist in the current project before using them in the payload. If not found, skip and show a user-friendly message: 'Test suite created without release/cycle association, as given release/cycle is not available in the current project.'",
|
|
72
|
+
"All IDs (testSuiteState from customListObjs.testSuiteState[index].id, testsuiteOwner from customListObjs.owner[index].id, releaseId from projects.releases[index].releaseID, buildID from projects.releases.builds[index].buildID) must be valid for your QMetry instance.",
|
|
73
|
+
"If a custom field is mandatory, include it in the UDF object."
|
|
74
|
+
],
|
|
75
|
+
outputDescription: "JSON object containing the new test suite ID, summary, and creation metadata.",
|
|
76
|
+
readOnly: false,
|
|
77
|
+
idempotent: false
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
title: "Update Test Suite",
|
|
81
|
+
summary: "Update an existing QMetry test suite by id(testsuite numeric id), with auto-resolution from entityKey.",
|
|
82
|
+
handler: QMetryToolsHandlers.UPDATE_TEST_SUITE,
|
|
83
|
+
inputSchema: UpdateTestSuiteArgsSchema,
|
|
84
|
+
purpose: "Update a QMetry test suite's metadata, description, or other fields. Requires id(testsuite numeric id), which can be auto-resolved from the test suite entityKey using the test suite list tools. Supports updating name, description, owner, state, and more. Only fields provided will be updated.",
|
|
85
|
+
useCases: [
|
|
86
|
+
"Update test suite summary (name)",
|
|
87
|
+
"Change owner, or state of a test suite",
|
|
88
|
+
"Bulk update using entityKey auto-resolution",
|
|
89
|
+
"Modify test suite description"
|
|
90
|
+
],
|
|
91
|
+
examples: [
|
|
92
|
+
{
|
|
93
|
+
description: "Update test suite summary (updated name)",
|
|
94
|
+
parameters: {
|
|
95
|
+
id: 1505898,
|
|
96
|
+
entityKey: "VT-TS-7",
|
|
97
|
+
TsFolderID: 1644087,
|
|
98
|
+
name: "MAC Test11"
|
|
99
|
+
},
|
|
100
|
+
expectedOutput: "Test suite summary updated. Only 'name' field changed. Field IDs auto-resolved from project info. id(test suite numeric id) resolved from entityKey. TsFolderID auto-resolved. from the project info. info on rootFolders.TS.id."
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
description: "Update state to Open and owner of the test suite",
|
|
104
|
+
parameters: {
|
|
105
|
+
id: 1505898,
|
|
106
|
+
entityKey: "VT-TS-7",
|
|
107
|
+
TsFolderID: 1644087,
|
|
108
|
+
testSuiteState: 505036,
|
|
109
|
+
testsuiteOwner: 6963
|
|
110
|
+
},
|
|
111
|
+
expectedOutput: "State and owner updated. Example uses: testSuiteState=505036 (Open from customListObjs.testSuiteState[index].id), testsuiteOwner=6963 (umang.savaliya from customListObjs.owner[index].id). Field IDs auto-resolved from project info. id(test suite numeric id) resolved from entityKey. TsFolderID auto-resolved from the project info rootFolders.TS.id."
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
description: "Update only description of the test suite",
|
|
115
|
+
parameters: {
|
|
116
|
+
id: 1505898,
|
|
117
|
+
entityKey: "VT-TS-7",
|
|
118
|
+
TsFolderID: 1644087,
|
|
119
|
+
description: "Updated description for the test suite."
|
|
120
|
+
},
|
|
121
|
+
expectedOutput: "description updated only. Field IDs auto-resolved from project info. id(test suite numeric id) resolved from entityKey. TsFolderID auto-resolved. from the project info. info on rootFolders.TS.id."
|
|
122
|
+
}
|
|
123
|
+
],
|
|
124
|
+
hints: [
|
|
125
|
+
"If user provides entityKey (e.g., MAC-TS-7), first call Fetch Test Suites with a filter on entityKeyId to resolve the id (test suite numeric id) and TsFolderID from rootFolders.TS.id.",
|
|
126
|
+
"To get valid values for owner, state, etc., call the 'Admin/Get info Service' API (FETCH_PROJECT_INFO tool) and use the returned customListObjs IDs.",
|
|
127
|
+
"CRITICAL: For testsuiteOwner mapping - Call API 'Admin/Get info Service', from the response get value from customListObjs.owner[<index>].id. Match the user by customListObjs.owner[<index>].name.",
|
|
128
|
+
"If the user provides an owner name, fetch project info, find the matching user in customListObjs.owner[index].name, and use its ID in the payload as testsuiteOwner. If the name is not found, skip the testsuiteOwner field (it is not required) and show a user-friendly message: 'Test suite updated without owner, as given owner is not available in the current project.'",
|
|
129
|
+
"CRITICAL: For testSuiteState mapping - Call API 'Admin/Get info Service', from the response get value from customListObjs.testSuiteState[<index>].id. Match the state by customListObjs.testSuiteState[<index>].name.",
|
|
130
|
+
"If the user provides a test suite state name, fetch project info, find the matching state in customListObjs.testSuiteState[index].name, and use its ID in the payload as testSuiteState. If the name is not found, skip the testSuiteState field (it is not required) and show a user-friendly message: 'Test suite updated without test suite state, as given state is not available in the current project.'",
|
|
131
|
+
"If either owner or state is not found in project info, the update for that field will be skipped and a user-friendly message will be shown to the user.",
|
|
132
|
+
"UDF fields in steps must match your QMetry custom field configuration.",
|
|
133
|
+
"All IDs (testSuiteState from customListObjs.testSuiteState[index].id, testsuiteOwner from customListObjs.owner[index].id) must be valid for your QMetry instance.",
|
|
134
|
+
"If a custom field is mandatory, include it in the UDF object."
|
|
135
|
+
],
|
|
136
|
+
outputDescription: "JSON object containing the new test suite ID, summary, and creation metadata.",
|
|
137
|
+
readOnly: false,
|
|
138
|
+
idempotent: false
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
title: "Fetch Test Suites",
|
|
142
|
+
summary: "Fetch QMetry test suites - automatically handles viewId resolution based on project",
|
|
143
|
+
handler: QMetryToolsHandlers.FETCH_TEST_SUITES,
|
|
144
|
+
inputSchema: TestSuiteListArgsSchema,
|
|
145
|
+
purpose: "Get test suites from QMetry. System automatically gets correct viewId from project info if not provided.",
|
|
146
|
+
useCases: [
|
|
147
|
+
"List all test suites in a project",
|
|
148
|
+
"Search for specific test suites using filters",
|
|
149
|
+
"Browse test suites in specific folders",
|
|
150
|
+
"Get paginated test suite results"
|
|
151
|
+
],
|
|
152
|
+
examples: [
|
|
153
|
+
{
|
|
154
|
+
description: "Get all test suites from default project - system will auto-fetch viewId",
|
|
155
|
+
parameters: {},
|
|
156
|
+
expectedOutput: "List of test suites from default project with auto-resolved viewId"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
description: "Get all test suites from UT project - system will auto-fetch UT project's viewId",
|
|
160
|
+
parameters: { projectKey: "UT" },
|
|
161
|
+
expectedOutput: "List of test suites from UT project using UT's specific TS viewId"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
description: "Get test suites with manual viewId (skip auto-resolution)",
|
|
165
|
+
parameters: { projectKey: "MAC", viewId: 103097, folderPath: "" },
|
|
166
|
+
// This is an example viewId, must be resolved per project TS viewId
|
|
167
|
+
expectedOutput: "Test suites using manually specified viewId 103097"
|
|
168
|
+
// This is an example viewId, must be resolved per project TS viewId
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
description: "List test suites from specific project (ex: project key can be anything (VT, UT, PROJ1, TEST9)",
|
|
172
|
+
parameters: {
|
|
173
|
+
projectKey: "use specific given project key",
|
|
174
|
+
viewId: "fetch specific project given projectKey Test Suite ViewId",
|
|
175
|
+
// auto-resolved
|
|
176
|
+
folderPath: ""
|
|
177
|
+
},
|
|
178
|
+
expectedOutput: "Test suites using manually specified viewId 103097 or projectKey"
|
|
179
|
+
// This is an example viewId, must be resolved per project TS viewId
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
description: "Get test suites by release/cycle filter",
|
|
183
|
+
parameters: {
|
|
184
|
+
projectKey: "MAC",
|
|
185
|
+
filter: '[{"value":[55178],"type":"list","field":"release"},{"value":[111577],"type":"list","field":"cycle"}]'
|
|
186
|
+
},
|
|
187
|
+
expectedOutput: "Test suites associated with Release 8.12 (ID: 55178) and Cycle 8.12.1 (ID: 111577)"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
description: "Get test suites by release only",
|
|
191
|
+
parameters: {
|
|
192
|
+
projectKey: "MAC",
|
|
193
|
+
filter: '[{"value":[55178],"type":"list","field":"release"}]'
|
|
194
|
+
},
|
|
195
|
+
expectedOutput: "All test suites associated with Release 8.12 (ID: 55178)"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
description: "Get test suites by cycle only",
|
|
199
|
+
parameters: {
|
|
200
|
+
projectKey: "MAC",
|
|
201
|
+
filter: '[{"value":[111577],"type":"list","field":"cycle"}]'
|
|
202
|
+
},
|
|
203
|
+
expectedOutput: "All test suites associated with Cycle 8.12.1 (ID: 111577)"
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
description: "Search for specific test suite by entity key",
|
|
207
|
+
parameters: {
|
|
208
|
+
projectKey: "MAC",
|
|
209
|
+
filter: '[{"type":"string","value":"MAC-TS-1684","field":"entityKeyId"}]'
|
|
210
|
+
},
|
|
211
|
+
expectedOutput: "Test suites matching the entity key criteria"
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
description: "Search for multiple test suites by comma-separated entity keys",
|
|
215
|
+
parameters: {
|
|
216
|
+
projectKey: "MAC",
|
|
217
|
+
filter: '[{"type":"string","value":"MAC-TS-1684,MAC-TS-1685,MAC-TS-1686","field":"entityKeyId"}]'
|
|
218
|
+
},
|
|
219
|
+
expectedOutput: "Test suites matching any of the specified entity keys"
|
|
220
|
+
}
|
|
221
|
+
],
|
|
222
|
+
hints: [
|
|
223
|
+
"CRITICAL WORKFLOW: Always use the SAME projectKey for both project info and test suite fetching",
|
|
224
|
+
"Step 1: If user specifies projectKey (like 'UT', 'MAC'), use that EXACT projectKey for project info",
|
|
225
|
+
"Step 2: Get project info using that projectKey, extract latestViews.TS.viewId",
|
|
226
|
+
"Step 3: Use the SAME projectKey and the extracted TS viewId for fetching test suites",
|
|
227
|
+
"Step 4: If user doesn't specify projectKey, use 'default' for both project info and test suite fetching",
|
|
228
|
+
"NEVER mix project keys - if user says 'MAC project', use projectKey='MAC' for everything",
|
|
229
|
+
`For search by test suite key (like MAC-TS-1684), use filter: '[{"type":"string","value":"MAC-TS-1684","field":"entityKeyId"}]'`,
|
|
230
|
+
"RELEASE/CYCLE FILTERING: Use release and cycle IDs, not names, for filtering",
|
|
231
|
+
`For release filter: '[{"value":[releaseId],"type":"list","field":"release"}]'`,
|
|
232
|
+
`For cycle filter: '[{"value":[cycleId],"type":"list","field":"cycle"}]'`,
|
|
233
|
+
`For combined release+cycle: '[{"value":[releaseId],"type":"list","field":"release"},{"value":[cycleId],"type":"list","field":"cycle"}]'`,
|
|
234
|
+
"Get release/cycle IDs from FETCH_RELEASES_AND_CYCLES tool before filtering",
|
|
235
|
+
"FILTER FIELDS: name, release, cycle, platform, isArchived, testsuiteStatus, createdByAlias, createdDate, entityKeyId, attachmentCount, linkedPlatformCount, linkedTcCount, updatedByAlias, updatedDate, owner, remExecutionTime, and totalExecutionTime",
|
|
236
|
+
"SORT FIELDS: entityKey, name, testsuiteStatus, linkedPlatformCount, linkedTcCount, createdDate, createdByAlias, updatedDate, updatedByAlias, attachmentCount, remExecutionTime, and totalExecutionTime",
|
|
237
|
+
"For multiple entity keys, use comma-separated values in filter",
|
|
238
|
+
"Use empty string '' as folderPath for root directory"
|
|
239
|
+
],
|
|
240
|
+
outputDescription: "JSON object with 'data' array containing test suites and pagination info",
|
|
241
|
+
readOnly: true,
|
|
242
|
+
idempotent: true,
|
|
243
|
+
openWorld: false
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
title: "Fetch Test Suites for Test Case",
|
|
247
|
+
summary: "Get test suites that can be linked to test cases in QMetry with automatic viewId resolution",
|
|
248
|
+
handler: QMetryToolsHandlers.FETCH_TESTSUITES_FOR_TESTCASE,
|
|
249
|
+
inputSchema: TestSuitesForTestCaseArgsSchema,
|
|
250
|
+
purpose: "Retrieve test suites available for linking with test cases. This tool helps organize test cases into test suites for better test management, execution planning, and reporting. You can filter test suites by various criteria to find the most appropriate suites for test case organization. The tsFolderID parameter is required and represents the Test Suite folder ID. The viewId parameter is automatically resolved from project info (latestViews.TSFS.viewId) if not provided, making the tool easier to use.",
|
|
251
|
+
useCases: [
|
|
252
|
+
"Get test suites available for linking with test cases",
|
|
253
|
+
"Find appropriate test suites for test case organization",
|
|
254
|
+
"Browse test suites in specific folders for better management",
|
|
255
|
+
"Filter test suites by release, cycle, or archive status",
|
|
256
|
+
"Organize test execution by grouping test cases into test suites",
|
|
257
|
+
"Plan test suite structure for comprehensive test coverage",
|
|
258
|
+
"Manage test case categorization for reporting purposes",
|
|
259
|
+
"Search for existing test suites before creating new ones",
|
|
260
|
+
"Get root test suite folder contents using project info"
|
|
261
|
+
],
|
|
262
|
+
examples: [
|
|
263
|
+
{
|
|
264
|
+
description: "Get test suites from root folder using auto-resolved viewId",
|
|
265
|
+
parameters: { tsFolderID: 113557 },
|
|
266
|
+
expectedOutput: "List of test suites available in the root test suite folder with auto-resolved viewId"
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
description: "Get test suites with custom pagination and auto-resolved viewId",
|
|
270
|
+
parameters: { tsFolderID: 113557, page: 1, limit: 25 },
|
|
271
|
+
expectedOutput: "Paginated list of test suites with 20 items per page"
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
description: "Filter test suites by release with auto-resolved viewId",
|
|
275
|
+
parameters: {
|
|
276
|
+
tsFolderID: 113557,
|
|
277
|
+
filter: '[{"type":"list","value":[55178],"field":"release"}]'
|
|
278
|
+
},
|
|
279
|
+
expectedOutput: "Test suites associated with Release 8.12 (ID: 55178)"
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
description: "Filter test suites by cycle with auto-resolved viewId",
|
|
283
|
+
parameters: {
|
|
284
|
+
tsFolderID: 113557,
|
|
285
|
+
filter: '[{"type":"list","value":[111577],"field":"cycle"}]'
|
|
286
|
+
},
|
|
287
|
+
expectedOutput: "Test suites associated with Cycle 8.12.1 (ID: 111577)"
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
description: "Get only active (non-archived) test suites",
|
|
291
|
+
parameters: {
|
|
292
|
+
tsFolderID: 113557,
|
|
293
|
+
filter: '[{"value":[0],"type":"list","field":"isArchived"}]'
|
|
294
|
+
},
|
|
295
|
+
expectedOutput: "List of active test suites (not archived)"
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
description: "Filter test suites by release and cycle",
|
|
299
|
+
parameters: {
|
|
300
|
+
tsFolderID: 113557,
|
|
301
|
+
filter: '[{"type":"list","value":[55178],"field":"release"},{"type":"list","value":[111577],"field":"cycle"}]'
|
|
302
|
+
},
|
|
303
|
+
expectedOutput: "Test suites associated with both Release 8.12 (ID: 55178) and Cycle 8.12.1 (ID: 111577)"
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
description: "Get test suites with column information",
|
|
307
|
+
parameters: { tsFolderID: 113557, getColumns: true },
|
|
308
|
+
expectedOutput: "Test suites list with detailed column metadata for better interpretation"
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
description: "Search test suites from specific sub-folder with manual viewId",
|
|
312
|
+
parameters: { tsFolderID: 42, viewId: 104316 },
|
|
313
|
+
// This is an example viewId, must be resolved per project TS viewId
|
|
314
|
+
expectedOutput: "Test suites available in specific folder ID 42 for test case linking"
|
|
315
|
+
}
|
|
316
|
+
],
|
|
317
|
+
hints: [
|
|
318
|
+
"CRITICAL: tsFolderID is REQUIRED - Test Suite folder ID will be auto-resolved if not provided",
|
|
319
|
+
"viewId will be AUTOMATICALLY RESOLVED from project info if not provided",
|
|
320
|
+
"HOW TO GET tsFolderID:",
|
|
321
|
+
"1. Call FETCH_PROJECT_INFO tool first to get project configuration",
|
|
322
|
+
"2. From the response, use rootFolders.TS.id for the root test suite folder",
|
|
323
|
+
"3. Example: rootFolders.TS.id = 113557 (MAC project root TS folder)",
|
|
324
|
+
"4. If user doesn't specify tsFolderID, automatically use rootFolders.TS.id from project info",
|
|
325
|
+
"VIEWID AUTO-RESOLUTION:",
|
|
326
|
+
"1. System automatically fetches project info using the projectKey",
|
|
327
|
+
"2. Extracts latestViews.TSFS.viewId automatically",
|
|
328
|
+
"3. Example: latestViews.TSFS.viewId = 104316 (MAC project TSFS view)",
|
|
329
|
+
// This is an example viewId, must be resolved per project TSFS viewId
|
|
330
|
+
"4. Manual viewId only needed if you want to override the automatic resolution",
|
|
331
|
+
"WORKFLOW: System automatically handles project info if tsFolderID or viewId is not provided",
|
|
332
|
+
"PROJECT INFO STRUCTURE: clientData.rootFolders.TS.id contains the root test suite folder ID",
|
|
333
|
+
"PROJECT INFO STRUCTURE: latestViews.TSFS.viewId contains the test suite folder view ID",
|
|
334
|
+
"For sub-folders: Use specific folder IDs if you know them, or call folder listing APIs",
|
|
335
|
+
"FILTER CAPABILITIES: Same as other QMetry list operations",
|
|
336
|
+
"FILTER FIELDS: release, cycle, isArchived, name, status, priority",
|
|
337
|
+
"RELEASE/CYCLE FILTERING: Use numeric IDs in list format (get from FETCH_RELEASES_AND_CYCLES)",
|
|
338
|
+
"ARCHIVE FILTERING: 0=Active, 1=Archived",
|
|
339
|
+
"getColumns=true provides additional metadata for result interpretation",
|
|
340
|
+
"Multiple filter conditions are combined with AND logic",
|
|
341
|
+
"Pagination supported for large result sets (start, page, limit parameters)",
|
|
342
|
+
"This tool helps organize test cases into logical test suites",
|
|
343
|
+
"Essential for test execution planning and test case management",
|
|
344
|
+
"Use this before creating new test suites to check existing ones"
|
|
345
|
+
],
|
|
346
|
+
outputDescription: "JSON object with test suites array and pagination metadata",
|
|
347
|
+
readOnly: true,
|
|
348
|
+
idempotent: true
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
title: "Link Test Cases to Test Suite",
|
|
352
|
+
summary: "Link test cases to a test suite in QMetry.",
|
|
353
|
+
handler: QMetryToolsHandlers.LINK_TESTCASES_TO_TESTSUITE,
|
|
354
|
+
inputSchema: LinkTestCasesToTestSuiteArgsSchema,
|
|
355
|
+
purpose: "Link one or more test cases to a test suite. Requires tcvdIDs, which can be auto-resolved from the test case entityKey using the test case list and version detail tools. Supports direct test case linkage.",
|
|
356
|
+
useCases: [
|
|
357
|
+
"Link test cases to a test suite by entity keys",
|
|
358
|
+
"Bulk link multiple test cases to a suite",
|
|
359
|
+
"Automate test suite composition from test cases"
|
|
360
|
+
],
|
|
361
|
+
examples: [
|
|
362
|
+
{
|
|
363
|
+
description: "Link test cases to a test suite",
|
|
364
|
+
parameters: {
|
|
365
|
+
tsID: 8674,
|
|
366
|
+
tcvdIDs: [5448504, 5448503],
|
|
367
|
+
fromReqs: false
|
|
368
|
+
},
|
|
369
|
+
expectedOutput: "Test cases QTM-TC-32 and QTM-TC-35 linked to test suite 8674."
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
description: "Link test cases directly to test suites with test cases entityKeys VT-TC-9, VT-TC-10 to test suite id 1487397",
|
|
373
|
+
parameters: {
|
|
374
|
+
tsID: 1487397,
|
|
375
|
+
tcvdIDs: [5448504, 5448503],
|
|
376
|
+
fromReqs: false
|
|
377
|
+
},
|
|
378
|
+
expectedOutput: "Test cases VT-TC-9 and VT-TC-10 linked to test suite 1487397."
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
description: "Link test case VT-TC-4, VT-TC-1,VT-TC-101, VT-TC-22 to test suite VT-TS-3",
|
|
382
|
+
parameters: {
|
|
383
|
+
tsID: 1487397,
|
|
384
|
+
tcvdIDs: [5448504, 5448503, 5448505, 5448506],
|
|
385
|
+
fromReqs: false
|
|
386
|
+
},
|
|
387
|
+
expectedOutput: "Test cases VT-TC-4, VT-TC-1, VT-TC-101, and VT-TC-22 linked to test suite VT-TS-3."
|
|
388
|
+
}
|
|
389
|
+
],
|
|
390
|
+
hints: [
|
|
391
|
+
"To get the tsID, call the Fetch Test Suites for Test Case API with rootFolderId otherwise if given folderid so use that and from response get the id.",
|
|
392
|
+
"To get the tcvdIDs by testcase entityKey, call the Testcase/Fetch Versions API and use data[<index>].tcVersionID.",
|
|
393
|
+
"Set fromReqs to false to direct test case linkage."
|
|
394
|
+
],
|
|
395
|
+
outputDescription: "JSON object with linkage status and details.",
|
|
396
|
+
readOnly: false,
|
|
397
|
+
idempotent: false
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
title: "Requirements Linked Test Cases to Test Suite",
|
|
401
|
+
summary: "Link test cases (including those linked to requirements) to a test suite in QMetry.",
|
|
402
|
+
handler: QMetryToolsHandlers.REQUIREMENTS_LINKED_TESTCASES_TO_TESTSUITE,
|
|
403
|
+
inputSchema: RequirementsLinkedTestCasesToTestSuiteArgsSchema,
|
|
404
|
+
purpose: "Link one or more test cases to a test suite. Requires tcvdIDs, which can be auto-resolved from the Fetch Test Cases Linked to Requirement API by <requirementEntityKey> to fetch If user provides entityKey (e.g., MAC-RQ-1011), first call FETCH_REQUIREMENTS with filter on entityKeyId to resolve the numeric rqID and get the linked test cases version ids from the tools.Supports requirement-based test case linkage.",
|
|
405
|
+
useCases: [
|
|
406
|
+
"Link requirements linked test cases to a test suite",
|
|
407
|
+
"Bulk link multiple requirements linked test cases to a suite",
|
|
408
|
+
"Automate test suite composition from requirements linked test cases"
|
|
409
|
+
],
|
|
410
|
+
examples: [
|
|
411
|
+
{
|
|
412
|
+
description: "VT-RQ-18 Requirements Linked test cases to a test suite",
|
|
413
|
+
parameters: { tsID: 8674, tcvdIDs: [5448504, 5448503], fromReqs: true },
|
|
414
|
+
expectedOutput: "Test cases QTM-TC-32 and QTM-TC-35 linked to test suite 8674."
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
description: "VT-RQ-19 Requirements Linked test cases to test suites id 1487397",
|
|
418
|
+
parameters: {
|
|
419
|
+
tsID: 1487397,
|
|
420
|
+
tcvdIDs: [5448504, 5448503],
|
|
421
|
+
fromReqs: true
|
|
422
|
+
},
|
|
423
|
+
expectedOutput: "Test cases VT-TC-9 and VT-TC-10 linked to test suite 1487397."
|
|
424
|
+
},
|
|
425
|
+
{
|
|
426
|
+
description: "VT-RQ-20 Requirements Linked test case to test suite VT-TS-3",
|
|
427
|
+
parameters: {
|
|
428
|
+
tsID: 1487397,
|
|
429
|
+
tcvdIDs: [5448504, 5448503, 5448505, 5448506],
|
|
430
|
+
fromReqs: true
|
|
431
|
+
},
|
|
432
|
+
expectedOutput: "Test cases VT-TC-4, VT-TC-1, VT-TC-101, and VT-TC-22 linked to test suite VT-TS-3."
|
|
433
|
+
}
|
|
434
|
+
],
|
|
435
|
+
hints: [
|
|
436
|
+
"To get the tsID, call the Fetch Test Suites for Test Case API with rootFolderId otherwise if given folderid so use that and from response get the id.",
|
|
437
|
+
"To get the requirement linked tcvdIDs by requirement entityKey, call the Fetch Test Cases Linked to Requirement API by <requirementEntityKey> to fetch If user provides entityKey (e.g., MAC-RQ-1011), first call FETCH_REQUIREMENTS with filter on entityKeyId to resolve the numeric rqID and get the linked test cases version ids.",
|
|
438
|
+
"Set fromReqs to true to link requirements linked test cases instead of direct test case linkage."
|
|
439
|
+
],
|
|
440
|
+
outputDescription: "JSON object with linkage status and details.",
|
|
441
|
+
readOnly: false,
|
|
442
|
+
idempotent: false
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
title: "Link Platforms to Test Suite",
|
|
446
|
+
summary: "Link one or more platforms to a QMetry Test Suite.",
|
|
447
|
+
handler: QMetryToolsHandlers.LINK_PLATFORMS_TO_TESTSUITE,
|
|
448
|
+
inputSchema: LinkPlatformsToTestSuiteArgsSchema,
|
|
449
|
+
purpose: "Associate testing platforms (browsers, OS, devices, or environments) with a specific Test Suite. This enables tracking which platforms a test suite should be executed on and helps organize test execution across different environments.",
|
|
450
|
+
useCases: [
|
|
451
|
+
"Link a single platform to a test suite",
|
|
452
|
+
"Link multiple platforms to a test suite for cross-platform testing",
|
|
453
|
+
"Define execution environments for a test suite",
|
|
454
|
+
"Organize test suites by supported platforms",
|
|
455
|
+
"Set up platform-specific test suite configurations"
|
|
456
|
+
],
|
|
457
|
+
examples: [
|
|
458
|
+
{
|
|
459
|
+
description: "Link single platform to a test suite",
|
|
460
|
+
parameters: {
|
|
461
|
+
qmTsId: 1511970,
|
|
462
|
+
qmPlatformId: "63004"
|
|
463
|
+
},
|
|
464
|
+
expectedOutput: "Platform 63004 linked to test suite 1511970 successfully."
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
description: "Link multiple platforms to a test suite",
|
|
468
|
+
parameters: {
|
|
469
|
+
qmTsId: 1511970,
|
|
470
|
+
qmPlatformId: "63004,63005,63006"
|
|
471
|
+
},
|
|
472
|
+
expectedOutput: "Platforms 63004, 63005, 63006 linked to test suite 1511970 successfully."
|
|
473
|
+
}
|
|
474
|
+
],
|
|
475
|
+
hints: [
|
|
476
|
+
"CRITICAL: qmTsId and qmPlatformId are REQUIRED parameters",
|
|
477
|
+
"To get the qmTsId (Test Suite ID):",
|
|
478
|
+
" 1. Call 'Testsuite/Fetch Testsuite' API",
|
|
479
|
+
" 2. From response, use data[<index>].id",
|
|
480
|
+
" 3. Example: Test Suite 'Login Tests' might have ID 1511970",
|
|
481
|
+
"To get the qmPlatformId (Platform ID):",
|
|
482
|
+
" 1. Call 'Platform/List' API (Fetch Platforms tool)",
|
|
483
|
+
" 2. From response, use data[<index>].platformID",
|
|
484
|
+
" 3. Example: Platform 'Chrome' might have ID 63004",
|
|
485
|
+
"qmPlatformId accepts comma-separated values for multiple platforms",
|
|
486
|
+
"Format for multiple platforms: '63004,63005,63006'",
|
|
487
|
+
"No spaces in the comma-separated list",
|
|
488
|
+
"If test suite entity key (e.g., VT-TS-12) is provided, first fetch test suites to resolve numeric ID",
|
|
489
|
+
"Platforms represent browsers, operating systems, devices, or custom environments",
|
|
490
|
+
"This tool helps organize cross-platform test execution",
|
|
491
|
+
"Essential for comprehensive platform coverage testing"
|
|
492
|
+
],
|
|
493
|
+
outputDescription: "JSON object with linkage status, success message, and details.",
|
|
494
|
+
readOnly: false,
|
|
495
|
+
idempotent: false
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
title: "Fetch Test Cases Linked to Test Suite",
|
|
499
|
+
summary: "Get test cases that are linked (or not linked) to a specific test suite in QMetry",
|
|
500
|
+
handler: QMetryToolsHandlers.FETCH_TESTCASES_BY_TESTSUITE,
|
|
501
|
+
inputSchema: TestCasesByTestSuiteArgsSchema,
|
|
502
|
+
purpose: "Retrieve test cases that are linked to a specific test suite. This tool provides the ability to see which test cases belong to a test suite, helping with test execution planning, suite management, and coverage analysis. The tsID parameter represents the Test Suite ID obtained from test suite listings. The getLinked parameter is optional and defaults to true for fetching linked test cases.",
|
|
503
|
+
useCases: [
|
|
504
|
+
"Get all test cases linked to a specific test suite for execution planning",
|
|
505
|
+
"Find test cases that are NOT linked to a test suite (gap analysis)",
|
|
506
|
+
"Analyze test suite composition and coverage",
|
|
507
|
+
"Filter linked test cases by various criteria",
|
|
508
|
+
"Plan test execution based on test suite structure",
|
|
509
|
+
"Generate test suite reports and documentation",
|
|
510
|
+
"Validate test suite contents before execution",
|
|
511
|
+
"Manage test case organization within test suites",
|
|
512
|
+
"Export test suite details for external reporting",
|
|
513
|
+
"Verify test case assignments in test suites"
|
|
514
|
+
],
|
|
515
|
+
examples: [
|
|
516
|
+
{
|
|
517
|
+
description: "Get all test cases linked to test suite ID 1497291 (default behavior)",
|
|
518
|
+
parameters: { tsID: 1497291 },
|
|
519
|
+
expectedOutput: "List of test cases linked to the test suite with test case details and metadata"
|
|
520
|
+
},
|
|
521
|
+
{
|
|
522
|
+
description: "Get all test cases linked to test suite ID 1497291 (explicit)",
|
|
523
|
+
parameters: { tsID: 1497291, getLinked: true },
|
|
524
|
+
expectedOutput: "List of test cases linked to the test suite with test case details and metadata"
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
description: "Get test cases NOT linked to test suite (gap analysis)",
|
|
528
|
+
parameters: { tsID: 1497291, getLinked: false },
|
|
529
|
+
expectedOutput: "List of test cases that are NOT linked to the test suite"
|
|
530
|
+
},
|
|
531
|
+
{
|
|
532
|
+
description: "Get linked test cases with custom pagination",
|
|
533
|
+
parameters: { tsID: 1497291, getLinked: true, page: 1, limit: 25 },
|
|
534
|
+
expectedOutput: "Paginated list of linked test cases with 50 items per page"
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
description: "Filter linked test cases by priority (using default getLinked=true)",
|
|
538
|
+
parameters: {
|
|
539
|
+
tsID: 1497291,
|
|
540
|
+
filter: '[{"value":[1,2],"type":"list","field":"priorityAlias"}]'
|
|
541
|
+
},
|
|
542
|
+
expectedOutput: "High and medium priority test cases linked to the suite"
|
|
543
|
+
},
|
|
544
|
+
{
|
|
545
|
+
description: "Filter linked test cases by status",
|
|
546
|
+
parameters: {
|
|
547
|
+
tsID: 1497291,
|
|
548
|
+
getLinked: true,
|
|
549
|
+
filter: '[{"value":[1],"type":"list","field":"testCaseStateAlias"}]'
|
|
550
|
+
},
|
|
551
|
+
expectedOutput: "Active test cases linked to the test suite"
|
|
552
|
+
}
|
|
553
|
+
],
|
|
554
|
+
hints: [
|
|
555
|
+
"CRITICAL: tsID parameter is REQUIRED - this is the Test Suite numeric ID",
|
|
556
|
+
"getLinked parameter is OPTIONAL - defaults to true if not provided",
|
|
557
|
+
"HOW TO GET tsID:",
|
|
558
|
+
"1. Call API 'Testsuite/Fetch Testsuite' to get available test suites",
|
|
559
|
+
"2. From the response, get value of following attribute -> data[<index>].id",
|
|
560
|
+
"3. Example: Test Suite 'Regression Suite' might have ID 1497291",
|
|
561
|
+
"tsID is NOT the same as tsFolderID - tsID refers to a specific test suite, not a folder",
|
|
562
|
+
"getLinked=true (default): Returns test cases that ARE linked to the test suite",
|
|
563
|
+
"getLinked=false: Returns test cases that are NOT linked to the test suite (useful for gap analysis)",
|
|
564
|
+
"If getLinked is not specified, it defaults to true (linked test cases)",
|
|
565
|
+
"FILTER CAPABILITIES: Support filtering by test case properties",
|
|
566
|
+
"FILTER FIELDS: priorityAlias (list), testCaseStateAlias (list), testingTypeAlias (list), testCaseTypeAlias (list), componentAlias (list), owner (list)",
|
|
567
|
+
"PRIORITY IDs: Typically 1=High, 2=Medium, 3=Low (verify with your QMetry instance)",
|
|
568
|
+
"STATUS IDs: Typically 1=Active, 2=Review, 3=Deprecated (verify with your QMetry instance)",
|
|
569
|
+
"TESTING TYPE IDs: Typically 1=Manual, 2=Automated (verify with your QMetry instance)",
|
|
570
|
+
"TYPE IDs: Typically 1=Functional, 2=Integration, 3=System (verify with your QMetry instance)",
|
|
571
|
+
"Multiple filter conditions are combined with AND logic",
|
|
572
|
+
"Use pagination for large result sets (start, page, limit parameters)",
|
|
573
|
+
"This tool is essential for test suite management and execution planning",
|
|
574
|
+
"Helps verify test suite composition before test runs",
|
|
575
|
+
"Critical for understanding test coverage within specific suites",
|
|
576
|
+
"Use for test suite analysis and optimization"
|
|
577
|
+
],
|
|
578
|
+
outputDescription: "JSON object with test cases array containing test case details, properties, and suite linkage information",
|
|
579
|
+
readOnly: true,
|
|
580
|
+
idempotent: true
|
|
581
|
+
},
|
|
582
|
+
{
|
|
583
|
+
title: "Fetch Executions by Test Suite",
|
|
584
|
+
summary: "Get executions for a given test suite in QMetry",
|
|
585
|
+
handler: QMetryToolsHandlers.FETCH_EXECUTIONS_BY_TESTSUITE,
|
|
586
|
+
inputSchema: ExecutionsByTestSuiteArgsSchema,
|
|
587
|
+
purpose: "Retrieve test executions that belong to a specific test suite. This tool provides comprehensive execution data including test results, execution status, platforms, releases, cycles, and other execution metadata. Essential for test execution reporting, trend analysis, and test suite performance monitoring.",
|
|
588
|
+
useCases: [
|
|
589
|
+
"Get all executions for a specific test suite for reporting purposes",
|
|
590
|
+
"Analyze test execution results and trends within a test suite",
|
|
591
|
+
"Filter executions by release, cycle, platform, or automation status",
|
|
592
|
+
"Monitor test suite execution performance across different environments",
|
|
593
|
+
"Generate execution reports for specific test suites",
|
|
594
|
+
"Track execution history and patterns for test suite optimization",
|
|
595
|
+
"Validate test suite execution coverage across releases and cycles",
|
|
596
|
+
"Audit test execution data for compliance and quality assurance",
|
|
597
|
+
"Export execution data for external reporting and analytics"
|
|
598
|
+
],
|
|
599
|
+
examples: [
|
|
600
|
+
{
|
|
601
|
+
description: "Get all executions for test suite ID 194955",
|
|
602
|
+
parameters: { tsID: 194955 },
|
|
603
|
+
expectedOutput: "List of executions for the test suite with execution details, status, and metadata"
|
|
604
|
+
},
|
|
605
|
+
{
|
|
606
|
+
description: "Get executions with test suite folder and view ID",
|
|
607
|
+
parameters: {
|
|
608
|
+
tsID: 194955,
|
|
609
|
+
tsFolderID: 126554,
|
|
610
|
+
viewId: 41799
|
|
611
|
+
// This is an example viewId, must be resolved per project TEL viewId
|
|
612
|
+
},
|
|
613
|
+
expectedOutput: "Executions filtered by test suite folder and specific view configuration"
|
|
614
|
+
},
|
|
615
|
+
{
|
|
616
|
+
description: "Filter executions by release and cycle",
|
|
617
|
+
parameters: {
|
|
618
|
+
tsID: 194955,
|
|
619
|
+
filter: '[{"type":"list","value":[55178],"field":"releaseID"},{"type":"list","value":[111577],"field":"cycleID"}]'
|
|
620
|
+
},
|
|
621
|
+
expectedOutput: "Executions filtered by specific release (55178) and cycle (111577)"
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
description: "Filter executions by platform and automation status",
|
|
625
|
+
parameters: {
|
|
626
|
+
tsID: 194955,
|
|
627
|
+
filter: '[{"type":"list","value":[12345],"field":"platformID"},{"type":"boolean","value":true,"field":"isAutomatedFlag"}]'
|
|
628
|
+
},
|
|
629
|
+
expectedOutput: "Automated executions filtered by specific platform (12345)"
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
description: "Get only active (non-archived) executions",
|
|
633
|
+
parameters: {
|
|
634
|
+
tsID: 194955,
|
|
635
|
+
filter: '[{"value":[0],"type":"list","field":"isArchived"}]'
|
|
636
|
+
},
|
|
637
|
+
expectedOutput: "Active executions that are not archived"
|
|
638
|
+
},
|
|
639
|
+
{
|
|
640
|
+
description: "Get executions with custom pagination and grid name",
|
|
641
|
+
parameters: {
|
|
642
|
+
tsID: 194955,
|
|
643
|
+
gridName: "TESTEXECUTIONLIST",
|
|
644
|
+
page: 1,
|
|
645
|
+
limit: 25
|
|
646
|
+
},
|
|
647
|
+
expectedOutput: "Paginated list of executions with 25 items per page using specific grid configuration"
|
|
648
|
+
}
|
|
649
|
+
],
|
|
650
|
+
hints: [
|
|
651
|
+
"!MOST IMPORTANT HOW TO GET viewId:",
|
|
652
|
+
"CRITICAL: Always resolve and use the correct test execution viewId for the current project when calling this tool.",
|
|
653
|
+
"The viewId parameter must be fetched from the active project's info (latestViews.TEL.viewId).",
|
|
654
|
+
"Each QMetry project may have a different test execution list viewId, so using a stale or incorrect viewId will result in incomplete or invalid executions list data by test suite id.",
|
|
655
|
+
"Usage workflow:",
|
|
656
|
+
"1. Fetch project info for the current project (Admin/Get info Service).",
|
|
657
|
+
"2. Extract latestViews.TEL.viewId from the response.",
|
|
658
|
+
"3. Use this viewId in the Fetch Test Case Runs by Test Suite Run API call.",
|
|
659
|
+
"Example:",
|
|
660
|
+
" {",
|
|
661
|
+
" tsID: 1533730,",
|
|
662
|
+
" viewId: 94194,",
|
|
663
|
+
// This is an example viewId, must be resolved per project TEL viewId
|
|
664
|
+
" gridName: 'TESTEXECUTIONLIST'",
|
|
665
|
+
" }",
|
|
666
|
+
"CRITICAL: tsID parameter is REQUIRED - this is the Test Suite numeric ID",
|
|
667
|
+
"HOW TO GET tsID:",
|
|
668
|
+
"1. Call API 'Testsuite/Fetch Testsuite' to get available test suites",
|
|
669
|
+
"2. From the response, get value of following attribute -> data[<index>].id",
|
|
670
|
+
"3. Example: Test Suite 'Regression Suite' might have ID 194955",
|
|
671
|
+
"HOW TO GET tsFolderID (optional):",
|
|
672
|
+
"1. Call API 'Testsuite/List of folders' to get test suite folders",
|
|
673
|
+
"2. From the response, get value of following attribute -> data[<index>].id",
|
|
674
|
+
"3. Example: Test Suite folder might have ID 126554",
|
|
675
|
+
"FILTER CAPABILITIES: Extensive filtering by execution properties",
|
|
676
|
+
"FILTER FIELDS: releaseID (list), cycleID (list), platformID (list), isAutomatedFlag (boolean), isArchived (list)",
|
|
677
|
+
"RELEASE/CYCLE FILTERING: Use numeric IDs in list format (get from FETCH_RELEASES_AND_CYCLES)",
|
|
678
|
+
"PLATFORM FILTERING: Use numeric platform IDs (get from FETCH_PLATFORMS)",
|
|
679
|
+
"AUTOMATION STATUS: Use boolean true/false for isAutomatedFlag field",
|
|
680
|
+
"ARCHIVE STATUS: 0=Active executions, 1=Archived executions",
|
|
681
|
+
"GRID NAME: Default is 'TESTEXECUTIONLIST' - used for execution list display configuration",
|
|
682
|
+
"VIEW ID: Optional numeric identifier for specific execution view configurations",
|
|
683
|
+
"Multiple filter conditions are combined with AND logic",
|
|
684
|
+
"Use pagination for large execution result sets (start, page, limit parameters)",
|
|
685
|
+
"This tool is essential for test execution analysis and reporting",
|
|
686
|
+
"Critical for monitoring test suite performance and execution trends",
|
|
687
|
+
"Use for compliance reporting and execution audit trails",
|
|
688
|
+
"Essential for test execution planning and resource optimization"
|
|
689
|
+
],
|
|
690
|
+
outputDescription: "JSON object with executions array containing execution details, status, platforms, releases, and execution metadata",
|
|
691
|
+
readOnly: true,
|
|
692
|
+
idempotent: true
|
|
693
|
+
},
|
|
694
|
+
{
|
|
695
|
+
title: "Fetch Test Case Runs by Test Suite Run",
|
|
696
|
+
summary: "Get test case runs under a specific test suite run execution in QMetry",
|
|
697
|
+
handler: QMetryToolsHandlers.FETCH_TESTCASE_RUNS_BY_TESTSUITE_RUN,
|
|
698
|
+
inputSchema: TestCaseRunsByTestSuiteRunArgsSchema,
|
|
699
|
+
purpose: "Retrieve detailed test case run information for a specific test suite run execution. This tool provides comprehensive test case run data including execution status, test results, tester information, execution dates, and other run metadata. Essential for detailed execution analysis, test run reporting, and execution audit trails. NOTE: Uses simplified payload structure with only essential parameters (start, page, limit, tsrunID, viewId).",
|
|
700
|
+
useCases: [
|
|
701
|
+
"Get all test case runs under a specific test suite run execution",
|
|
702
|
+
"Analyze individual test case execution results and status",
|
|
703
|
+
"Monitor test case run performance and execution trends",
|
|
704
|
+
"Generate detailed test execution reports for specific runs",
|
|
705
|
+
"Track test case run history and execution patterns",
|
|
706
|
+
"Validate test case run coverage and execution completeness",
|
|
707
|
+
"Audit test case run data for compliance and quality assurance",
|
|
708
|
+
"Export detailed test case run data for external reporting",
|
|
709
|
+
"Retrieve paginated test case run results for large test suite executions"
|
|
710
|
+
],
|
|
711
|
+
examples: [
|
|
712
|
+
{
|
|
713
|
+
description: "Get all test case runs for test suite run ID '107021'",
|
|
714
|
+
parameters: { tsrunID: "107021", viewId: 6887 },
|
|
715
|
+
// This is an example viewId, must be resolved per project TE viewId
|
|
716
|
+
expectedOutput: "List of test case runs with execution details, status, and metadata"
|
|
717
|
+
},
|
|
718
|
+
{
|
|
719
|
+
description: "Get test case runs with linked defects",
|
|
720
|
+
parameters: {
|
|
721
|
+
tsrunID: "107021",
|
|
722
|
+
viewId: 6887,
|
|
723
|
+
// This is an example viewId, must be resolved per project TE viewId
|
|
724
|
+
page: 1,
|
|
725
|
+
limit: 25
|
|
726
|
+
},
|
|
727
|
+
expectedOutput: "Paginated list of test case runs with 25 items per page"
|
|
728
|
+
},
|
|
729
|
+
{
|
|
730
|
+
description: "Get test case runs for test suite run ID '2362144'",
|
|
731
|
+
parameters: {
|
|
732
|
+
tsrunID: "2362144",
|
|
733
|
+
viewId: 104123,
|
|
734
|
+
// This is an example viewId, must be resolved per project TE viewId
|
|
735
|
+
start: 0,
|
|
736
|
+
page: 1,
|
|
737
|
+
limit: 25
|
|
738
|
+
},
|
|
739
|
+
expectedOutput: "Test case runs from the specified test suite run execution"
|
|
740
|
+
}
|
|
741
|
+
],
|
|
742
|
+
hints: [
|
|
743
|
+
"CRITICAL WORKFLOW FOR FETCHING ALL EXECUTIONS OF A TEST SUITE:",
|
|
744
|
+
"When user asks to:",
|
|
745
|
+
" - 'fetch all executions'",
|
|
746
|
+
" - 'get all test runs'",
|
|
747
|
+
" - 'fetch all tcRunIDs for test suite X'",
|
|
748
|
+
" - 'update status for all executions of test suite X'",
|
|
749
|
+
"STEP 1: First call FETCH_EXECUTIONS_BY_TESTSUITE tool with the test suite ID (tsID, not entityKey)",
|
|
750
|
+
" - This returns ALL execution records for that test suite (could be 3, 5, 9, or any number)",
|
|
751
|
+
" - Extract ALL tsRunID values from the response data array",
|
|
752
|
+
" - Example response: data: [{tsRunID: '2739237', ...}, {tsRunID: '2739236', ...}, {tsRunID: '2739235', ...}]",
|
|
753
|
+
"STEP 2: For EACH tsRunID from Step 1, call this tool (FETCH_TEST_CASE_RUNS_BY_TESTSUITE_RUN)",
|
|
754
|
+
" - This returns all test case runs (tcRunID values) for that specific execution",
|
|
755
|
+
" - Repeat for ALL tsRunID values discovered in Step 1",
|
|
756
|
+
"STEP 3: Collect all tcRunID values from all executions",
|
|
757
|
+
" - Now you have the complete list of test case runs across ALL executions",
|
|
758
|
+
" - Use these for bulk status updates or other operations",
|
|
759
|
+
"CRITICAL ERROR TO AVOID:",
|
|
760
|
+
"- NEVER assume or hard-code only 2-3 execution IDs",
|
|
761
|
+
"- NEVER skip Step 1 - always discover ALL executions first",
|
|
762
|
+
"- NEVER fetch tcRunIDs for only some executions - get ALL of them",
|
|
763
|
+
"- If there are 9 executions, you must fetch tcRunIDs for all 9, not just 2",
|
|
764
|
+
"EXAMPLE WORKFLOW:",
|
|
765
|
+
"User: 'Fetch all test case runs for test suite VKMCP-TS-21'",
|
|
766
|
+
"Step 1: Call FETCH_EXECUTIONS_BY_TESTSUITE with tsID (resolved from VKMCP-TS-21)",
|
|
767
|
+
" Result: Found 9 executions with tsRunIDs: 2739237, 2739236, 2739235, 2739234, 2739233, 2739232, 2739231, 2739230, 2739229",
|
|
768
|
+
"Step 2: Call this tool 9 times (once for each tsRunID)",
|
|
769
|
+
" Call 1: tsrunID='2739237' -> returns 54 tcRunIDs",
|
|
770
|
+
" Call 2: tsrunID='2739236' -> returns 54 tcRunIDs",
|
|
771
|
+
" ... (repeat for all 9)",
|
|
772
|
+
"Step 3: Total collected: 9 executions × 54 test cases = 486 total tcRunIDs",
|
|
773
|
+
"",
|
|
774
|
+
"PERFORMANCE CONSIDERATIONS FOR LARGE TEST RUNS:",
|
|
775
|
+
"When dealing with large numbers of test case runs (500+, 1000+), follow these guidelines:",
|
|
776
|
+
"1. ALWAYS inform the user about the scale BEFORE starting operations:",
|
|
777
|
+
" Example: 'Found 9 executions with approximately 486 test case runs. This will require fetching data from all 9 executions and may take a moment.'",
|
|
778
|
+
"2. For bulk status updates on 1000+ test case runs:",
|
|
779
|
+
" - NEVER attempt to update all 1000+ in a single operation",
|
|
780
|
+
" - Break into smaller batches of 10-20 test case runs per update",
|
|
781
|
+
" - Inform user: 'Found 1000 test case runs. Will process in batches of 20 to ensure reliability and performance.'",
|
|
782
|
+
" - Show progress: 'Processing batch 1/50 (20 test runs)...', 'Batch 2/50...'",
|
|
783
|
+
"3. Recommended batch sizes:",
|
|
784
|
+
" - For status updates: 10-20 test case runs per batch",
|
|
785
|
+
" - For fetching data: Can handle larger batches (50-100)",
|
|
786
|
+
" - Adjust based on API response times and timeout limits",
|
|
787
|
+
"4. Always provide progress updates for long-running operations:",
|
|
788
|
+
" - Before: 'Processing 1000 test runs in 50 batches of 20...'",
|
|
789
|
+
" - During: 'Completed 200/1000 test runs (10 batches)...'",
|
|
790
|
+
" - After: 'Successfully updated all 1000 test case runs.'",
|
|
791
|
+
"5. Error handling for batch operations:",
|
|
792
|
+
" - If a batch fails, report which batch and continue with remaining",
|
|
793
|
+
" - Provide summary at the end: 'Completed 48/50 batches. 2 batches failed (batch 23, 45).'",
|
|
794
|
+
" - Allow user to retry failed batches specifically",
|
|
795
|
+
"EXAMPLE LARGE-SCALE WORKFLOW:",
|
|
796
|
+
"User: 'Update status to Failed for all test runs in VKMCP-TS-21'",
|
|
797
|
+
"Step 1: Discover all executions (9 found)",
|
|
798
|
+
"Step 2: Fetch all tcRunIDs (486 total)",
|
|
799
|
+
"Step 3: Inform user: 'Found 486 test case runs across 9 executions. Will update in 25 batches of 20 runs each.'",
|
|
800
|
+
"Step 4: Process in batches with progress updates",
|
|
801
|
+
"Step 5: Report completion: 'Successfully updated all 486 test case runs to Failed status.'",
|
|
802
|
+
"",
|
|
803
|
+
"CRITICAL: tsrunID and viewId parameters are REQUIRED",
|
|
804
|
+
"tsrunID is a STRING identifier for the test suite run execution",
|
|
805
|
+
"viewId is a NUMERIC identifier for the test execution view",
|
|
806
|
+
"!MOST IMPORTANT HOW TO GET tsrunID:",
|
|
807
|
+
"1. Call API 'Execution/Fetch Executions' (FETCH_EXECUTIONS_BY_TESTSUITE) to get ALL available executions",
|
|
808
|
+
"2. From the response, get value of following attribute -> data[<index>].tsRunID for EVERY execution",
|
|
809
|
+
"3. Example: Test Suite might have multiple executions with IDs '107021', '107022', '107023', etc.",
|
|
810
|
+
"4. NEVER assume there are only 2-3 executions - always fetch to discover the actual count",
|
|
811
|
+
"!MOST IMPORTANT HOW TO GET viewId:",
|
|
812
|
+
"CRITICAL: Always resolve and use the correct test execution viewId for the current project when calling this tool.",
|
|
813
|
+
"The viewId parameter must be fetched from the active project's info (latestViews.TE.viewId).",
|
|
814
|
+
"Each QMetry project may have a different test execution viewId, so using a stale or incorrect viewId will result in incomplete or invalid test case run data.",
|
|
815
|
+
"Usage workflow:",
|
|
816
|
+
"1. Fetch project info for the current project (Admin/Get info Service).",
|
|
817
|
+
"2. Extract latestViews.TE.viewId from the response.",
|
|
818
|
+
"3. Use this viewId in the Fetch Test Case Runs by Test Suite Run API call.",
|
|
819
|
+
"Example:",
|
|
820
|
+
" {",
|
|
821
|
+
' tsrunID: "2362144",',
|
|
822
|
+
" viewId: 104123,",
|
|
823
|
+
// This is an example viewId, must be resolved per project TE viewId
|
|
824
|
+
" start: 0,",
|
|
825
|
+
" page: 1,",
|
|
826
|
+
" limit: 25",
|
|
827
|
+
" }",
|
|
828
|
+
"This ensures the tool fetches the proper execution runs data for the selected project context.",
|
|
829
|
+
"SIMPLIFIED PAYLOAD: API only accepts essential parameters",
|
|
830
|
+
"SUPPORTED PARAMETERS: start, page, limit, tsrunID, viewId",
|
|
831
|
+
"REMOVED PARAMETERS: filter, sort, showTcWithDefects, udfFilter (cause API errors)",
|
|
832
|
+
"PAGINATION: Use start, page, and limit for result pagination",
|
|
833
|
+
"API REQUIREMENT: Must use exact payload structure that works in Postman",
|
|
834
|
+
'PAYLOAD FORMAT: {"start": 0, "page": 1, "limit": 10, "tsrunID": "2362144", "viewId": 104123}',
|
|
835
|
+
// Example payload, must use resolved viewId per project TE viewId
|
|
836
|
+
"Use pagination for large result sets (start, page, limit parameters)",
|
|
837
|
+
"This tool is essential for detailed test execution analysis and reporting",
|
|
838
|
+
"Critical for monitoring individual test case execution performance",
|
|
839
|
+
"Use for compliance reporting and execution audit trails",
|
|
840
|
+
"Essential for test execution quality assurance and trend analysis"
|
|
841
|
+
],
|
|
842
|
+
outputDescription: "JSON object with test case runs array containing detailed execution information, status, tester details, and run metadata",
|
|
843
|
+
readOnly: true,
|
|
844
|
+
idempotent: true
|
|
845
|
+
},
|
|
846
|
+
{
|
|
847
|
+
title: "Bulk Update Test Case Execution Status",
|
|
848
|
+
summary: "Update execution status for individual or multiple test case runs in bulk",
|
|
849
|
+
handler: QMetryToolsHandlers.BULK_UPDATE_EXECUTION_STATUS,
|
|
850
|
+
inputSchema: BulkUpdateExecutionStatusArgsSchema,
|
|
851
|
+
purpose: "Update the execution status (Pass, Fail, Blocked, Not Run, WIP, etc.) for one or more test case runs. This tool enables both single and bulk status updates for test executions, providing flexibility for manual test execution management, automated test result updates, and test execution tracking. Essential for maintaining accurate test execution records and execution status reporting.",
|
|
852
|
+
useCases: [
|
|
853
|
+
"Update single test case run status to Pass, Fail, Blocked, or Not Run",
|
|
854
|
+
"Bulk update multiple test case run statuses in a single operation",
|
|
855
|
+
"Mark all selected test case runs as Not Run for re-execution",
|
|
856
|
+
"Update execution status after manual test execution",
|
|
857
|
+
"Set execution status based on automated test results",
|
|
858
|
+
"Update test execution status across different test environments",
|
|
859
|
+
"Track test execution progress and completion",
|
|
860
|
+
"Manage test execution status for compliance and reporting"
|
|
861
|
+
],
|
|
862
|
+
examples: [
|
|
863
|
+
{
|
|
864
|
+
description: "Update single test case run status to Failed (single execution)",
|
|
865
|
+
parameters: {
|
|
866
|
+
entityIDs: "66095087",
|
|
867
|
+
entityType: "TCR",
|
|
868
|
+
qmTsRunId: "2720260",
|
|
869
|
+
runStatusID: 123266,
|
|
870
|
+
isBulkOperation: false
|
|
871
|
+
},
|
|
872
|
+
expectedOutput: "Test case run 66095087 status updated to Failed successfully"
|
|
873
|
+
},
|
|
874
|
+
{
|
|
875
|
+
description: "Bulk update two test case runs to Pass status (bulk execution)",
|
|
876
|
+
parameters: {
|
|
877
|
+
entityIDs: "66095069,66095075",
|
|
878
|
+
entityType: "TCR",
|
|
879
|
+
qmTsRunId: "2720260",
|
|
880
|
+
runStatusID: 123268,
|
|
881
|
+
isBulkOperation: true,
|
|
882
|
+
comments: "All test cases passed successfully"
|
|
883
|
+
},
|
|
884
|
+
expectedOutput: "Test case runs 66095069 and 66095075 updated to Pass status successfully"
|
|
885
|
+
},
|
|
886
|
+
{
|
|
887
|
+
description: "Bulk update all selected test case runs to Not Run status",
|
|
888
|
+
parameters: {
|
|
889
|
+
entityIDs: "66095069,66095075,66095081,66095087,66095093,66095099,66095105",
|
|
890
|
+
entityType: "TCR",
|
|
891
|
+
qmTsRunId: "2720260",
|
|
892
|
+
runStatusID: 123269,
|
|
893
|
+
isBulkOperation: true
|
|
894
|
+
},
|
|
895
|
+
expectedOutput: "7 test case runs updated to Not Run status successfully for re-execution"
|
|
896
|
+
},
|
|
897
|
+
{
|
|
898
|
+
description: "Update test case run with build/drop information",
|
|
899
|
+
parameters: {
|
|
900
|
+
entityIDs: "66095087",
|
|
901
|
+
entityType: "TCR",
|
|
902
|
+
qmTsRunId: "2720260",
|
|
903
|
+
runStatusID: 123266,
|
|
904
|
+
dropID: 947,
|
|
905
|
+
isBulkOperation: false
|
|
906
|
+
},
|
|
907
|
+
expectedOutput: "Test case run updated with execution status and build information"
|
|
908
|
+
},
|
|
909
|
+
{
|
|
910
|
+
description: "Update automated test execution status with automation flag",
|
|
911
|
+
parameters: {
|
|
912
|
+
entityIDs: "66095069,66095075",
|
|
913
|
+
entityType: "TCR",
|
|
914
|
+
qmTsRunId: "2720260",
|
|
915
|
+
runStatusID: 123268,
|
|
916
|
+
isAutoExecuted: "1",
|
|
917
|
+
isBulkOperation: true,
|
|
918
|
+
comments: "Automated test execution completed"
|
|
919
|
+
},
|
|
920
|
+
expectedOutput: "Automated test case runs updated to Pass status with automation flag"
|
|
921
|
+
},
|
|
922
|
+
{
|
|
923
|
+
description: "Update test case run status with Part 11 Compliance authentication",
|
|
924
|
+
parameters: {
|
|
925
|
+
entityIDs: "66095087",
|
|
926
|
+
entityType: "TCR",
|
|
927
|
+
qmTsRunId: "2720260",
|
|
928
|
+
runStatusID: 123266,
|
|
929
|
+
username: "dhaval.mistry",
|
|
930
|
+
password: "Ispl123#",
|
|
931
|
+
isBulkOperation: false
|
|
932
|
+
},
|
|
933
|
+
expectedOutput: "Test case run status updated with Part 11 Compliance authentication"
|
|
934
|
+
},
|
|
935
|
+
{
|
|
936
|
+
description: "Update ALL executions of test suite VKMC-TS-20 to Failed (MULTI-CALL OPERATION)",
|
|
937
|
+
parameters: {
|
|
938
|
+
entityIDs: "66341841,66342887,66342893,66342899",
|
|
939
|
+
entityType: "TCR",
|
|
940
|
+
qmTsRunId: "2733104",
|
|
941
|
+
runStatusID: 123269,
|
|
942
|
+
isBulkOperation: true
|
|
943
|
+
},
|
|
944
|
+
expectedOutput: "Execution 1/4 updated. The MCP Agent will automatically repeat this operation for executions 2733205, 2733306, and 2733407 using their corresponding entityIDs."
|
|
945
|
+
}
|
|
946
|
+
],
|
|
947
|
+
hints: [
|
|
948
|
+
"CRITICAL: entityIDs, entityType, qmTsRunId, and runStatusID are REQUIRED parameters",
|
|
949
|
+
"",
|
|
950
|
+
"⚠️ CRITICAL - ALWAYS FETCH STATUS IDs FROM PROJECT INFO:",
|
|
951
|
+
"NEVER use hardcoded or memorized status IDs. Status IDs are PROJECT-SPECIFIC and must be fetched dynamically.",
|
|
952
|
+
"MANDATORY WORKFLOW BEFORE USING runStatusID:",
|
|
953
|
+
"1. Call mcp_smartbear_qmetry_fetch_qmetry_project_info with the current projectKey",
|
|
954
|
+
"2. Extract the 'allstatus' array from the response",
|
|
955
|
+
"3. Match the desired status NAME to find its corresponding ID",
|
|
956
|
+
"4. Use the fetched ID in the runStatusID parameter",
|
|
957
|
+
"",
|
|
958
|
+
"EXAMPLE STATUS ID RESOLUTION:",
|
|
959
|
+
"User says: 'Update status to Failed'",
|
|
960
|
+
"Step 1: Call FETCH_PROJECT_INFO → Get allstatus array",
|
|
961
|
+
"Step 2: Find status where name='Failed' → Extract its id property",
|
|
962
|
+
"Step 3: Use that id as runStatusID (e.g., 123269 for 'Failed')",
|
|
963
|
+
"",
|
|
964
|
+
"COMMON STATUS NAMES (IDs vary by project - MUST VALIDATE):",
|
|
965
|
+
"- 'Passed' / 'Pass' - Test case executed successfully",
|
|
966
|
+
"- 'Failed' / 'Fail' - Test case failed with errors",
|
|
967
|
+
"- 'Blocked' - Test case cannot be executed due to blockers",
|
|
968
|
+
"- 'Not Run' - Test case not yet executed or needs re-execution",
|
|
969
|
+
"- 'WIP' / 'Work In Progress' - Test case execution in progress",
|
|
970
|
+
"- 'Not Applicable' - Test case not applicable for this execution",
|
|
971
|
+
"",
|
|
972
|
+
"WHY THIS IS CRITICAL:",
|
|
973
|
+
"- Status IDs are assigned per QMetry project and are NOT universal",
|
|
974
|
+
"- Using wrong status ID will update tests with incorrect status",
|
|
975
|
+
"- Example: ID 123268 might be 'Blocked' in one project but 'Passed' in another",
|
|
976
|
+
"- The allstatus array is the AUTHORITATIVE source for all status mappings",
|
|
977
|
+
"",
|
|
978
|
+
"HOW TO GET entityIDs (Test Case Run IDs):",
|
|
979
|
+
"1. Call API 'Execution/Fetch Testcase Run ID' (FETCH_TESTCASE_RUNS_BY_TESTSUITE_RUN tool)",
|
|
980
|
+
"2. From the response, get value of following attribute -> data[<index>].tcRunID",
|
|
981
|
+
"3. Example: Single ID '66095087' or Multiple IDs '66095069,66095075,66095081'",
|
|
982
|
+
"4. For bulk operations, provide comma-separated IDs without spaces",
|
|
983
|
+
"HOW TO GET qmTsRunId (Test Suite Run ID):",
|
|
984
|
+
"1. Call API 'Execution/Fetch Executions' (FETCH_EXECUTIONS_BY_TESTSUITE tool)",
|
|
985
|
+
"2. From the response, get value of following attribute -> data[<index>].tsRunID",
|
|
986
|
+
"3. Example: Test Suite Run ID might be '2720260'",
|
|
987
|
+
"HOW TO GET runStatusID (Execution Status ID) - DETAILED PROCESS:",
|
|
988
|
+
"1. Call API 'Admin/Get info Service' (FETCH_PROJECT_INFO tool) with projectKey",
|
|
989
|
+
"2. From the response, locate the 'allstatus' array",
|
|
990
|
+
"3. Search for the status object where name matches your desired status (case-insensitive)",
|
|
991
|
+
"4. Extract the 'id' property from the matching status object",
|
|
992
|
+
"5. NEVER use example IDs from documentation - they are project-specific",
|
|
993
|
+
"",
|
|
994
|
+
"EXAMPLE allstatus ARRAY STRUCTURE:",
|
|
995
|
+
"allstatus: [",
|
|
996
|
+
" { name: 'Passed', defaultName: 'passed', id: 123266, color: '#14892C|#FFFFFF' },",
|
|
997
|
+
" { name: 'Failed', defaultName: 'failed', id: 123269, color: '#FF6666|#FFFFFF' },",
|
|
998
|
+
" { name: 'Blocked', defaultName: 'blocked', id: 123268, color: '#CCCCCC|#FFFFFF' },",
|
|
999
|
+
" { name: 'Not Run', defaultName: 'notrun', id: 123270, color: '#205081|#FFFFFF', isdefault: true },",
|
|
1000
|
+
" { name: 'Not Applicable', defaultName: 'empty', id: 123267, color: '#59AFE1|#FFFFFF' }",
|
|
1001
|
+
"]",
|
|
1002
|
+
"Note: Above IDs are EXAMPLES ONLY - fetch actual IDs from your project",
|
|
1003
|
+
"HOW TO GET dropID (Build/Drop ID) - OPTIONAL:",
|
|
1004
|
+
"1. Call API 'Build/List' (FETCH_BUILDS tool)",
|
|
1005
|
+
"2. From the response, get value of following attribute -> data[<index>].dropID",
|
|
1006
|
+
"3. Example: Build/Drop ID might be 947",
|
|
1007
|
+
"ENTITY TYPES:",
|
|
1008
|
+
"- 'TCR' = Test Case Run (most common use case)",
|
|
1009
|
+
"- 'TCSR' = Test Case Step Run (for step-level execution updates)",
|
|
1010
|
+
"BULK OPERATION FLAG:",
|
|
1011
|
+
"- isBulkOperation=false: Single test case run update (one entityID)",
|
|
1012
|
+
"- isBulkOperation=true: Multiple test case runs update (comma-separated entityIDs)",
|
|
1013
|
+
"- Auto-detected: If entityIDs contains comma, defaults to true; otherwise false",
|
|
1014
|
+
"AUTOMATION FLAG (isAutoExecuted) - OPTIONAL:",
|
|
1015
|
+
"- '1' = Automated execution (test run by automation framework)",
|
|
1016
|
+
"- '0' = Manual execution (test run by human tester)",
|
|
1017
|
+
"- Used for execution tracking and reporting purposes",
|
|
1018
|
+
"PART 11 COMPLIANCE (username & password) - CONDITIONAL:",
|
|
1019
|
+
"- Required ONLY if Part 11 Compliance is active in your QMetry instance",
|
|
1020
|
+
"- Used for regulatory compliance and audit trail purposes",
|
|
1021
|
+
"- Not needed for standard QMetry installations",
|
|
1022
|
+
"COMMENTS FIELD - OPTIONAL:",
|
|
1023
|
+
"- Add execution notes, failure reasons, or status change context",
|
|
1024
|
+
"- Useful for tracking why status was changed",
|
|
1025
|
+
"- Appears in execution history and audit logs",
|
|
1026
|
+
"COMMON EXECUTION STATUS NAMES:",
|
|
1027
|
+
"- Pass: Test case executed successfully",
|
|
1028
|
+
"- Fail: Test case failed with errors",
|
|
1029
|
+
"- Blocked: Test case cannot be executed due to blockers",
|
|
1030
|
+
"- Not Run: Test case not yet executed or needs re-execution",
|
|
1031
|
+
"- WIP: Work In Progress - test case execution in progress",
|
|
1032
|
+
"WORKFLOW FOR USER PROMPTS:",
|
|
1033
|
+
"1. If user says 'execute test case run by id to failed' or 'update status to fail':",
|
|
1034
|
+
" - Fetch test case runs to get tcRunID (entityIDs)",
|
|
1035
|
+
" - Fetch project info to get 'Fail' status ID (runStatusID)",
|
|
1036
|
+
" - Set isBulkOperation=false for single ID",
|
|
1037
|
+
"2. If user says 'bulk update test case run status to pass' or 'update all to passed':",
|
|
1038
|
+
" - Fetch test case runs to get multiple tcRunIDs",
|
|
1039
|
+
" - Fetch project info to get 'Pass' status ID",
|
|
1040
|
+
" - Set isBulkOperation=true",
|
|
1041
|
+
" - Join multiple IDs with commas (no spaces)",
|
|
1042
|
+
"3. If user says 'execute status to not run of given test case run ids':",
|
|
1043
|
+
" - Use provided IDs or fetch if needed",
|
|
1044
|
+
" - Fetch project info to get 'Not Run' status ID",
|
|
1045
|
+
" - Set isBulkOperation based on ID count",
|
|
1046
|
+
"4. If the user requests updating status for ALL executions of a test suite, the agent must:",
|
|
1047
|
+
" 1. Call FETCH_EXECUTIONS_BY_TESTSUITE to get all qmTsRunIds.",
|
|
1048
|
+
" 2. For each qmTsRunId:",
|
|
1049
|
+
" - Call FETCH_TESTCASE_RUNS_BY_TESTSUITE_RUN to get tcRunID (entityIDs)",
|
|
1050
|
+
" - Fetch project info to get 'Fail' status ID (runStatusID)",
|
|
1051
|
+
" - Call BULK_UPDATE_EXECUTION_STATUS with the corresponding qmTsRunId + tcRunID + desired runStatusID",
|
|
1052
|
+
" 3. Repeat until all executions are updated.",
|
|
1053
|
+
" This tool is intended to be invoked multiple times in sequence for multi-execution updates.",
|
|
1054
|
+
"FIELD MAPPING CRITICAL NOTES:",
|
|
1055
|
+
"- entityIDs must be comma-separated STRING (e.g., '66095069,66095075')",
|
|
1056
|
+
"- qmTsRunId must be STRING format (e.g., '2720260')",
|
|
1057
|
+
"- runStatusID must be NUMERIC (e.g., 123268)",
|
|
1058
|
+
"- dropID can be numeric or string (flexible)",
|
|
1059
|
+
"API ENDPOINT: PUT /rest/execution/runstatus/bulkupdate",
|
|
1060
|
+
"This tool is essential for test execution management and status tracking",
|
|
1061
|
+
"Critical for maintaining accurate test execution records and reporting",
|
|
1062
|
+
"Use for manual test execution updates and automated test result integration",
|
|
1063
|
+
"Essential for test execution audit trails and compliance requirements"
|
|
1064
|
+
],
|
|
1065
|
+
outputDescription: "JSON object with success status, updated execution details, and confirmation message",
|
|
1066
|
+
readOnly: false,
|
|
1067
|
+
idempotent: false
|
|
1068
|
+
}
|
|
1086
1069
|
];
|
|
1070
|
+
export {
|
|
1071
|
+
TESTSUITE_TOOLS
|
|
1072
|
+
};
|