{"id":23421183,"url":"https://github.com/nhsdigital/eps-load-test","last_synced_at":"2025-04-09T09:40:25.409Z","repository":{"id":255994671,"uuid":"793622979","full_name":"NHSDigital/eps-load-test","owner":"NHSDigital","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-24T01:14:16.000Z","size":1579,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-24T16:21:44.369Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/NHSDigital.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":"2024-04-29T15:10:50.000Z","updated_at":"2024-10-24T01:14:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"5546dd73-cd78-47e7-bce4-192d5da95cc7","html_url":"https://github.com/NHSDigital/eps-load-test","commit_stats":null,"previous_names":["nhsdigital/eps-load-test"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NHSDigital%2Feps-load-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NHSDigital%2Feps-load-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NHSDigital%2Feps-load-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NHSDigital%2Feps-load-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NHSDigital","download_url":"https://codeload.github.com/NHSDigital/eps-load-test/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248016378,"owners_count":21033965,"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-12-23T02:14:20.105Z","updated_at":"2025-04-09T09:40:25.388Z","avatar_url":"https://github.com/NHSDigital.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Artillery load testing\n\nThis repository contains some infrastructure to run load testing against specific Prescription Status Update (PSU) and Custom PSU (CPSU) builds. These are executed as github actions from this repository, and are configured with some basic parameters like max load, and ramp-up parameters.\n\nReports are generated as standalone webpage files, and are made available as artifacts on the github action.\n\n\n# Development\n\nThere are some scripts that can be used to dry-run small versions of the load testing locally. Note that the targets will still be deployed stacks - the setup for this is configured in your `.envrc` file.\n\nThe .envrc file also needs to contain an API key corresponding to an app in the [developer hub](https://dos-internal.ptl.api.platform.nhs.uk/Index) - follow the setup instructions [here](https://nhsd-confluence.digital.nhs.uk/display/APIMC/EPS+Prescription+Status+Update+API+Authorisation) to create one. Place the private key in a `.pem` file in the root of this directory. The deployment environment must also be set, one of `[\"dev\", \"int\", \"ref\"]`. Replace the elements wrapped in `\u003c\u003e`\n\n```bash\nexport maxVusers=1\nexport duration=5\nexport arrivalRate=2\nexport rampUpDuration=1\n\nexport environment=\"\u003cWHICH ENVIRONMENT YOU ARE LOAD TESTING\u003e\"\n\nexport cpsu_api_key=\"\u003cYOUR API KEY\u003e\"\n\nexport psu_api_key=\"\u003cYOUR API KEY\u003e\"\nexport psu_kid=\"\u003cYOUR KID VALUE\u003e\"\n\npsu_private_key=$(cat /workspaces/eps-load-test/psu_private_key.pem)\nexport psu_private_key\nexport status_api_token=\"\u003cSTATUS API TOKEN\u003e\"\n```\n\nNote that the quotes are important - hyphens will break the variable loading process.\n\nValid environments are `dev`, `int`, `ref`, and `pr`.\nA pull request deployment can be targeted with the local tests, by using the `pr` environment, and specifying a `prNumber` variable in the `.envrc` file.\n\nSmall-scale local load tests can then be run with `make` commands:\n- `make local-psu`\n- `make local-cpsu`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnhsdigital%2Feps-load-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnhsdigital%2Feps-load-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnhsdigital%2Feps-load-test/lists"}