{"id":19756618,"url":"https://github.com/esnet/testing-harness","last_synced_at":"2025-02-28T01:52:44.049Z","repository":{"id":129448235,"uuid":"353482358","full_name":"esnet/testing-harness","owner":"esnet","description":"A harness for executing jobs across multiple hosts and collecting output.","archived":false,"fork":false,"pushed_at":"2024-11-14T23:16:16.000Z","size":10240,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-01-10T22:40:18.481Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/esnet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-31T20:31:10.000Z","updated_at":"2024-12-20T11:50:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"a745bcbd-4711-41af-8dbe-bb44d9cb4b3b","html_url":"https://github.com/esnet/testing-harness","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esnet%2Ftesting-harness","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esnet%2Ftesting-harness/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esnet%2Ftesting-harness/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/esnet%2Ftesting-harness/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/esnet","download_url":"https://codeload.github.com/esnet/testing-harness/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241086870,"owners_count":19907350,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T03:16:26.504Z","updated_at":"2025-02-28T01:52:44.031Z","avatar_url":"https://github.com/esnet.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ESnet Network Test Harness\n\nTo install dependencies, run:\n\n```\npython3 setup.py install\n```\n\n\nThis directory contains a customized version of ESnet's Network Test Harness for testing BBRv3.\n\nEventually this branch should probably be merged into the master branch.\n\n\nThis docker container has all tools needed (latest versions of ss and mpstat are required)\n```\nsee: https://hub.docker.com/r/bltierney/perfsonar-testpoint-bbrv3-testing\n```\n\n# Docker container\n\nThe easiest way to use this test harness is via docker. Useful docker commands inslude:\n```\n docker compose -f docker-compose.yml build\n docker compose -f docker-compose.yml up -d\n docker compose -f docker-compose.yml exec testpoint bash\n docker compose down\n```\n\n\n# Directories\n```\nini: sample config files\nlib: python code for each of the harness modules\nplot: utilities needed to generate Gnuplot graphs\n```\n\n## Example execution\n\nSample command to run a single test:\n~~~\n$ ./collect.py -j ini/single.ini -o /data\n~~~\n\nSample cron entry:\n~~~\n$ /harness/collect.py -v -i ens2 -j /harness/ini/perfsonar.ini -o /data -H /harness/ini/test-hosts.csv \u003e\u003e /tmp/harness.out 2\u003e\u00261 \n~~~\n\n## iperf3 example output with default settings (localhost test)\n```\n$ python3 collect.py -j ini/iperf3.ini\n[2021-03-31 16:37:53,266] [MainThread] INFO: Found 2 job definitions\n[2021-03-31 16:37:53,266] [MainThread] INFO: Created job for item \"iperf3_cubic\"\n[2021-03-31 16:37:53,267] [MainThread] INFO: Created job for item \"iperf3_bbr2\"\n[2021-03-31 16:37:53,267] [MainThread] INFO: Starting jobs [2]\n[2021-03-31 16:37:53,267] [MainThread] INFO: Executing runs for job iperf3_cubic and 2 iterations\n[2021-03-31 16:37:53,267] [MainThread] INFO: Testing to 127.0.0.1 using \"iperf3 -c 127.0.0.1 -J -A 1 -C cubic\"\n[2021-03-31 16:38:53,991] [MainThread] INFO: Executing runs for job iperf3_bbr2 and 1 iterations\n[2021-03-31 16:38:53,991] [MainThread] INFO: Testing to 127.0.0.1 using \"iperf3 -c 127.0.0.1 -J -A 1 -C bbr\"\n```\n\n## Use with Netem\n\nIf you have a host running netem in your test path, you can specify netem sweep options in the .ini file.\nSee ini/perfsonar-throughput-example.ini for options. Note that the harness expects to find a script\n/harness/utils/pre-netem.sh, and that you will likely need to customize that script for your setup. \n\n## Plotting the results\n\nInstructions coming soon\n- ### (plot/iperf3_to_gnuplot.py)\nTBD\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesnet%2Ftesting-harness","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fesnet%2Ftesting-harness","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesnet%2Ftesting-harness/lists"}