Skip to content

Commit c0a2b7d

Browse files
authored
Merge pull request #834 from NHSDigital/perftest-fix-consent-calculation
Fix consent journey calculation
2 parents 3602a2e + 062aef4 commit c0a2b7d

File tree

2 files changed

+47
-29
lines changed

2 files changed

+47
-29
lines changed

performance-tests/STS/consent-journey.jmx

Lines changed: 46 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@
9696
URN ${__P(URN, 137390)} </stringProp>
9797
</Arguments>
9898
<hashTree/>
99-
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
99+
<ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults">
100100
<stringProp name="HTTPSampler.domain">${BaseURL}</stringProp>
101101
<stringProp name="HTTPSampler.protocol">https</stringProp>
102102
<elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables">
@@ -129,7 +129,7 @@ URN ${__P(URN, 137390)} </stringProp>
129129
<boolProp name="CacheManager.controlledByThread">false</boolProp>
130130
</CacheManager>
131131
<hashTree/>
132-
<SetupThreadGroup guiclass="SetupThreadGroupGui" testclass="SetupThreadGroup" testname="setUp Thread Group">
132+
<SetupThreadGroup guiclass="SetupThreadGroupGui" testclass="SetupThreadGroup" testname="setUp Thread Group" enabled="true">
133133
<stringProp name="TestPlan.comments">Because I&apos;m no longer using a data file, this set up thread group can be here purely to set up sessions and data</stringProp>
134134
<intProp name="ThreadGroup.num_threads">1</intProp>
135135
<intProp name="ThreadGroup.ramp_time">1</intProp>
@@ -172,7 +172,7 @@ log.info(vars.get(&quot;AddNewSession&quot;))
172172
<boolProp name="IfController.useExpression">true</boolProp>
173173
</IfController>
174174
<hashTree>
175-
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Add New Session" enabled="true">
175+
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Add New Session">
176176
<collectionProp name="ModuleController.node_path">
177177
<stringProp name="764597751">Test Plan</stringProp>
178178
<stringProp name="764597751">Test Plan</stringProp>
@@ -217,7 +217,7 @@ vars.get(&quot;VaccineCount_td_ipv&quot;,props.get(&quot;VaccineCount_td_ipv&quo
217217
</stringProp>
218218
</JSR223Sampler>
219219
<hashTree/>
220-
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Next Patient from STS">
220+
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Next Patient from STS" enabled="true">
221221
<stringProp name="TestPlan.comments">While there is only one patient list for consents, I&apos;m applying consent for all programmes and ignoring the programme value in the STS file</stringProp>
222222
<stringProp name="HTTPSampler.domain">localhost</stringProp>
223223
<stringProp name="HTTPSampler.port">9191</stringProp>
@@ -351,13 +351,13 @@ vars.get(&quot;VaccineCount_td_ipv&quot;,props.get(&quot;VaccineCount_td_ipv&quo
351351
</JSR223PostProcessor>
352352
<hashTree/>
353353
</hashTree>
354-
<IfController guiclass="IfControllerPanel" testclass="IfController" testname="End user if no more patients">
354+
<IfController guiclass="IfControllerPanel" testclass="IfController" testname="End user if no more patients" enabled="true">
355355
<stringProp name="IfController.condition">${__jexl3(&quot;${Result}&quot; == &quot;KO&quot;)}</stringProp>
356356
<boolProp name="IfController.evaluateAll">false</boolProp>
357357
<boolProp name="IfController.useExpression">true</boolProp>
358358
</IfController>
359359
<hashTree>
360-
<TestAction guiclass="TestActionGui" testclass="TestAction" testname="Stop on no data">
360+
<TestAction guiclass="TestActionGui" testclass="TestAction" testname="Stop on no data" enabled="true">
361361
<intProp name="ActionProcessor.action">0</intProp>
362362
<intProp name="ActionProcessor.target">0</intProp>
363363
<stringProp name="ActionProcessor.duration">0</stringProp>
@@ -373,7 +373,7 @@ vars.get(&quot;VaccineCount_td_ipv&quot;,props.get(&quot;VaccineCount_td_ipv&quo
373373
<hashTree/>
374374
</hashTree>
375375
</hashTree>
376-
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Submit consents">
376+
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Submit consents" enabled="true">
377377
<collectionProp name="ModuleController.node_path">
378378
<stringProp name="764597751">Test Plan</stringProp>
379379
<stringProp name="764597751">Test Plan</stringProp>
@@ -476,7 +476,7 @@ vars.get(&quot;VaccineCount_td_ipv&quot;,props.get(&quot;VaccineCount_td_ipv&quo
476476
</hashTree>
477477
<TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Get patients for processing" enabled="false"/>
478478
<hashTree>
479-
<JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="Calculate patient requirements">
479+
<JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="Calculate patient requirements" enabled="true">
480480
<stringProp name="scriptLanguage">groovy</stringProp>
481481
<stringProp name="parameters"></stringProp>
482482
<stringProp name="filename"></stringProp>
@@ -665,7 +665,7 @@ log.info(&quot;number of patients per Vaccine required: &quot; + props.get(&quot
665665
</BoundaryExtractor>
666666
<hashTree/>
667667
</hashTree>
668-
<JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="Reset session ID list">
668+
<JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="Reset session ID list" enabled="true">
669669
<stringProp name="scriptLanguage">groovy</stringProp>
670670
<stringProp name="parameters"></stringProp>
671671
<stringProp name="filename"></stringProp>
@@ -677,8 +677,23 @@ log.info(&quot;number of patients per Vaccine required: &quot; + props.get(&quot
677677
<stringProp name="LoopController.loops">4</stringProp>
678678
</LoopController>
679679
<hashTree>
680+
<JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="Move page range" enabled="true">
681+
<stringProp name="scriptLanguage">groovy</stringProp>
682+
<stringProp name="parameters"></stringProp>
683+
<stringProp name="filename"></stringProp>
684+
<stringProp name="cacheKey">true</stringProp>
685+
<stringProp name="script">//The test only needs to scan a subset of pages, but the JMeter loop controller can only start from 1
686+
//So this adds a value to the current page. When the test runs out of sessions, increase the offset
687+
688+
currentPageOffset=3
689+
690+
vars.put(&quot;SessionPage&quot;,(vars.get(&quot;__jm__SessionPageLoop__idx&quot;).toInteger() + currentPageOffset).toString())
691+
692+
</stringProp>
693+
</JSR223Sampler>
694+
<hashTree/>
680695
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Sessions page">
681-
<stringProp name="HTTPSampler.path">sessions?page=${__jm__SessionPageLoop__idx}</stringProp>
696+
<stringProp name="HTTPSampler.path">sessions?page=${SessionPage}</stringProp>
682697
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
683698
<stringProp name="HTTPSampler.method">GET</stringProp>
684699
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
@@ -733,9 +748,12 @@ if(PageIDCount&gt;0){
733748
//Get each pageSessionID
734749
for(IDLoop=1;IDLoop&lt;=PageIDCount;IDLoop++){
735750
//and add it to the sessionID list
736-
sessionIDCount++;
737-
vars.put(&quot;SessionID_&quot; + sessionIDCount.toString(),vars.get(&quot;PageSessionID_&quot;+IDLoop.toString()))
738-
vars.put(&quot;SessionID_matchNr&quot;,sessionIDCount.toString());
751+
//Exclude community clinic
752+
if(vars.get(&quot;PageSessionID_&quot;+IDLoop.toString())!=&quot;nQiCIknnwF&quot;){
753+
sessionIDCount++;
754+
vars.put(&quot;SessionID_&quot; + sessionIDCount.toString(),vars.get(&quot;PageSessionID_&quot;+IDLoop.toString()))
755+
vars.put(&quot;SessionID_matchNr&quot;,sessionIDCount.toString());
756+
}
739757
}
740758
}
741759
</stringProp>
@@ -776,22 +794,22 @@ without actual network activity. This helps debugging tests.</stringProp>
776794
</JSR223PreProcessor>
777795
<hashTree/>
778796
</hashTree>
779-
<ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller">
797+
<ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller" enabled="true">
780798
<stringProp name="ForeachController.inputVal">SessionID</stringProp>
781799
<stringProp name="ForeachController.returnVal">CurrentSessionID</stringProp>
782800
<boolProp name="ForeachController.useSeparator">true</boolProp>
783801
<stringProp name="TestPlan.comments">Go through each session, but only set sessions active and download offline files if the vaccination count is still positive</stringProp>
784802
</ForeachController>
785803
<hashTree>
786-
<JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="JSR223 Sampler">
804+
<JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="JSR223 Sampler" enabled="true">
787805
<stringProp name="scriptLanguage">groovy</stringProp>
788806
<stringProp name="parameters"></stringProp>
789807
<stringProp name="filename"></stringProp>
790808
<stringProp name="cacheKey">true</stringProp>
791809
<stringProp name="script">log.info(&quot;Currently working with &quot; + vars.get(&quot;CurrentSessionID&quot;))</stringProp>
792810
</JSR223Sampler>
793811
<hashTree>
794-
<JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Set Ignore">
812+
<JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Set Ignore" enabled="true">
795813
<stringProp name="scriptLanguage">groovy</stringProp>
796814
<stringProp name="parameters"></stringProp>
797815
<stringProp name="filename"></stringProp>
@@ -800,7 +818,7 @@ without actual network activity. This helps debugging tests.</stringProp>
800818
</JSR223PostProcessor>
801819
<hashTree/>
802820
</hashTree>
803-
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Individual session">
821+
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Individual session" enabled="true">
804822
<boolProp name="HTTPSampler.image_parser">true</boolProp>
805823
<boolProp name="HTTPSampler.concurrentDwn">true</boolProp>
806824
<intProp name="HTTPSampler.concurrentPool">6</intProp>
@@ -998,12 +1016,12 @@ JSR223 Sampler: HPV
9981016
<boolProp name="displaySystemProperties">false</boolProp>
9991017
</DebugSampler>
10001018
<hashTree/>
1001-
<JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="Determine whether the session is needed">
1019+
<JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="Determine whether the session is needed" enabled="true">
10021020
<stringProp name="scriptLanguage">groovy</stringProp>
10031021
<stringProp name="parameters"></stringProp>
10041022
<stringProp name="filename"></stringProp>
10051023
<stringProp name="cacheKey">true</stringProp>
1006-
<stringProp name="script">//log.info(vars.get(&quot;Programme&quot;) + &quot;:&quot; + vars.get(&quot;ConsentCount&quot;))
1024+
<stringProp name="script">log.info(vars.get(&quot;Programme&quot;) + &quot;:&quot; + vars.get(&quot;ConsentCount&quot;))
10071025

10081026
//First check the sessions has sufficient records that have no consent
10091027
vars.put(&quot;ViableSession&quot;,&quot;False&quot;)
@@ -1034,7 +1052,7 @@ if(props.get(&quot;VaccineCount_&quot; + vars.get(&quot;Programme&quot;).toLower
10341052
</JSR223PostProcessor>
10351053
<hashTree/>
10361054
</hashTree>
1037-
<IfController guiclass="IfControllerPanel" testclass="IfController" testname="IF session is required">
1055+
<IfController guiclass="IfControllerPanel" testclass="IfController" testname="IF session is required" enabled="true">
10381056
<stringProp name="IfController.condition">${__jexl3(&quot;${ViableSession}&quot;==&quot;True&quot;)}</stringProp>
10391057
<boolProp name="IfController.evaluateAll">false</boolProp>
10401058
<boolProp name="IfController.useExpression">true</boolProp>
@@ -1048,7 +1066,7 @@ if(props.get(&quot;VaccineCount_&quot; + vars.get(&quot;Programme&quot;).toLower
10481066
</collectionProp>
10491067
</ModuleController>
10501068
<hashTree/>
1051-
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Get offline file and load into STS">
1069+
<ModuleController guiclass="ModuleControllerGui" testclass="ModuleController" testname="Get offline file and load into STS" enabled="true">
10521070
<collectionProp name="ModuleController.node_path">
10531071
<stringProp name="764597751">Test Plan</stringProp>
10541072
<stringProp name="764597751">Test Plan</stringProp>
@@ -1058,7 +1076,7 @@ if(props.get(&quot;VaccineCount_&quot; + vars.get(&quot;Programme&quot;).toLower
10581076
<hashTree/>
10591077
</hashTree>
10601078
</hashTree>
1061-
<JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="Check and alert for sufficient data">
1079+
<JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="Check and alert for sufficient data" enabled="true">
10621080
<stringProp name="scriptLanguage">groovy</stringProp>
10631081
<stringProp name="parameters"></stringProp>
10641082
<stringProp name="filename"></stringProp>
@@ -1725,7 +1743,7 @@ log.info(&quot;For thread &quot; + Threadnum.toString() + &quot; session ID is &
17251743
</elementProp>
17261744
</HTTPSamplerProxy>
17271745
<hashTree/>
1728-
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get offline file">
1746+
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get offline file" enabled="true">
17291747
<stringProp name="HTTPSampler.path">sessions/${CurrentSessionID}.xlsx</stringProp>
17301748
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
17311749
<stringProp name="HTTPSampler.method">GET</stringProp>
@@ -1736,7 +1754,7 @@ log.info(&quot;For thread &quot; + Threadnum.toString() + &quot; session ID is &
17361754
</elementProp>
17371755
</HTTPSamplerProxy>
17381756
<hashTree>
1739-
<JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="JSR223 PostProcessor">
1757+
<JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="JSR223 PostProcessor" enabled="true">
17401758
<stringProp name="scriptLanguage">groovy</stringProp>
17411759
<stringProp name="parameters"></stringProp>
17421760
<stringProp name="filename"></stringProp>
@@ -1803,7 +1821,7 @@ log.info(sessionProgramme + &quot; has &quot; + props.get(sessionProgramme) + &q
18031821
</stringProp>
18041822
</JSR223PostProcessor>
18051823
<hashTree/>
1806-
<JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Set Ignore">
1824+
<JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Set Ignore" enabled="true">
18071825
<stringProp name="cacheKey">true</stringProp>
18081826
<stringProp name="filename"></stringProp>
18091827
<stringProp name="parameters"></stringProp>
@@ -1887,7 +1905,7 @@ log.info(sessionProgramme + &quot; has &quot; + props.get(sessionProgramme) + &q
18871905
<hashTree/>
18881906
</hashTree>
18891907
</hashTree>
1890-
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get count">
1908+
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get count" enabled="true">
18911909
<stringProp name="HTTPSampler.domain">localhost</stringProp>
18921910
<stringProp name="HTTPSampler.port">9191</stringProp>
18931911
<stringProp name="HTTPSampler.protocol">http</stringProp>
@@ -4301,12 +4319,12 @@ vars.put(&quot;Authenticity_Token&quot;,vars.get(&quot;Confirm_Authenticity_Toke
43014319
<boolProp name="IfController.useExpression">false</boolProp>
43024320
</IfController>
43034321
<hashTree>
4304-
<TransactionController guiclass="TransactionControllerGui" testclass="TransactionController" testname="MEN Homepage">
4322+
<TransactionController guiclass="TransactionControllerGui" testclass="TransactionController" testname="MEN Homepage" enabled="true">
43054323
<boolProp name="TransactionController.parent">true</boolProp>
43064324
<boolProp name="TransactionController.includeTimers">false</boolProp>
43074325
</TransactionController>
43084326
<hashTree>
4309-
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="https://qa.mavistesting.com/consents/${ConsentSession_MenACWY}/menacwy-td_ipv/start">
4327+
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="https://qa.mavistesting.com/consents/${ConsentSession_MenACWY}/menacwy-td_ipv/start" enabled="true">
43104328
<boolProp name="HTTPSampler.image_parser">true</boolProp>
43114329
<boolProp name="HTTPSampler.concurrentDwn">true</boolProp>
43124330
<intProp name="HTTPSampler.concurrentPool">6</intProp>

performance-tests/entrypoint.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ if [ "$RUN_CONSENT" = true ]; then
4444
-Jjmeter.reportgenerator.sample_filter="^.*[^0-9]$" \
4545
-JAuthToken="$AUTH_TOKEN" \
4646
-JLoops=-1 \
47-
-JThreads=5 \
47+
-JThreads="$THREADS" \
4848
-JRampUp=60 \
4949
-JDuration="$DURATION" \
5050
-JUser="$USER" \

0 commit comments

Comments
 (0)