Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
43305f0
initial push
adam-wallernhs1 Feb 5, 2026
0665cf7
performance tests initial commit
Karthikeyannhs Feb 6, 2026
640ee00
Chore: [ELI-605] - Changes to update nhsd-application-id to NHSE-Prod…
adam-wallernhs1 Feb 6, 2026
e5d2802
pytest integrated with performance tests
Karthikeyannhs Feb 9, 2026
c67004e
locust updated
Karthikeyannhs Feb 9, 2026
68d6c4f
fixed the test cases
Karthikeyannhs Feb 9, 2026
4471fe6
added test data
Karthikeyannhs Feb 9, 2026
266f4bf
temp file for nhs numbers
Karthikeyannhs Feb 9, 2026
c73a920
fix
Karthikeyannhs Feb 9, 2026
524c16f
html output
Karthikeyannhs Feb 9, 2026
234a2fd
performance test workflow
Karthikeyannhs Feb 9, 2026
0b5754b
test performance
Karthikeyannhs Feb 9, 2026
e15455f
added locust to poetry
Karthikeyannhs Feb 10, 2026
a105e09
certs file creation for performance tests
Karthikeyannhs Feb 10, 2026
5b2b554
report.html as artifact
Karthikeyannhs Feb 10, 2026
7a28e4d
reused eligibility client
Karthikeyannhs Feb 10, 2026
156ba77
linting
Karthikeyannhs Feb 10, 2026
293db37
formating
Karthikeyannhs Feb 10, 2026
09e396c
workflow updated
Karthikeyannhs Feb 10, 2026
dde4459
Chore: [ELI-592] - NBS COVID Scenarios (#124)
adam-wallernhs1 Feb 9, 2026
bd14463
Chore: [ELI-9875] - allow the consumer mapping config in preprod (#125)
adam-wallernhs1 Feb 9, 2026
6f53bb9
Upgrade: [dependabot] - bump actions/checkout from 4 to 6 (#104)
dependabot[bot] Feb 10, 2026
917539b
Upgrade: [dependabot] - bump npm from 11.6.2 to 11.6.3 (#103)
dependabot[bot] Feb 10, 2026
2e79f2a
Upgrade: [dependabot] - bump asdf-vm/actions from 4.0.0 to 4.0.1 (#102)
dependabot[bot] Feb 10, 2026
8e8e065
Merge branch 'main' into performance-testing-spike
Karthikeyannhs Feb 10, 2026
23a6eb9
test commit
Karthikeyannhs Feb 10, 2026
b7ba794
pre-commit fixes
Karthikeyannhs Feb 10, 2026
af57e52
wip
Karthikeyannhs Feb 10, 2026
a08befd
revert last commit
Karthikeyannhs Feb 10, 2026
0143f80
Upgrade: [dependabot] - bump boto3 from 1.40.50 to 1.40.62 (#97)
dependabot[bot] Feb 10, 2026
eaafc5b
Chore: [ELI-632] - multiple iterations with new text (#129)
adam-wallernhs1 Feb 10, 2026
48379eb
Chore: [ELI-9999] - Ensure NBS and My Vaccs configs Remain in preprod…
adam-wallernhs1 Feb 10, 2026
052e320
poetry lock
Karthikeyannhs Feb 10, 2026
8190894
Merge branch 'main' into performance-testing-spike
Karthikeyannhs Feb 10, 2026
45368af
poetry lock
Karthikeyannhs Feb 10, 2026
8236f11
fixed locust error report
Karthikeyannhs Feb 11, 2026
86301c7
headers from csv
Karthikeyannhs Feb 11, 2026
18defe2
removed hardcodings
Karthikeyannhs Feb 11, 2026
dc4b552
assert based on response time
Karthikeyannhs Feb 11, 2026
f743177
example log query
TOEL2 Feb 13, 2026
976703a
WIP
TOEL2 Feb 17, 2026
732602c
WIP
TOEL2 Feb 17, 2026
1b6fe48
WIP output html for performance tests.
ayeshalshukri1-nhs Feb 17, 2026
08fe8f0
WIP refactor metrics and added basic html table output.
ayeshalshukri1-nhs Feb 17, 2026
f7aaad9
WIP
TOEL2 Feb 18, 2026
25ed5a0
WIP
TOEL2 Feb 18, 2026
d65d7f8
linting
TOEL2 Feb 19, 2026
b3f08f3
WIP
TOEL2 Feb 23, 2026
51def89
refactor
TOEL2 Feb 24, 2026
1e3ce9b
refactor
TOEL2 Feb 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/my-vaccs-int-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,4 +85,4 @@ jobs:
aws-region: eu-west-2

- name: Run Vita Integration Tests
run: make run-vita-preprod-tests
run: make run-vita-preprod-tests
143 changes: 143 additions & 0 deletions .github/workflows/performance_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
name: Performance Tests

concurrency:
group: ${{ github.workflow }}

on:
workflow_dispatch:
inputs:
environment:
description: 'Environment to run tests against'
type: environment
required: true
default: "dev"
users:
description: 'Number of users to simulate'
type: number
required: true
default: 100
spawn_rate:
description: 'Rate to spawn users'
type: number
required: true
default: 20
run_time:
description: 'Duration to run the test for (e.g. 1m, 30s, 1h)'
type: string
required: true
default: "30s"
github_tag:
description: 'The github tag to run the test pack from'
required: true
default: "main"

jobs:
performance_tests:
permissions:
id-token: write
issues: write
pull-requests: write
runs-on: ubuntu-22.04
environment: ${{ inputs.environment }}
steps:
- name: show_input_parameters
env:
tags: "@performance"
environment: ${{ inputs.environment }}
log_level: "INFO"
id: "manual run"
github_tag: ${{ inputs.github_tag }}
run: |
echo "tags: ${tags}"
echo "environment: ${environment}"
echo "log_level: ${log_level}"
echo "id: ${id}"
echo "github_tag: ${github_tag}"
# output to summary
# shellcheck disable=SC2129
echo "tags: ${tags}" >> "$GITHUB_STEP_SUMMARY"
echo "environment: ${environment}" >> "$GITHUB_STEP_SUMMARY"
echo "log_level: ${log_level}" >> "$GITHUB_STEP_SUMMARY"
echo "id: ${id}" >> "$GITHUB_STEP_SUMMARY"
echo "github_tag: ${github_tag}" >> "$GITHUB_STEP_SUMMARY"

- name: ${{github.event.inputs.id}}
env:
ID: ${{github.event.inputs.id}}
ENV: ${{ inputs.environment }}
run: |
echo run identifier "$ID"-"$ENV"
echo run identifier "$ID"-"$ENV" >> "$GITHUB_STEP_SUMMARY"

- name: Checkout
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
with:
ref: ${{ inputs.github_tag }}

# using git commit sha for version of action to ensure we have stable version
- name: Install asdf
uses: asdf-vm/actions/setup@1902764435ca0dd2f3388eea723a4f92a4eb8302
with:
asdf_version: 0.18.0

- name: Cache asdf
uses: actions/cache@v4
with:
path: |
~/.asdf
key: ${{ runner.os }}-asdf-${{ hashFiles('**/.tool-versions') }}

- name: Install asdf dependencies in .tool-versions
uses: asdf-vm/actions/install@1902764435ca0dd2f3388eea723a4f92a4eb8302
with:
asdf_version: 0.18.0
env:
PYTHON_CONFIGURE_OPTS: --enable-shared

- name: Cache Virtualenv
uses: actions/cache@v4
id: cache-venv
with:
path: .venv
key: ${{ runner.os }}-venv-${{ hashFiles('pyproject.toml') }}

- name: Install Dependencies
if: steps.cache-venv.outputs.cache-hit != 'true'
run: make install

- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v5.1.0
with:
role-to-assume: arn:aws:iam::${{ secrets.AWS_ACCOUNT_ID }}:role/Eligibility-Signposting-API-E2E-Regression-Tests
aws-region: eu-west-2

- name: Performance Tests
id: tests
env:
ENVIRONMENT: ${{ inputs.environment }}
LOG_LEVEL: "INFO"
INPUT_TAG: "@performance"
USERS: ${{ inputs.users }}
SPAWN_RATE: ${{ inputs.spawn_rate }}
RUN_TIME: ${{ inputs.run_time }}
run: |
make run-performance-tests \
env="$ENVIRONMENT" \
log_level="$LOG_LEVEL" \
users="$USERS" \
spawn_rate="$SPAWN_RATE" \
run_time="$RUN_TIME"

- name: Upload Locust Performance Report
if: always()
uses: actions/upload-artifact@v6
with:
name: performance-locust-report
path: temp/locust_report.html

- name: Upload AWS Logs Performance Report
if: always()
uses: actions/upload-artifact@v6
with:
name: performance-awslogs-report
path: temp/aws_logs_report.html
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,9 @@ run-tests: guard-env guard-log_level clear-db
poetry run pytest --env=${env} --log-cli-level=${log_level} -s tests/test_vita_integration_tests.py
poetry run pytest --env=${env} --log-cli-level=${log_level} -s tests/test_nbs_integration_tests.py

run-performance-tests: guard-env guard-log_level clear-db
poetry run pytest --env=${env} --log-cli-level=${log_level} -s tests/performance_tests/test_performance_tests.py

ifeq ($(filter $(env),test dev),$(env))
poetry run pytest --env=${env} --log-cli-level=${log_level} -s tests/test_hashing_tests.py
endif
Expand Down
Loading