Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
15 changes: 9 additions & 6 deletions .github/workflows/performance.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,6 @@ on:
required: false
type: string
default: '900'
vaccination_loop:
description: "Optional (default 20) Vaccination loop. The number of vaccinations each nurse will perform before logging and back in again."
required: false
type: string
default: '20'
row_count:
description: "Optional (default 1000) number of rows in the cohort file."
required: false
Expand All @@ -56,6 +51,11 @@ on:
required: true
type: string
default: '[email protected]'
BaseURL:
description: "Optional (default qa.mavistesting.com) URL"
required: true
type: string
default: 'qa.mavistesting.com'

jobs:
nurse_journey_performance_test:
Expand Down Expand Up @@ -131,6 +131,7 @@ jobs:
-j $generate_cohort_output_dir/jmeter.log \
-JAuthToken=${{secrets.HTTP_AUTH_TOKEN_FOR_TESTS}} \
-JURN=${{inputs.URN}} \
-JBaseURL=${{inputs.BaseURL}} \
-JRowCount=${{inputs.row_count}}

- name: Run file import for new file
Expand All @@ -143,6 +144,7 @@ jobs:
-j $import_output_dir/jmeter.log \
-JAuthToken=${{secrets.HTTP_AUTH_TOKEN_FOR_TESTS}} \
-JUser=${{inputs.user}} \
-JBaseURL=${{inputs.BaseURL}} \
-JInputFile="cohortnew.csv"

- name: Run Consent Journey
Expand All @@ -163,6 +165,7 @@ jobs:
-JRampUp=60 \
-JDuration=${{inputs.duration}} \
-JUser=${{inputs.user}} \
-JBaseURL=${{inputs.BaseURL}} \
-JURN=${{inputs.URN}}

- name: Upload consent journey JMeter output
Expand All @@ -188,10 +191,10 @@ jobs:
-JAuthToken=${{secrets.HTTP_AUTH_TOKEN_FOR_TESTS}} \
-JLoops=-1 \
-JThreads=${{inputs.threads}} \
-JVaccinationLoop=${{inputs.vaccination_loop}} \
-JRampUp=${{inputs.ramp_up}} \
-JDuration=${{inputs.duration}} \
-JUser=${{inputs.user}} \
-JBaseURL=${{inputs.BaseURL}} \
-JURN=${{inputs.URN}}

