Skip to content

performance

performance #47

Workflow file for this run

name: performance
on:
workflow_dispatch:
branches:
- feat/*
- develop
inputs:
protocol:
type: choice
description: 'Protocol'
required: true
options:
- http
- https
default: https
port:
description: 'Port number'
required: true
default: 443
users:
description: 'Amount of users (threads)'
required: true
default: 1
rampUp:
description: 'Ramp up period (in seconds)'
required: true
default: 5
loopCount:
description: 'Amount of runs'
required: true
default: 1
fileUrl:
description: 'Harvest file'
required: false
default: ''
fileOaiPmh:
description: 'Harvest OAI PMH'
required: false
default: ''
setSpec:
description: 'Set specification'
required: false
default: ''
metaDataFormat:
description: 'Metadata format'
required: false
default: ''
scenario:
type: choice
description: 'Scenario to run'
required: true
options:
- scenario-1-harvest-file
- scenario-2-harvest-oaipmh
- scenario-3-harvest-file-and-oaipmh
jobs:
performance-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
cache: maven
- name: Set up Jmeter 5.5
run: |
java -version
wget https://dlcdn.apache.org/jmeter/binaries/apache-jmeter-5.5.zip
unzip apache-jmeter-5.5.zip
pwd
cd apache-jmeter-5.5/bin
./jmeter -v
pwd
- name: Run Test Performance Scenario
run: |
uuid_arr=(`echo $(cat /proc/sys/kernel/random/uuid | tr '-' ' ')`)
scenario=$GITHUB_WORKSPACE/src/main/resources/performance/${{ github.event.inputs.scenario }}.jmx
test_report=$GITHUB_WORKSPACE/test_report/${uuid_arr[4]}
export SCENARIO=$scenario
export TEST_REPORT=$test_report
export UUID=${uuid_arr[4]}
echo "SCENARIO=$SCENARIO" >> $GITHUB_ENV
echo "TEST_REPORT=$TEST_REPORT" >> $GITHUB_ENV
echo "UUID=$UUID" >> $GITHUB_ENV
cd $GITHUB_WORKSPACE
mkdir -p $TEST_REPORT
cd apache-jmeter-5.5/bin
./jmeter -n -t $SCENARIO -l ${{ github.event.inputs.scenario }}.csv -e -o $TEST_REPORT -Jusers=${{ github.event.inputs.users }} -Jrampup=${{ github.event.inputs.rampUp }} -Jloopcount=${{ github.event.inputs.loopCount }} -Jhost=${{ secrets.ACCEPTANCE_API_ENDPOINT }} -Jport=${{ github.event.inputs.port }} -Jfileurl=${{ github.event.inputs.fileUrl }} -Joaiurl=${{ github.event.inputs.fileOaiPmh}} -Jsetspec=${{ github.event.inputs.setSpec }} -Jmetadataformat=${{ github.event.inputs.metaDataFormat }} -Japipath=${{ secrets.ACCEPTANCE_API_PATH }} -Jprotocol=${{ github.event.inputs.protocol }}
- name: Upload JMeter Test Report
uses: actions/upload-artifact@v3
with:
name: test_${{ env.UUID }}
path: ${{ env.TEST_REPORT }}