Skip to content

govuk-one-login/performance-testing

Repository files navigation

Publish


Performance Testing Framework

This repository contains the performance test framework for testing Digital Identity happy path user journeys.

Getting Started

Required Installations

  • pre-commit for running pre-commit hooks locally
    % brew install pre-commit && pre-commit install && pre-commit install -tprepare-commit-msg -tcommit-msg
  • k6 for testing and executing scripts locally
    % brew install k6

Optional Installations

  • AWS CLI for command line access to AWS resources
  • AWS SAM CLI only needed for platform engineers managing the serverless resources and pipelines
    % brew install aws/tap/aws-sam-cli
  • GDS CLI for command line access to internal AWS accounts and resources
    % brew install alphagov/gds/gds-cli
  • Docker for building or testing the Dockerfile locally

Contributing

If you would like to create a new test script or make changes to any of the existing test scripts, first read through the information in deploy/scripts/README.md. Create a new .ts file in the appropriate team folder within the deploy/scripts directory or change an existing one.

Raise pull requests for any changes, including the JIRA ticket number in the description. Pull requests must pass pre-commit hooks, linting and unit test checks before merging to main.

Technology Stack

The infrastructure is defined as infrastructure-as-code in the form of a AWS CloudFormation template. This defines the performance test application stack which consists of a AWS CodeBuild pipeline which orchestrates the performance tests.

The CodeBuild agent uses a Docker image, which is defined in the Dockerfile. The image contains:

Infrastructure Diagram

The performance test application is initially deployed to the di-performance-test-non-prod AWS account and then promoted to the di-performance-test-prod account. From the Production account, performance tests can be run against any given Build or Staging environment.