Problem
When Xping SDK runs locally (outside CI), the resulting session in the Dashboard has no human-readable identifier. It appears as an anonymous entry distinguishable only by machine name and timestamp, making it hard to find a specific run or correlate it with a developer's intent (e.g. "pre-PR smoke test for payment refactor").
CI runs benefit from rich context (commit SHA, branch, PR number, author) that is automatically captured. Local runs have none of this.
Proposed Solution
Add an optional RunLabel configuration property with a corresponding XPING_RUN_LABEL environment variable override.
Behaviour
- If
XPING_RUN_LABEL is set in the environment, it takes precedence over the config value.
- The label is a free-form string (suggested max: 255 chars).
- It is attached to the uploaded session and displayed in the Dashboard as the primary display name for the run when CI context is absent.
- It is optional — existing behaviour is unchanged when not set.
Configuration
Via appsettings.json / SDK options:
{
"Xping": {
"RunLabel": "feat/payment-refund-fix – pre-PR smoke"
}
}
Via environment variable:
export XPING_RUN_LABEL="feat/payment-refund-fix – pre-PR smoke"
Naming rationale
Follows the established SDK env var convention (XPING_ENVIRONMENT, XPING_STRICTMODE). XPING_RUN_LABEL is preferred over XPING_TAG (too generic) or XPING_EXECUTION_CORRELATION_KEY (too long, implies deduplication which is already handled by SessionCorrelationKey).
Industry References
- Datadog Test Visibility uses
DD_TAGS with reserved env:/service:/version: keys for the same purpose.
- Sentry uses
SENTRY_RELEASE as a human-readable version/label attached to all events in a session.
- ReportPortal uses a Launch
name field for the same concept.
Acceptance Criteria
Problem
When Xping SDK runs locally (outside CI), the resulting session in the Dashboard has no human-readable identifier. It appears as an anonymous entry distinguishable only by machine name and timestamp, making it hard to find a specific run or correlate it with a developer's intent (e.g. "pre-PR smoke test for payment refactor").
CI runs benefit from rich context (commit SHA, branch, PR number, author) that is automatically captured. Local runs have none of this.
Proposed Solution
Add an optional
RunLabelconfiguration property with a correspondingXPING_RUN_LABELenvironment variable override.Behaviour
XPING_RUN_LABELis set in the environment, it takes precedence over the config value.Configuration
Via
appsettings.json/ SDK options:{ "Xping": { "RunLabel": "feat/payment-refund-fix – pre-PR smoke" } }Via environment variable:
Naming rationale
Follows the established SDK env var convention (
XPING_ENVIRONMENT,XPING_STRICTMODE).XPING_RUN_LABELis preferred overXPING_TAG(too generic) orXPING_EXECUTION_CORRELATION_KEY(too long, implies deduplication which is already handled bySessionCorrelationKey).Industry References
DD_TAGSwith reservedenv:/service:/version:keys for the same purpose.SENTRY_RELEASEas a human-readable version/label attached to all events in a session.namefield for the same concept.Acceptance Criteria
XpingConfigurationhas a nullableRunLabelstring propertyXPING_RUN_LABELenv var is read and takes precedence over configRunLabelis included in the upload payload sent to the Dashboard API