.cursor/skills/ado-test-case-conversion/SKILL.md
Convert Azure DevOps (ADO) QA Functional test cases into browser automation Markdown specs for JMeter MCP. Use when the user mentions ADO test cases, Azure DevOps conversion, QA functional to performance, or test case format migration.
npx skillsauth add canyonlabz/mcp-perf-suite ado-test-case-conversionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
get_browser_steps toolThis section provides context for humans and capable models. For the step-by-step execution instructions, skip to the Execution section below.
Converts QA Functional test cases from Azure DevOps (ADO) into Markdown files that the
JMeter MCP get_browser_steps tool can parse. This bridges the gap between QA Functional
(Playwright-based testing) and QA Performance (JMeter script generation) teams.
This workflow requires access to Azure DevOps to pull test case steps. The user must have:
.txt fileIf neither is available, the workflow cannot proceed. Inform the user and stop.
The JMeter MCP spec parser requires:
Step, TC, TS, Test Case, Test StepEND TASK, TERMINATE, END FLOW, or END- are kept as part of the current stepStep 1:, Step 2:, etc.Rule 1: Remove ADO Formatting Artifacts
Strip section comment blocks (// ===...), dividers, and blank padding lines.
If section context is needed, fold it into the step's natural language.
Rule 2: Renumber Steps Sequentially
ADO test cases have non-sequential numbering. Renumber to Step 1 through Step N.
Rule 3: Replace Placeholder Variables
Replace {{placeholder}} syntax with actual values from the user.
Same placeholder across multiple steps = same concrete value everywhere.
If no values are provided, ask the user before converting.
Rule 4: Expand Login/Authentication Step ADO steps assume auth is separate. Add an explicit login step.
Step 1: Navigate to <URL>. If redirected to a login page, enter the email and click 'Next'. The site uses SSO so no password is required. Else, skip this step.Step 1: Navigate to <URL>. If redirected to a login page, enter username and password, then click 'Sign in'. Else, skip this step.Rule 5: Write Steps as Natural Language for Playwright Steps are executed by an AI agent using Playwright. Write clear instructions:
Rule 6: Preserve Shadow-Root References Keep "inside shadow-root" context for Playwright shadow DOM handling.
Rule 7: Use Sub-Bullets for Multi-Item Steps
Form fills and multi-action steps use indented - sub-bullets:
Step 7: Fill in the form with the following details:
- Name: John Wick
- Country: United States
- City: New York
- Credit card: 4111111111111111
Rule 8: Add Standard Closing Pattern Final step must keep the browser open and end with a terminal keyword:
Step N: <final verification step>.
- Confirm the flow is completed and notify the user that the browser will remain open for manual inspection.
- Do not close the browser.
END TASK
Rule 9: File Naming Convention
Use kebab-case or snake_case: <application>-<workflow-description>.md
Examples: blazedemo-product-purchase.md, myapp-user-registration.md
These Cursor Rules apply when using this skill:
prerequisites.mdc — Azure DevOps access validation (see prerequisite table above)skill-execution-rules.mdc — Follow steps in order, collect inputs first, do not skipbrowser-automation-guardrails.mdc — Applies when the converted spec is used in Playwright browser automationMM/dd/yyyy) when known.Follow these steps exactly, in order. Each step has one action.
Ask the user for the following values. Do not proceed until all required values are collected.
REQUIRED:
ado_source = [ADO test case URL, or path to .txt file with copy/pasted steps]
app_name = [application name, e.g., "blazedemo"]
flow_name = [workflow name, e.g., "product-purchase"]
auth_method = [SSO, standard, or none]
CONDITIONAL:
login_email = [required if auth_method is SSO]
login_username = [required if auth_method is standard]
login_password = [required if auth_method is standard]
login_url = [required if auth_method is SSO or standard]
OPTIONAL:
placeholder_values = [replacements for any {{placeholder}} variables in the ADO steps]
Input: ado_source
Action: Get the raw ADO test case steps into a .txt file.
.txt file path: Read that file.jmeter-mcp/test-specs/azure-devops/{app_name}-{flow_name}.txtSave: raw_steps = the raw ADO test case text.
On error: If no test case steps can be obtained, stop. Inform the user.
Input: raw_steps, auth_method, credentials, placeholder_values
Action: Apply all 9 conversion rules from the Reference section to raw_steps:
Step 1: through Step N:){{placeholder}} variables with user-provided valuesauth_methodEND TASK){app_name}-{flow_name}.mdSave: converted_spec = the fully converted Markdown content.
Input: converted_spec, app_name, flow_name
Action: Write converted_spec to:
jmeter-mcp/test-specs/web-flows/{app_name}-{flow_name}.md
Save: spec_path = the full path to the saved file.
On error: If the file cannot be written, stop. Report the error to the user.
Input: spec_path, converted_spec
Action: Present the results to the user.
Tell the user:
{spec_path}get_browser_steps in the Playwright workflowAsk the user:
ADO Source (saved in test-specs/azure-devops/demoblaze-purchase.txt):
// SECTION 1: Browse Products
1. Navigate to https://demoblaze.com/
2. Click on 'Laptops' under Categories
3. Select 'MacBook Pro' and add to cart
// SECTION 2: Checkout
10. Go to the Cart
12. Place the order
15. Fill in checkout form with {{Customer Name}}, {{Country}}, {{City}}, {{Credit Card}}
16. Complete the purchase
Converted Output (saved in test-specs/web-flows/blazedemo-product-purchase.md):
Step 1: Navigate to https://demoblaze.com/.
Step 2: Click on 'Laptops' under the 'Categories' menu.
Step 3: Select 'MacBook Pro' and click on 'Add to cart'.
Step 4: If a pop-up appears, click 'Ok' to proceed; otherwise continue to the next step.
Step 5: Click on 'Cart' from the top menu.
Step 6: On the 'Products' page, click on 'Place Order'.
Step 7: Fill in the form with the following details:
- Name: John Wick
- Country: United States
- City: New York
- Credit card: 4111111111111111
- Month: 12
- Year: 2029
After filling out form details click on 'Purchase' to complete the order and wait for confirmation. After confirmation, click 'Ok' button.
Step 8: User will be redirected to the main 'Product Store' page.
- Confirm the flow is completed and notify the user that the browser will remain open for manual inspection.
- Do not close the browser.
END TASK
These rules apply to every step:
{{placeholder}} variables exist and the user has not provided replacement values,
ask before converting. Do not guess.testing
Orchestrates BlazeMeter and Datadog data extraction using dedicated subagents. Use when the user mentions subagent workflow, subagent orchestrator, or wants to run the BlazeMeter and Datadog extraction phases via subagents. This skill handles the extraction and handoff phases only — it does NOT run PerfAnalysis, PerfReport, or Confluence. After this skill completes, the user can continue with the performance-testing-workflow skill starting from Step 4 (PerfAnalysis).
testing
AI-assisted HITL revision of performance test reports with iterative refinement, version tracking, and optional Confluence publishing. Use when the user mentions report revision, AI-enhanced report, revise executive summary, revise key observations, revise issues table, or improve a performance report.
tools
Run Playwright browser automation to capture network traffic and generate a JMeter JMX script. Use when the user mentions browser automation, Playwright recording, test spec execution, browser-based network capture, or generating a JMeter script from a live browser session.
tools
End-to-end performance testing pipeline orchestrating BlazeMeter, Datadog, PerfAnalysis, PerfReport, and Confluence MCP workflows sequentially. Use when the user mentions performance testing workflow, E2E pipeline, BlazeMeter results, test run analysis, performance report generation, or end-to-end test processing.