.cursor/skills/jmeter-correlation-naming/SKILL.md
Review, adjust, or generate JMeter correlation variable names from correlation_spec.json files. Use when working with correlation_naming.json, correlation specs, JMeter variable naming, or when the user mentions correlation naming, variable mapping, or correlation review.
npx skillsauth add canyonlabz/mcp-perf-suite jmeter-correlation-namingInstall 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.
The correlation_naming.json file maps each correlation_id from a correlation_spec.json
to a meaningful JMeter variable name, extractor type, and extractor expression. It is consumed
by generate_jmeter_script to produce the parameterized JMX.
The analyze_network_traffic MCP tool automatically generates correlation_naming.json
as Phase 4 of the correlation analysis pipeline. The algorithmic naming engine
(services/correlations/naming.py) applies deterministic rules:
correlation_config.yaml (highest priority)state -> oauth_state)cdssotoken -> cdsso_token)signalr_timestamp_N)entityGuid -> entity_guid)correlation_config.yamlThe naming engine reads customizable mappings from jmeter-mcp/correlation_config.yaml.
Falls back to jmeter-mcp/correlation_config.example.yaml if the local file does not exist.
To customize naming for your application:
correlation_config.example.yaml to correlation_config.yamlnaming.custom_mappings for application-specific field namesnaming:
custom_mappings:
entityGuid: "product_guid"
productDataSourceId: "data_source_id"
correlation_naming.json for clarity and accuracycorrelation_naming.json from scratch for older correlation specs
that were produced before algorithmic naming was addedWhen analyze_network_traffic has already produced correlation_naming.json:
correlation_naming.json and the corresponding correlation_spec.jsonentity_guid for an entity GUID)corr_var)?correlation_naming.json directlycustom_mappings entry to
correlation_config.yaml so the engine handles it automatically next timeWhen no correlation_naming.json exists (e.g., older correlation specs):
correlation_spec.jsoncorrelation_found: true:
source_key, source_json_path, URLs, and step labelsvariable_name following the naming conventionsjmeter_extractor_type based on source_locationjmeter_extractor_expression (JSONPath or regex)correlation_found: false:
orphan_variables arrayparameterization_hintvariable_name across both variables and orphan_variables MUST be uniquesource_key, location_key,
or numeric suffix as last resort)Variable names MUST NOT be:
_22, _23)value, value_19, id)If any fail validation, re-derive using the orphan naming rules in naming-conventions.md.
snake_case for all variable namesproduct_id not products_id)| Type | Pattern | Examples |
|------|---------|----------|
| business_id | <resource>_id | product_id, order_id, customer_id |
| correlation_id | <purpose>_id | request_id, trace_id, session_id |
| oauth_param | Standard OAuth names | oauth_state, oauth_nonce, oauth_client_id |
| source_location | Extractor Type |
|-----------------|---------------|
| response_json | json_extractor |
| response_header | regex_extractor |
| response_redirect_url | regex_extractor |
| response_set_cookie | regex_extractor |
| response_html_form | regex_extractor |
source.source_key — the JSON field name (e.g., productId -> product_id)source.source_json_path — path context (e.g., $.items[0].orderId -> order_id)source.request_url — API endpoint (e.g., /products/ -> product_id)usages[*].request_url — where it's usedsource.step_label — business context from step descriptionFor detailed schemas, full naming tables, OAuth parameter mappings, orphan naming rules, SignalR patterns, and input/output examples, see naming-conventions.md.
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.