Skip to content

Commit 0b67fdc

Browse files
authored
Merge pull request #155 from NHSDigital/perf_test_bugfixes
Perf test bugfixes
2 parents 13d162f + 0a1455c commit 0b67fdc

File tree

6 files changed

+1715
-2030
lines changed

6 files changed

+1715
-2030
lines changed

.github/workflows/perf-test-with-data.yml

Lines changed: 49 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,30 +7,41 @@ on:
77

88
workflow_dispatch:
99
inputs:
10+
runDataPrep:
11+
description: "Run data prep"
12+
required: true
13+
type: boolean
14+
default: 'true'
15+
runNurse:
16+
description: "Run the nurse journey"
17+
required: true
18+
type: boolean
19+
default: 'true'
1020
urn:
11-
description: "URN - for a school in the QA environment. This session MUST HAVE A SESSION DATE FOR TODAY."
21+
description: "Required: URN for a school in the QA environment. This must have a session date for today and tomorrow."
22+
required: true
23+
type: string
24+
input_file:
25+
description: "Require: Input file name used for all steps."
1226
required: true
1327
type: string
1428
duration:
15-
description: "Duration of nurse journey test, in seconds. This will include ramp-up."
29+
description: "Optional (default 3600) Duration of nurse journey test, in seconds. This will include ramp-up."
1630
required: false
1731
type: number
1832
threads:
19-
description: "Threads to run. Equivalent to the number of nurses using the system."
33+
description: "Optional (default 70) Threads to run. Equivalent to the number of nurses using the system."
2034
required: false
2135
type: number
2236
ramp_up:
23-
description: "Ramp-up time in seconds. Threads will be gradually started up over this time."
37+
description: "Optional (default 900) Ramp-up time in seconds. Threads will be gradually started up over this time."
2438
required: false
2539
type: number
2640
vaccination_loop:
27-
description: "Vaccination loop. The number of vaccinations each nurse will perform before logging and back in again."
41+
description: "Optional (default 20) Vaccination loop. The number of vaccinations each nurse will perform before logging and back in again."
2842
required: false
2943
type: number
30-
input_file:
31-
description: "Input file name used for all steps."
32-
required: false
33-
type: string
44+
3445

3546
# env:
3647
# JMETER_PLUGIN_INSTALL_LIST: "jpgc-udp,jpgc-graphs-basic,jpgc-dummy,bzm-random-csv"
@@ -60,6 +71,7 @@ jobs:
6071
curl -LsS --output jmeter/lib/ext/jmeter-plugins-manager-${{ env.jmeter_plugins_manager_version }}.jar https://jmeter-plugins.org/get/
6172
java -cp jmeter/lib/ext/jmeter-plugins-manager-${{ env.jmeter_plugins_manager_version }}.jar org.jmeterplugins.repository.PluginManagerCMDInstaller
6273
chmod +x jmeter/bin/PluginsManagerCMD.sh
74+
sed -i '/<Logger name="org.apache.jmeter.junit" level="debug" \/>/a \ <Logger name="org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase" level="info" additivity="false"\/>' jmeter/bin/log4j2.xml
6375
6476
- name: Install JMeter plugins
6577
if: env.jmeter_plugins != ''
@@ -80,28 +92,37 @@ jobs:
8092
run: echo "timestamp=$(date '+%Y%m%d%H%M%S')" >> $GITHUB_ENV
8193

8294
- name: Run file import for new file
95+
if: inputs.runDataPrep == true
8396
run: |
8497
mkdir -p import-output
8598
import_output_dir=import-output
86-
echo "Placeholder step for file import"
87-
88-
# - name: Run Consent Journey for imported records (2K records)
89-
# run: |
90-
# mkdir -p consent-output
91-
# consent_output_dir=consent-output
92-
# jmeter/bin/jmeter -n -t performance-tests/E2E/consent-journey.jmx \
93-
# -l $consent_output_dir/samples.jtl \
94-
# -j $consent_output_dir/jmeter.log \
95-
# -e -o $consent_output_dir/consent-report \
96-
# -JURN=${{inputs.urn}} \
97-
# -JAuthToken=${{secrets.HTTP_AUTH_TOKEN_FOR_TESTS}} \
98-
# -JInputFile=${{inputs.input_file}}
99+
jmeter/bin/jmeter -n -t performance-tests/E2E/upload-cohort-data.jmx \
100+
-l $import_output_dir/samples.jtl \
101+
-j $import_output_dir/jmeter.log \
102+
-e -o $import_output_dir/upload-report \
103+
-JURN=${{inputs.urn}} \
104+
-JAuthToken=${{secrets.HTTP_AUTH_TOKEN_FOR_TESTS}} \
105+
-JInputFile=${{inputs.input_file}}
106+
107+
- name: Run Consent Journey for imported records
108+
if: inputs.runDataPrep == true
109+
run: |
110+
mkdir -p consent-output
111+
consent_output_dir=consent-output
112+
jmeter/bin/jmeter -n -t performance-tests/E2E/consent-journey.jmx \
113+
-l $consent_output_dir/samples.jtl \
114+
-j $consent_output_dir/jmeter.log \
115+
-e -o $consent_output_dir/consent-report \
116+
-JURN=${{inputs.urn}} \
117+
-JAuthToken=${{secrets.HTTP_AUTH_TOKEN_FOR_TESTS}} \
118+
-JInputFile=${{inputs.input_file}}
99119
100120
- name: Run nurse journey JMeter test
121+
if: inputs.runNurse == true
101122
run: |
102123
mkdir -p nurse-output
103124
nurse_output_dir=nurse-output
104-
jmeter/bin/jmeter -n -t performance-tests/nurse-journey.jmx \
125+
jmeter/bin/jmeter -n -t performance-tests/E2E/nurse-journey.jmx \
105126
-l $nurse_output_dir/samples.jtl \
106127
-j $nurse_output_dir/jmeter.log \
107128
-e -o $nurse_output_dir/report \
@@ -110,19 +131,21 @@ jobs:
110131
-JDuration=${{inputs.duration}} \
111132
-JThreads=${{inputs.threads}} \
112133
-JRampUp=${{inputs.ramp_up}} \
113-
-JVaccinationLoop=${{inputs.vaccination_loop}}
134+
-JVaccinationLoop=${{inputs.vaccination_loop}} \
114135
-JInputFile=${{inputs.input_file}}
115136
116137
- name: Upload consent journey JMeter output
138+
if: inputs.runDataPrep == true
117139
uses: actions/upload-artifact@v4
118140
with:
119141
name: jmeter-consent-journey-output-${{ env.timestamp }}
120142
path: consent-output
121-
if-no-files-found: error
143+
if-no-files-found: warn
122144

123145
- name: Upload nurse journey JMeter output
146+
if: inputs.runNurse == true
124147
uses: actions/upload-artifact@v4
125148
with:
126149
name: jmeter-nurse-journey-output-${{ env.timestamp }}
127150
path: nurse-output
128-
if-no-files-found: error
151+
if-no-files-found: warn

0 commit comments

Comments
 (0)