{"id":35202693,"url":"https://github.com/cguertin14/load-tester","last_synced_at":"2026-04-14T17:32:18.296Z","repository":{"id":39876912,"uuid":"382234412","full_name":"cguertin14/load-tester","owner":"cguertin14","description":"Load-tester Docker image.","archived":false,"fork":false,"pushed_at":"2023-05-15T21:57:24.000Z","size":12,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-01T08:20:43.862Z","etag":null,"topics":["docker","load-testing","lua"],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cguertin14.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-07-02T04:56:38.000Z","updated_at":"2021-11-09T02:00:12.000Z","dependencies_parsed_at":"2022-08-27T12:51:48.118Z","dependency_job_id":null,"html_url":"https://github.com/cguertin14/load-tester","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/cguertin14/load-tester","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cguertin14%2Fload-tester","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cguertin14%2Fload-tester/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cguertin14%2Fload-tester/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cguertin14%2Fload-tester/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cguertin14","download_url":"https://codeload.github.com/cguertin14/load-tester/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cguertin14%2Fload-tester/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31808505,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T11:13:53.975Z","status":"ssl_error","status_checked_at":"2026-04-14T11:13:53.299Z","response_time":153,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["docker","load-testing","lua"],"created_at":"2025-12-29T12:01:08.509Z","updated_at":"2026-04-14T17:32:18.280Z","avatar_url":"https://github.com/cguertin14.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# load-tester\n\n![](https://github.com/cguertin14/load-tester/workflows/ci/badge.svg)\n![](https://img.shields.io/docker/pulls/cguertz/load-tester.svg)\n\nLoad-tester Docker image. Fork of `docker.io/argoproj/load-tester` using Alpine Linux.\n\n## Included tools\n\nThis directory contains the Dockerfile for `cguertz/load-tester`, which is a simple image that contains:\n* [`wrk`](https://github.com/wg/wrk) - an HTTP benchmarking tool \n* `report.lua` - a custom wrk reporting script, which generates a report in json format\n* [`jq`](https://github.com/stedolan/jq) - JSON processing utility to interpret the report and analyze for success or failure\n\n## Usage\n\n`wrk` can be invoked as follows:\n\n```bash\n# Run a benchmark for 45 seconds, using 10 threads, keeping 50 HTTP connections open, and generate a report\n$ wrk -t10 -c50 -d45s -s report.lua http://your-http-service/test\nRunning 45s test @ http://your-http-service/test\n  10 threads and 50 connections\n  Thread Stats   Avg      Stdev     Max   +/- Stdev\n    Latency    73.28ms  122.80ms   1.21s    89.58%\n    Req/Sec   171.87    229.29     3.77k    92.52%\n  55047 requests in 45.28s, 8.24MB read\n  Non-2xx or 3xx responses: 2895\nRequests/sec:   1215.71\nTransfer/sec:    186.39KB\n```\n\nThis generates the following `report.json`:\n```json\n{\n  \"duration_seconds\":45.28,\n  \"requests_total\":55047,\n  \"requests_per_second\":1215.71,\n  \"transfer_bytes_total\":8642337,\n  \"transfer_bytes_per_second\":190865.64,\n  \"errors_total\":2895,\n  \"errors_ratio\":0.05,\n  \"latency_min_ms\":0.05,\n  \"latency_max_ms\":1206.71,\n  \"latency_avg_ms\":73.28,\n  \"latency_stdev_ms\":122.80\n}\n```\n\nThe `report.json` file can then be interpreted using `jq`:\n```bash\n# Ensure error rate was less than 5% and and average latency was under 100ms\n$ jq -e '.errors_ratio \u003c 0.05 and .latency_avg_ms \u003c 100' report.json\nfalse\n```\n\nThe load-tester image can be used as part of a kubernetes job\n```yaml\napiVersion: batch/v1\nkind: Job\nmetadata:\n  name: load-test\nspec:\n  template:\n    spec:\n      containers:\n      - name: load-tester\n        image: cguertz/load-tester:latest\n        command: [sh, -c, -x, -e]\n        args:\n        - |\n          wrk -t10 -c40 -d45s -s report.lua http://your-http-service/test\n          jq -e '.errors_ratio \u003c= 0.05 and .latency_avg_ms \u003c 100' report.json\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcguertin14%2Fload-tester","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcguertin14%2Fload-tester","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcguertin14%2Fload-tester/lists"}