{"id":13814027,"url":"https://github.com/pulkitsharma07/proxybench","last_synced_at":"2025-05-15T01:32:32.899Z","repository":{"id":67646303,"uuid":"125878961","full_name":"pulkitsharma07/proxybench","owner":"pulkitsharma07","description":"Benchmark different man-in-the-middle proxies","archived":false,"fork":false,"pushed_at":"2018-03-29T12:28:42.000Z","size":56,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-08-04T04:05:03.728Z","etag":null,"topics":["benchmark","browsermob-proxy","golang","mitm","mitmproxy","newbie","proxy"],"latest_commit_sha":null,"homepage":"","language":"Go","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/pulkitsharma07.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}},"created_at":"2018-03-19T15:23:09.000Z","updated_at":"2023-11-08T21:23:36.000Z","dependencies_parsed_at":"2023-05-15T14:15:18.738Z","dependency_job_id":null,"html_url":"https://github.com/pulkitsharma07/proxybench","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulkitsharma07%2Fproxybench","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulkitsharma07%2Fproxybench/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulkitsharma07%2Fproxybench/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pulkitsharma07%2Fproxybench/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pulkitsharma07","download_url":"https://codeload.github.com/pulkitsharma07/proxybench/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225319419,"owners_count":17455772,"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":["benchmark","browsermob-proxy","golang","mitm","mitmproxy","newbie","proxy"],"created_at":"2024-08-04T04:01:40.622Z","updated_at":"2024-11-19T08:31:23.190Z","avatar_url":"https://github.com/pulkitsharma07.png","language":"Go","readme":"## proxybench\nBenchmark different proxies on basis of the following:\n\n| test                    |   Implemented       | Description |\n|:------------------------|:-------------------:|:------------|\n|HTTP Stress              | :white_check_mark:  | records the time it takes to finish the test on http://httpvshttps.com  |\n|HTTPS Stress (HTTP/2)    | :white_check_mark:  | records the time it takes to finish the test on https://httpvshttps.com |\n| Heavy Websites          | :white_check_mark:  | records the time it takes to open websites like https://techcrunch.com/ |\n|HTTPS Stress (HTTP/1.1)  |    ||\n|WS Support               |                     ||\n|WSS Support         |                     ||\n|\\\u003cTO ADD MORE\\\u003e          |                     ||\n\n## Installation\n* `go get github.com/pulkitsharma07/proxybench`\n\n## Running the benchmark\n* Make sure you have `chromedriver` present in your PATH.\n* Start the desired proxies on different ports.\n* Make sure you add and trust the certificates provided by the respective proxies, so that they can be considered as a trusted CA by the browser.\n* Refer `proxybench.json.sample` and create `proxybench.json` similarly.\n* Launch `proxybench`, it will look for `proxybench.json` in the current directory and run according to that config.\n\n## Reporting\nGenerates the following:\n\u003cpre\u003e\n+--------------------------------+----------------+------------------------+\n|          PROXY CONFIG          |   BENCHMARK    | COMPLETED IN (SECONDS) |\n+--------------------------------+----------------+------------------------+\n| Proxy: [Direct]                | HTTP Stress    | [15.575000]            |\n| Proxy: [Direct]                | HTTPS Stress   | [2.757000]             |\n| Proxy: [Direct]                | Heavy Websites | [20.703525]            |\n| Proxy:                         | HTTP Stress    | [17.920000]            |\n| [browsermob(littleproxy)]      |                |                        |\n| Proxy:                         | HTTPS Stress   | [17.053000]            |\n| [browsermob(littleproxy)]      |                |                        |\n| Proxy:                         | Heavy Websites | [40.902084]            |\n| [browsermob(littleproxy)]      |                |                        |\n| Proxy: [browsermob(legacy)]    | HTTP Stress    | [20.777000]            |\n| Proxy: [browsermob(legacy)]    | HTTPS Stress   | [17.399000]            |\n| Proxy: [browsermob(legacy)]    | Heavy Websites | [31.580184]            |\n| Proxy: [mitmproxy]             | HTTP Stress    | [39.376000]            |\n| Proxy: [mitmproxy]             | HTTPS Stress   | [47.631000]            |\n| Proxy: [mitmproxy]             | Heavy Websites | [198.824246]           |\n| Proxy: [mitmdump]              | HTTP Stress    | [17.960000]            |\n| Proxy: [mitmdump]              | HTTPS Stress   | [8.147000]             |\n| Proxy: [mitmdump]              | Heavy Websites | [41.605729]            |\n| Proxy: [charles]               | HTTP Stress    | [18.535000]            |\n| Proxy: [charles]               | HTTPS Stress   | [6.322000]             |\n| Proxy: [charles]               | Heavy Websites | [52.927620]            |\n+--------------------------------+----------------+------------------------+\n\u003c/pre\u003e\n* Generated using: browsermob v2.1.4, mitmproxy/mitmdump v3.0.3, charles 4.2.1\n* `Direct` stands for the baseline performance, i.e. without using any proxy.\n\n## Development\n* Use `dep` to install dependencies\n* Add proxy information in `proxybench.json`\n* benchmarks are defined in `benchmarks/`\n* You can define new benchmarks similarly, add them to `NewSimpleSuite` to execute.\n* `go install`\n* `proxybench` to run (Assuming GOBIN is added to your PATH)\n\n## TODO\n* Unit and integration tests.\n* CLI option to skip the baseline (DIRECT) test.\n* CLI options to launch tests in sync/async.\n* Add wrapper around `Run` to measure the proxy's CPU/Memory usage (Need to take PID from user, or figure out from script?).Eventually render a timeseries graph.\n* Randomize test order and most importantly do multiple test runs and report on standard deviation. (Thanks @mhills)\n* Test reports, generate test reports confining to some format, each test case will have corresponding timeseries graphs of CPU, memory, disk, number of sockets etc of the proxy.\n* Final plan is to give every proxy a score based on its performance in comparison to the baseline for the different benchmarks.\n* Launch proxies from this script?\n\n\n*PS: I made this mainly to learn `Go`. I will really appreciate if you can point out things in the code which I should improve upon. For example naming conventions, directory structure, or new benchmarks etc. Feel free to open any issues.*\n\n**Thank You !**\n","funding_links":[],"categories":["Go","\u003ca id=\"42f9e068b6511bcbb47d6b2b273097da\"\u003e\u003c/a\u003e未分类"],"sub_categories":["\u003ca id=\"3bd67ee9f322e2c85854991c85ed6da0\"\u003e\u003c/a\u003e投毒\u0026\u0026Poisoning"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpulkitsharma07%2Fproxybench","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpulkitsharma07%2Fproxybench","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpulkitsharma07%2Fproxybench/lists"}