Skip to content

Run Load Tests

Run Load Tests #7

Workflow file for this run

on:
workflow_dispatch:
name: Run Load Tests
env:
PK: ${{ secrets.AWS_PK }}
DEPLOY_USER: ${{ secrets.AWS_DEPLOY_USER }}
DEPLOY_HOST: ${{ secrets.AWS_DEPLOY_HOST }}
DB_HOST: ${{ secrets.AWS_DB_HOST }}
DB_PORT: ${{ secrets.AWS_DB_PORT }}
DB_USER: ${{ secrets.AWS_DB_USER }}
DB_PASSWORD: ${{ secrets.AWS_DB_PASSWORD }}
DB_DATABASE: ${{ secrets.AWS_DB_DATABASE }}
PK_PATH: /tmp/pk
jobs:
test:
runs-on: ubuntu-20.04
environment: STAGING
timeout-minutes: 10
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Create K6 env file
run: echo "export DATABASE_URL=postgres://${DB_USER}:${DB_PASSWORD}@localhost:5432/${DB_DATABASE}" >> ./.k6/.env
- name: Build K6
run: make k6-build
- name: Store SSH Key
run: bash ./.deploy/store_ssh_key.sh
- name: Postgres SSH tunnel over EC2
run: ssh -fN -o StrictHostKeyChecking=no -i ${PK_PATH} -L 5432:${DB_HOST}:${DB_PORT} ${DEPLOY_USER}@${DEPLOY_HOST}
- name: Seed Database
run: make k6-seed
- name: Run Load Tests For Health
run: make k6 FILEPATH=./.k6/test/health.js
- name: Run Load Tests For Get Users
run: make k6 FILEPATH=./.k6/test/get-users.js
- name: Run Load Tests For Create Tweets
run: make k6 FILEPATH=./.k6/test/create-tweets.js