Skip to main content

create-perf-test

Generate a new performance test

Datos de origen

Repositorio
Azure/azure-sdk-for-rust
Última actividad en el origen
11 de junio de 2026 a las 22:49
Idioma detectado de SKILL.md
inglés
Estrellas
886
Forks
370

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
create-perf-test
description
Generate a new performance test
disable-model-invocation
true
# 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](../../../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: ```toml [[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](../../../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](../../../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](../../../sdk/keyvault/azure_security_keyvault_keys/perf/get_key.rs) or [sdk/storage/azure_storage_blob/perf/list_blob_test.rs](../../../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: ```yaml - Test: ${input:testName} Class: ${input:testName} Arguments: - --sync ``` - Match existing crate patterns for client construction, shared setup state, and environment variable names.
Ver en GitHub