- name: Upload nurse journey JMeter output
Expand Down
13 changes: 9 additions & 4 deletions performance-tests/STS/consent-journey.jmx
Original file line number Diff line number Diff line change
Expand Up @@ -81,13 +81,18 @@
<stringProp name="Argument.value">5</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="BaseURL" elementType="Argument">
<stringProp name="Argument.name">BaseURL</stringProp>
<stringProp name="Argument.value">${__P(BaseURL,qa.mavistesting.com)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
<stringProp name="TestPlan.comments">User ${__P(User, [email protected])}
URN ${__P(URN, 137390)} </stringProp>
</Arguments>
<hashTree/>
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults">
<stringProp name="HTTPSampler.domain">qa.mavistesting.com</stringProp>
<stringProp name="HTTPSampler.domain">${BaseURL}</stringProp>
<stringProp name="HTTPSampler.protocol">https</stringProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables">
<collectionProp name="Arguments.arguments"/>
Expand Down Expand Up @@ -1144,7 +1149,7 @@ log.info(&quot;Total Consents found: &quot; + consentCount.toString());
<hashTree/>
</hashTree>
</hashTree>
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Get patients">
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Get patients" enabled="true">
<collectionProp name="ModuleController.node_path">
<stringProp name="764597751">Test Plan</stringProp>
<stringProp name="764597751">Test Plan</stringProp>
Expand All @@ -1153,7 +1158,7 @@ log.info(&quot;Total Consents found: &quot; + consentCount.toString());
</ModuleController>
<hashTree/>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group">
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
<stringProp name="ThreadGroup.num_threads">${ConsentThreads}</stringProp>
<stringProp name="ThreadGroup.ramp_time">${RampUp}</stringProp>
<stringProp name="ThreadGroup.duration">${Duration}</stringProp>
Expand Down Expand Up @@ -1439,7 +1444,7 @@ vars.get(&quot;VaccineCount_td_ipv&quot;,props.get(&quot;VaccineCount_td_ipv&quo
</hashTree>
<TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Get patients for processing" enabled="false"/>
<hashTree>
<JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="Calculate patient requirements">
<JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="Calculate patient requirements" enabled="true">
<stringProp name="scriptLanguage">groovy</stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="filename"></stringProp>
Expand Down
9 changes: 7 additions & 2 deletions performance-tests/STS/generate-cohort.jmx
Original file line number Diff line number Diff line change
Expand Up @@ -171,12 +171,17 @@ writer.close();</stringProp>
</elementProp>
<elementProp name="URN" elementType="Argument">
<stringProp name="Argument.name">URN</stringProp>
<stringProp name="Argument.value">${__P(URN, 100006)}</stringProp>
<stringProp name="Argument.value">${__P(URN, 108657)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="RowCount" elementType="Argument">
<stringProp name="Argument.name">RowCount</stringProp>
<stringProp name="Argument.value">${__P(RowCount,100)}</stringProp>
<stringProp name="Argument.value">${__P(RowCount,300)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="BaseURL" elementType="Argument">
<stringProp name="Argument.name">BaseURL</stringProp>
<stringProp name="Argument.value">${__P(BaseURL,qa.mavistesting.com)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
Expand Down
37 changes: 24 additions & 13 deletions performance-tests/STS/nurse-journey.jmx
Original file line number Diff line number Diff line change
Expand Up @@ -118,13 +118,13 @@
</elementProp>
<elementProp name="Loops" elementType="Argument">
<stringProp name="Argument.name">Loops</stringProp>
<stringProp name="Argument.value">${__P(Loops, 5)}</stringProp>
<stringProp name="Argument.value">${__P(Loops, 1)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<stringProp name="Argument.desc">How many loops total (must be multiple times higher than vaccinationloop)</stringProp>
</elementProp>
<elementProp name="Threads" elementType="Argument">
<stringProp name="Argument.name">Threads</stringProp>
<stringProp name="Argument.value">${__P(Threads, 4)}</stringProp>
<stringProp name="Argument.value">${__P(Threads, 1)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
<stringProp name="Argument.desc"></stringProp>
</elementProp>
Expand All @@ -146,18 +146,23 @@
</elementProp>
<elementProp name="User" elementType="Argument">
<stringProp name="Argument.name">User</stringProp>
<stringProp name="Argument.value">${__P(User, [email protected])}</stringProp>
<stringProp name="Argument.value">${__P(User, [email protected])}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="BaseURL" elementType="Argument">
<stringProp name="Argument.name">BaseURL</stringProp>
<stringProp name="Argument.value">${__P(BaseURL,qa.mavistesting.com)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
<stringProp name="TestPlan.comments">User ${__P(User, [email protected])} </stringProp>
</Arguments>
<hashTree/>
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults">
<boolProp name="HTTPSampler.image_parser">true</boolProp>
<boolProp name="HTTPSampler.concurrentDwn">true</boolProp>
<intProp name="HTTPSampler.concurrentPool">6</intProp>
<stringProp name="HTTPSampler.domain">qa.mavistesting.com</stringProp>
<stringProp name="HTTPSampler.domain">${BaseURL}</stringProp>
<stringProp name="HTTPSampler.protocol">https</stringProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables">
<collectionProp name="Arguments.arguments"/>
Expand Down Expand Up @@ -219,7 +224,7 @@
</ModuleController>
<hashTree/>
</hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Nurse journey">
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Nurse journey" enabled="true">
<stringProp name="ThreadGroup.num_threads">${Threads}</stringProp>
<stringProp name="ThreadGroup.ramp_time">${RampUp}</stringProp>
<stringProp name="ThreadGroup.duration">${Duration}</stringProp>
Expand All @@ -241,7 +246,7 @@
</ModuleController>
<hashTree/>
</hashTree>
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree">
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
Expand Down Expand Up @@ -278,7 +283,7 @@
<stringProp name="filename"></stringProp>
</ResultCollector>
<hashTree/>
<org.jmeterplugins.protocol.http.control.HttpSimpleTableControl guiclass="org.jmeterplugins.protocol.http.control.gui.HttpSimpleTableControlGui" testclass="org.jmeterplugins.protocol.http.control.HttpSimpleTableControl" testname="jp@gc - HTTP Simple Table Server">
<org.jmeterplugins.protocol.http.control.HttpSimpleTableControl guiclass="org.jmeterplugins.protocol.http.control.gui.HttpSimpleTableControlGui" testclass="org.jmeterplugins.protocol.http.control.HttpSimpleTableControl" testname="jp@gc - HTTP Simple Table Server" enabled="true">
<stringProp name="HttpSimpleTableControlGui.port">9191</stringProp>
<boolProp name="HttpSimpleTableControlGui.timestamp">true</boolProp>
<stringProp name="HttpSimpleTableControlGui.dir">C:\apache-jmeter-5.6.3\bin</stringProp>
Expand Down Expand Up @@ -910,14 +915,14 @@ while(vars.get(&quot;vaccination_&quot; + i)){
<boolProp name="TransactionController.includeTimers">false</boolProp>
</TransactionController>
<hashTree>
<JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="Choose session">
<JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="Choose session" enabled="true">
<stringProp name="scriptLanguage">groovy</stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="filename"></stringProp>
<stringProp name="cacheKey">true</stringProp>
<stringProp name="script">//Get the current thread number
Threadnum=ctx.getThreadNum().toInteger()
//Threadnum=3 // Use to override a vaccine if needed
//Threadnum=2 // Use to override a vaccine if needed

//Divide threads equally between the four programmes, each nurse stays with the programme (might bias it towards Flu at some point)

Expand Down Expand Up @@ -1090,7 +1095,7 @@ log.info(&quot;for thread &quot; + Threadnum.toString() + &quot; &amp; VaccineNa
<stringProp name="RegexExtractor.match_number">1</stringProp>
</RegexExtractor>
<hashTree/>
<JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Set Ignore" enabled="false">
<JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Set Ignore" enabled="true">
<stringProp name="scriptLanguage">groovy</stringProp>
<stringProp name="parameters"></stringProp>
<stringProp name="filename"></stringProp>
Expand Down Expand Up @@ -1154,7 +1159,7 @@ log.info(&quot;for thread &quot; + Threadnum.toString() + &quot; &amp; VaccineNa
<hashTree/>
</hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="2.3 Search by first/last name" enabled="true">
<stringProp name="HTTPSampler.path">sessions/${SessionId}/register?q=${CHILD_FIRST_NAME}+${CHILD_LAST_NAME}&amp;register_status=&amp;vaccination_status=none_yet&amp;%5Byear_groups%5D%5B%5D=&amp;date_of_birth_day=&amp;date_of_birth_month=&amp;date_of_birth_year=&amp;archived=0&amp;missing_nhs_number=0</stringProp>
<stringProp name="HTTPSampler.path">sessions/${SessionId}/register?q=${CHILD_FIRST_NAME}+${CHILD_LAST_NAME}&amp;%5Bprogramme_types%5D%5B%5D=&amp;register_status=&amp;vaccination_status=&amp;%5Byear_groups%5D%5B%5D=&amp;date_of_birth_day=&amp;date_of_birth_month=&amp;date_of_birth_year=&amp;archived=0&amp;missing_nhs_number=0</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
Expand Down Expand Up @@ -1209,6 +1214,12 @@ log.info(&quot;for thread &quot; + Threadnum.toString() + &quot; &amp; VaccineNa
</RegexExtractor>
<hashTree/>
</hashTree>
<DebugSampler guiclass="TestBeanGUI" testclass="DebugSampler" testname="Debug Sampler" enabled="false">
<boolProp name="displayJMeterProperties">false</boolProp>
<boolProp name="displayJMeterVariables">true</boolProp>
<boolProp name="displaySystemProperties">false</boolProp>
</DebugSampler>
<hashTree/>
<IfController guiclass="IfControllerPanel" testclass="IfController" testname="If PatientId_NotFound (No further patients)" enabled="true">
<stringProp name="IfController.condition">${__jexl3(&quot;${PatientName_matchNr}&quot; == &quot;0&quot;)}</stringProp>
<boolProp name="IfController.evaluateAll">false</boolProp>
Expand Down Expand Up @@ -1437,7 +1448,7 @@ for(loop=1;loop&lt;=PatientCount;loop++){
<hashTree/>
</hashTree>
</hashTree>
<DebugSampler guiclass="TestBeanGUI" testclass="DebugSampler" testname="Debug Sampler" enabled="true">
<DebugSampler guiclass="TestBeanGUI" testclass="DebugSampler" testname="Debug Sampler" enabled="false">
<boolProp name="displayJMeterProperties">false</boolProp>
<boolProp name="displayJMeterVariables">true</boolProp>
<boolProp name="displaySystemProperties">false</boolProp>
Expand Down
15 changes: 10 additions & 5 deletions performance-tests/STS/upload-cohort-data.jmx
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
</collectionProp>
</HeaderManager>
<hashTree/>
<Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
<Arguments guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables">
<collectionProp name="Arguments.arguments">
<elementProp name="BaseDirectory" elementType="Argument">
<stringProp name="Argument.name">BaseDirectory</stringProp>
Expand Down Expand Up @@ -85,6 +85,11 @@
<stringProp name="Argument.value">${__P(User, [email protected])}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
<elementProp name="BaseURL" elementType="Argument">
<stringProp name="Argument.name">BaseURL</stringProp>
<stringProp name="Argument.value">${__P(BaseURL,qa.mavistesting.com)}</stringProp>
<stringProp name="Argument.metadata">=</stringProp>
</elementProp>
</collectionProp>
</Arguments>
<hashTree/>
Expand Down Expand Up @@ -133,8 +138,8 @@
</collectionProp>
</Arguments>
<hashTree/>
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
<stringProp name="HTTPSampler.domain">qa.mavistesting.com</stringProp>
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults">
<stringProp name="HTTPSampler.domain">${BaseURL}</stringProp>
<stringProp name="HTTPSampler.protocol">https</stringProp>
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables">
<collectionProp name="Arguments.arguments"/>
Expand Down Expand Up @@ -643,7 +648,7 @@ ${__FileToString(${BaseDirectory}${FileName},,)}&#xd;
<stringProp name="scriptLanguage">groovy</stringProp>
</JSR223PostProcessor>
<hashTree/>
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="CohortImportId Regular Expression Extractor">
<RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="CohortImportId Regular Expression Extractor" enabled="true">
<stringProp name="RegexExtractor.useHeaders">false</stringProp>
<stringProp name="RegexExtractor.refname">CohortImportId</stringProp>
<stringProp name="RegexExtractor.regex">&lt;a href=&quot;\/cohort-imports\/(.*?)&quot;</stringProp>
Expand Down Expand Up @@ -779,7 +784,7 @@ ${__FileToString(${BaseDirectory}${FileName},,)}&#xd;
</hashTree>
</hashTree>
</hashTree>
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree">
<ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
<boolProp name="ResultCollector.error_logging">false</boolProp>
<objProp>
<name>saveConfig</name>
Expand Down
Loading