mcpbeat

Create Perf Test

azure/create-perf-test

Generate a new performance test

803 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
883
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/Azure/azure-sdk-for-rust --skill create-perf-test

The instruction itself

3 sections, as written by the author

Generate a new performance test

You will generate a new performance (perf) test under the sdk/{service-directory}/{crate-name}/perf directory as ${input:testName:perf_test_name}.rs where:

  • {service-directory} is the directory name under sdk for the current ${file} e.g., core.
  • {crate-name} is the crate directory name under sdk/{service-directory} for the current ${file} e.g., azure_core.

Set up

These instructions only need to be done once. If changes described are already present, do not make the changes again.

  • Under the {crate-name} directory, in Cargo.toml add the following section:
  [[bench]]
  name = "perf"
  path = "perf/perf_tests.rs"
  harness = false
  • Under the {crate-name} directory, add a perf/perf_tests.rs file that uses azure_core_test::perf::PerfRunner to register and run the crate's perf tests.
  • Under the {crate-name} directory, copy sdk/core/perf.yml and change _only_ the following contents:
  • Change ServiceDirectory to match the {service-directory}.
  • Under the {crate-name} directory, copy sdk/core/perf-tests.yml and change _only_ the following contents:
  • Change Service to match the {service-directory}.
  • Change Project to match the {crate-name}.
  • Change the PackageVersions to replace azure_core with the {crate-name}.

Adding a new perf test

For each new perf test:

  • In sdk/{service-directory}/{crate-name}/perf/${input:testName}.rs:
  • Add a type that implements azure_core_test::perf::PerfTest.
  • Generate a perf test for the currently selected function in ${file} or specified client method name, if any.
  • Use sdk/keyvault/azure_security_keyvault_keys/perf/get_key.rs or sdk/storage/azure_storage_blob/perf/list_blob_test.rs as examples.
  • Define a test_metadata() function returning PerfTestMetadata, including any required command-line options.
  • Separate setup, the measured operation, and cleanup in the PerfTest implementation.
  • If credentials are needed, prefer the crate's existing perf-test pattern (for example context.recording().credential() or an existing helper) instead of introducing a new authentication flow.
  • If the client has options, instrument them with recording.instrument_perf(&mut options.client_options)?.
  • In sdk/{service-directory}/{crate-name}/perf/perf_tests.rs:
  • Add mod ${input:testName};.
  • Register the new test metadata with PerfRunner::new(...).
  • In the {crate-name}/perf-tests.yml file:
  • Add a top-level Tests: property if it does not already exist.
  • Add the following YAML under the Tests: property as a separate YAML array object:
    - Test: ${input:testName}
      Class: ${input:testName}
      Arguments:
        - --sync
  • Match existing crate patterns for client construction, shared setup state, and environment variable names.

How to use it

Copy the folder

Take azure/create-perf-test from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.