diff --git a/hivemind/benchmarks/README.md b/hivemind/benchmarks/README.md index 468bbf984026259ece6c30490393173767506729..95ca13717f964f232c03a77bc2f5d0c515951931 100644 --- a/hivemind/benchmarks/README.md +++ b/hivemind/benchmarks/README.md @@ -4,6 +4,8 @@ Script `benchmark_generator` will scan given test directory for tavern test file test parameters from each file and will create benchmark test basing on that parameters. Benchmarks generated from directory are stored in a single file. +Script moved to hivemind scripts/ci/ directory. + ## Examples ```bash @@ -14,4 +16,4 @@ $ ./benchmark_generator.py <path_to_test_directory> <name_of_the_generated_bench ```bash $ ./benchmark_generator.py ../tavern/condenser_api_patterns/ condenser_benchmarks.py http://127.0.0.1:8080 $ pytest condenser_benchmarks.py -``` \ No newline at end of file +``` diff --git a/hivemind/benchmarks/benchmark_generator.py b/hivemind/benchmarks/benchmark_generator.py deleted file mode 100755 index ae679c9127937355a45a7a766b5de0866357c366..0000000000000000000000000000000000000000 --- a/hivemind/benchmarks/benchmark_generator.py +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/python3 - -from json import dumps - -def make_benchmark_header(): - return """from requests import post -from json import dumps -def send_rpc_query(address, data): - response = post(address, data=data) - response_json = response.json() - return response_json - """ - -def make_benchmark(test_name, address, test_payload): - return """ -def test_{}(benchmark): - response_json = benchmark(send_rpc_query, "{}", dumps({})) - error = response_json.get("error", None) - result = response_json.get("result", None) - - assert error is not None or result is not None, "No error or result in response" - """.format(test_name, address, test_payload) - -def get_request_from_yaml(path_to_yaml): - import yaml - yaml_document = None - with open(path_to_yaml, "r") as yaml_file: - yaml_document = yaml.load(yaml_file, Loader=yaml.BaseLoader) - if "stages" in yaml_document: - if "request" in yaml_document["stages"][0]: - json_parameters = yaml_document["stages"][0]["request"].get("json", None) - assert json_parameters is not None, "Unable to find json parameters in request" - return dumps(json_parameters) - return None - -def make_test_name_from_path(test_path): - splited = test_path.split("/") - return ("_".join(splited[-3:])).replace(".", "_").replace("-", "_") - -def make_benchmark_test_file(file_name, address, tests_root_dir): - import os - from fnmatch import fnmatch - - pattern = "*.tavern.yaml" - test_files = [] - for path, subdirs, files in os.walk(tests_root_dir): - for name in files: - if fnmatch(name, pattern): - test_files.append(os.path.join(path, name)) - - with open(file_name, "w") as benchmarks_file: - benchmarks_file.write(make_benchmark_header()) - for test_file in test_files: - test_name = make_test_name_from_path(test_file) - test_payload = get_request_from_yaml(test_file) - benchmarks_file.write(make_benchmark(test_name, address, test_payload)) - benchmarks_file.write("\n") - -if __name__ == "__main__": - import argparse - parser = argparse.ArgumentParser() - parser.add_argument("path_to_test_dir", type=str, help = "Path to test directory for given xml file") - parser.add_argument("benchmark_test_file_name", type=str, help="Name of the generated test file") - parser.add_argument("target_ip_address", type=str, help="Address of the hivemind") - args = parser.parse_args() - - make_benchmark_test_file(args.benchmark_test_file_name, args.target_ip_address, args.path_to_test_dir) - - - -