Skip to content

Commit

Permalink
Fixing payload for failureCriteria and updated test recordings (#7312)
Browse files Browse the repository at this point in the history
* Fixing payload for failureCriteria and updated test recordings

* Updated History and setup

* Changed | to update method to support python 3.8

* refactoring code and fixing test recordings

* nit: formatting
  • Loading branch information
Himanshu49 committed Mar 1, 2024
1 parent 3407910 commit 6cb7b72
Show file tree
Hide file tree
Showing 24 changed files with 10,007 additions and 8,406 deletions.
3 changes: 3 additions & 0 deletions src/load/HISTORY.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
Release History
===============
1.0.1
++++++
* Fix for sending correct failureCriteria request payload when using `az load test create` and `az load test update` commands with `--load-test-config-file` option and config file having failureCriteria.

1.0.0
++++++
Expand Down
51 changes: 28 additions & 23 deletions src/load/azext_load/data_plane/utils/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ def get_load_test_resource_endpoint(
credential=cred,
subscription_id=subscription_id,
base_url=arm_endpoint,
credential_scopes=arm_token_scope
credential_scopes=arm_token_scope,
)
data_plane_uri = mgmt_client.load_tests.get(resource_group, name).data_plane_uri
logger.info("Azure Load Testing data plane URI: %s", data_plane_uri)
Expand Down Expand Up @@ -128,7 +128,9 @@ def get_data_plane_scope(cli_ctx):
def get_arm_endpoint_and_scope(cli_ctx):
cloud_name = cli_ctx.cloud.name
if cloud_name.lower() == "azureusgovernment":
return "https://management.usgovcloudapi.net", ["https://management.usgovcloudapi.net/.default"]
return "https://management.usgovcloudapi.net", [
"https://management.usgovcloudapi.net/.default"
]

return "https://management.azure.com", ["https://management.azure.com/.default"]

Expand Down Expand Up @@ -324,22 +326,20 @@ def convert_yaml_to_test(data):
except InvalidArgumentValueError as e:
logger.error("Invalid failure criteria: %s", str(e))
new_body["passFailCriteria"]["passFailMetrics"][metric_id] = {}
new_body["passFailCriteria"]["passFailMetrics"][metric_id][
"aggregate"
] = components.split("(")[0].strip()
new_body["passFailCriteria"]["passFailMetrics"][metric_id]["aggregate"] = (
components.split("(")[0].strip()
)
new_body["passFailCriteria"]["passFailMetrics"][metric_id][
"clientMetric"
] = (components.split("(")[1].split(")")[0].strip())
new_body["passFailCriteria"]["passFailMetrics"][metric_id][
"condition"
] = components.split(")")[1].strip()[0]
new_body["passFailCriteria"]["passFailMetrics"][metric_id][
"value"
] = components.split(
new_body["passFailCriteria"]["passFailMetrics"][metric_id]["condition"]
)[
1
].strip()
new_body["passFailCriteria"]["passFailMetrics"][metric_id]["condition"] = (
components.split(")")[1].strip()[0]
)
new_body["passFailCriteria"]["passFailMetrics"][metric_id]["value"] = (
components.split(
new_body["passFailCriteria"]["passFailMetrics"][metric_id]["condition"]
)[1].strip()
)
if name is not None:
new_body["passFailCriteria"]["passFailMetrics"][metric_id][
"requestName"
Expand Down Expand Up @@ -444,14 +444,19 @@ def create_or_update_test_with_config(
# quick test is not supported in CLI
new_body["loadTestConfiguration"]["quickStartTest"] = False

new_body["passFailCriteria"] = {}
for key in body.get("passFailCriteria", {}):
if "passFailCriteria" not in new_body:
new_body["passFailCriteria"] = {}
new_body.get("passFailCriteria", {})[key] = None
new_body["passFailCriteria"][key] = None
if yaml_test_body.get("passFailCriteria") is not None:
new_body["passFailCriteria"] = yaml_test_body.get("passFailCriteria", {})
# make all metrics in existing passFailCriteria None to remove it from the test and add passFailCriteria from yaml
existing_pass_fail_Criteria = body.get("passFailCriteria", {})
yaml_pass_fail_criteria = yaml_test_body.get("passFailCriteria", {})
if existing_pass_fail_Criteria or yaml_pass_fail_criteria:
new_body["passFailCriteria"] = {
"passFailMetrics": {
key: None
for key in existing_pass_fail_Criteria.get("passFailMetrics", {})
}
}
new_body["passFailCriteria"]["passFailMetrics"].update(
yaml_pass_fail_criteria.get("passFailMetrics", {})
)
if split_csv is not None:
new_body["loadTestConfiguration"]["splitAllCSVs"] = split_csv
elif (
Expand Down
1,238 changes: 722 additions & 516 deletions src/load/azext_load/tests/latest/recordings/test_load_app_component.yaml

Large diffs are not rendered by default.

Large diffs are not rendered by default.

357 changes: 224 additions & 133 deletions src/load/azext_load/tests/latest/recordings/test_load_test_create.yaml

Large diffs are not rendered by default.

Large diffs are not rendered by default.

402 changes: 250 additions & 152 deletions src/load/azext_load/tests/latest/recordings/test_load_test_delete.yaml

Large diffs are not rendered by default.

Large diffs are not rendered by default.

1,690 changes: 428 additions & 1,262 deletions src/load/azext_load/tests/latest/recordings/test_load_test_file.yaml

Large diffs are not rendered by default.

372 changes: 236 additions & 136 deletions src/load/azext_load/tests/latest/recordings/test_load_test_list.yaml

Large diffs are not rendered by default.

1,176 changes: 615 additions & 561 deletions src/load/azext_load/tests/latest/recordings/test_load_test_run_create.yaml

Large diffs are not rendered by default.

1,174 changes: 610 additions & 564 deletions src/load/azext_load/tests/latest/recordings/test_load_test_run_delete.yaml

Large diffs are not rendered by default.

Large diffs are not rendered by default.

1,214 changes: 697 additions & 517 deletions src/load/azext_load/tests/latest/recordings/test_load_test_run_list.yaml

Large diffs are not rendered by default.

1,798 changes: 1,055 additions & 743 deletions src/load/azext_load/tests/latest/recordings/test_load_test_run_metrics.yaml

Large diffs are not rendered by default.

Large diffs are not rendered by default.

1,140 changes: 694 additions & 446 deletions src/load/azext_load/tests/latest/recordings/test_load_test_run_show.yaml

Large diffs are not rendered by default.

566 changes: 286 additions & 280 deletions src/load/azext_load/tests/latest/recordings/test_load_test_run_stop.yaml

Large diffs are not rendered by default.

1,328 changes: 764 additions & 564 deletions src/load/azext_load/tests/latest/recordings/test_load_test_run_update.yaml

Large diffs are not rendered by default.

Large diffs are not rendered by default.

436 changes: 308 additions & 128 deletions src/load/azext_load/tests/latest/recordings/test_load_test_show.yaml

Large diffs are not rendered by default.

492 changes: 305 additions & 187 deletions src/load/azext_load/tests/latest/recordings/test_load_test_update.yaml

Large diffs are not rendered by default.

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/load/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@


# HISTORY.rst entry.
VERSION = '1.0.0'
VERSION = '1.0.1'

# The full list of classifiers is available at
# https://pypi.python.org/pypi?%3Aaction=list_classifiers
Expand Down

0 comments on commit 6cb7b72

Please sign in to comment.