{"id":27076353,"url":"https://github.com/mhjort/clojider","last_synced_at":"2025-04-06T00:31:36.034Z","repository":{"id":44944864,"uuid":"50602009","full_name":"mhjort/clojider","owner":"mhjort","description":"AWS Lambda powered, distributed load testing tool for Clojure","archived":false,"fork":false,"pushed_at":"2023-06-02T14:19:25.000Z","size":61,"stargazers_count":77,"open_issues_count":3,"forks_count":4,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-03-03T21:15:58.058Z","etag":null,"topics":["aws-lambda","load-testing"],"latest_commit_sha":null,"homepage":"","language":"Clojure","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/mhjort.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":"2016-01-28T17:57:30.000Z","updated_at":"2024-08-26T22:35:59.000Z","dependencies_parsed_at":"2022-09-08T08:00:32.849Z","dependency_job_id":null,"html_url":"https://github.com/mhjort/clojider","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/mhjort%2Fclojider","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhjort%2Fclojider/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhjort%2Fclojider/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mhjort%2Fclojider/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mhjort","download_url":"https://codeload.github.com/mhjort/clojider/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247266579,"owners_count":20910838,"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":["aws-lambda","load-testing"],"created_at":"2025-04-06T00:30:41.223Z","updated_at":"2025-04-06T00:31:36.010Z","avatar_url":"https://github.com/mhjort.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# clojider\n\n[![Build Status](https://travis-ci.org/mhjort/clojider.svg?branch=master)](https://travis-ci.org/mhjort/clojider)\n\n![alt text](https://upload.wikimedia.org/wikipedia/commons/thumb/5/5c/Atlas_November_2005.jpg/220px-Atlas_November_2005.jpg \"Large Hadron Collider\")\n\nRun clj-gatling load tests on your local machine or by utilizing AWS Lambda technology.\n\nNote! This is an experimental alpha stage tool/library.\n\n## Features\n\n* Test your system using realistic scenarios. Not just one url.\n* Write test scenarios in Clojure. No special DSL.\n* Run your tests either from local machine or using multiple nodes using AWS Lambda technology.\n\n## Installation\n\n### Basic setup\n\n  Create new Clojure project \u0026 add the following to your `project.clj` `:dependencies`:\n\n  ```clojure\n  [clojider \"0.5.1\"]\n  ```\n\n  Add this setting to your `project.clj`\n\n  ```clojure\n  :main clojider.core\n  ```\n\n### AWS Lambda setup\n\n  Note! Clojider has to setup one S3 bucket, IAM role \u0026 policy and Lambda function using your AWS credentials. S3 bucket name you have to configure, other resources will be auto-named.\n  The credentials are read from standard environment variables or configuration file. See details from  [here](http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/set-up-creds.html).\n\n  Add this setting to your `project.clj`. This is required because report generation uses Gatling report generation [module](https://github.com/gatling/gatling-highcharts) which is Scala code.\n  Report generation happens in local machine and this setting prevents Scala code to be included in to Jar file that is deployed to AWS Lambda environment.\n\n  ```clojure\n  :uberjar-exclusions [#\"scala.*\"]\n  ```\n\n  Deploy your project to AWS Lambda.\n  Note! Lambda is available in these regions: eu-west-1, us-east-1, us-west-2 and ap-northeast-1.\n\n  ```sh\n  lein uberjar\n  lein run install -r \u003clambda-region\u003e -b \u003cs3-bucket-name\u003e -f target/\u003cyour-uberjar-path\u003e\n  ```\n\n## Writing tests\n\nYou can find few simple examples [here](https://github.com/mhjort/clojider/blob/master/src/clojider/examples.clj)\nwhich you run locally in a following way.\n\n```sh\n  lein run load-local -c 5 -d 10 -b \u003cs3-bucket-name\u003e -s clojider.examples/ping-simulation\n```\nor\n\n```sh\n  lein run load-local -c 5 -d 10 -b \u003cs3-bucket-name\u003e -s clojider.examples/metrics-simulation\n```\n\nSee [clj-gatling](https://github.com/mhjort/clj-gatling) on how to define test scenarios.\n\n## Running tests\n\n### Locally\n\n  ```sh\n  lein run load-local -c \u003cconcurrency\u003e -d \u003cduration-in-seconds\u003e -s \u003csimulation-symbol\u003e\n  ```\n\n### Using AWS Lambda\n\n  ```sh\n  lein run load-lambda -r \u003clambda-region\u003e -b \u003cs3-bucket-name\u003e -c \u003cconcurrency\u003e -d \u003cduration-in-seconds\u003e -s \u003csimulation-symbol\u003e\n  ```\n\n  And when you have updated your simulation (the scenario code), you have to update latest code to Lambda via\n\n  ```sh\n  lein uberjar\n  lein run update -r \u003clambda-region\u003e -b \u003cs3-bucket-name\u003e -f target/\u003cyour-uberjar-path\u003e\n  ```\n\n### Optional parameters\n\n  * `-t` or `--timeout`` specifies request timeout in milliseconds. By default it is 5000 ms.\n\n## Uninstall\n\nThis will uninstall all created AWS resources (S3 bucket, role, policy and Lambda function).\nThe cost of keeping these available in your account for the next load testing run is almost zero.\nLambda pricing is totally based on the usage and S3 bucket contains only smallish old result files.\nHowever, I still wanted to have an option to destroy everything when you don't need the tool anymore.\n\n  ```sh\n  lein run uninstall -r \u003clambda-region\u003e -b \u003cs3-bucket-name\u003e\n  ```\n\n\n\n## Contribute\n\nUse [GitHub issues](https://github.com/mhjort/clojider/issues) and [Pull Requests](https://github.com/mhjort/clojider/pulls).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhjort%2Fclojider","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmhjort%2Fclojider","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmhjort%2Fclojider/lists"}