Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CQI-21: standarization of output for requests and isolation #129

Merged
merged 2 commits into from
Dec 3, 2024
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
5 changes: 5 additions & 0 deletions performance/config.yml
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
modules:
local:
sequential: true
jmeter:
properties:
base-uri: http://localhost
Expand All @@ -15,6 +17,9 @@ modules:
local:
sequential: true
reporting:
- module: console
summary: true
details: true
- module: final-stats
- module: passfail
criteria:
Expand Down
2 changes: 1 addition & 1 deletion performance/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export BASE_URL="${URL}"
docker run --rm -e BASE_URL -v $(pwd):/bzt-configs \
-v $(pwd)/../build/performance-artifacts:/tmp/artifacts \
-v $(pwd)/resources:/tmp/resources \
blazemeter/taurus:1.10.3 \
blazemeter/taurus:1.16.35 \
-o modules.jmeter.properties.base-uri="${BASE_URL}" \
-o reporting.2.dump-xml=/tmp/artifacts/stats.xml \
config.yml \
Expand Down
14 changes: 9 additions & 5 deletions performance/tests/approvedProducts.yml
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
execution:
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,1m)}
hold-for: ${__P(scenario-duration,10m)}
scenario: approved-products

scenarios:
Expand All @@ -17,6 +19,8 @@ scenarios:
Authorization: Bearer ${access_token}

reporting:
- module: passfail
criteria:
Get 1000 Approved Full Supply Products For Health Clinic too slow: p90 of Get1000ApprovedFullSupplyProductsForHealthClinic>3000ms
- module: passfail
criteria:
- 'Get1000ApprovedFullSupplyProductsForHealthClinic too high error rate: failures>1%, continue as failed, label=Get1000ApprovedFullSupplyProductsForHealthClinic, title="Get1000ApprovedFullSupplyProductsForHealthClinic error rate too high"'
- 'Get1000ApprovedFullSupplyProductsForHealthClinic is too slow: p90>5000ms, continue as failed, label=Get1000ApprovedFullSupplyProductsForHealthClinic, title="Get1000ApprovedFullSupplyProductsForHealthClinic response time too high"'
- 'Get1000ApprovedFullSupplyProductsForHealthClinic needs improvement: p90>3000ms and p90<=5000ms, continue as passed, label=Get1000ApprovedFullSupplyProductsForHealthClinic, title="Get1000ApprovedFullSupplyProductsForHealthClinic needs improvement"'
20 changes: 10 additions & 10 deletions performance/tests/approvedProductsForEssentialMedsAndDistrictHospital.yml
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
execution:
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
scenario: full-supply-approved-products
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(long-scenario-duration,60)}
scenario: non-full-supply-approved-products
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,1m)}
hold-for: ${__P(scenario-duration,10m)}
scenario: approved-products

scenarios:
full-supply-approved-products:
Expand All @@ -25,7 +24,8 @@ scenarios:
Authorization: Bearer ${access_token}

reporting:
- module: passfail
criteria:
Get 1000 Approved Full Supply Products For District Hospital too slow: p90 of Get1000ApprovedFullSupplyProductsForDistrictHospital>2500ms
Get 9000 Approved Non Full Supply Products For District Hospital too slow: p90 of Get9000ApprovedNonFullSupplyProductsForDistrictHospital>25000ms
- module: passfail
criteria:
- 'p90>3000ms, continue as failed, label=Get1000ApprovedFullSupplyProductsForHealthClinic, title="Get1000ApprovedFullSupplyProductsForHealthClinic response time too high"'
- 'p90>1500ms and p90<=3000ms, continue as passed, label=Get1000ApprovedFullSupplyProductsForHealthClinic, title="Get1000ApprovedFullSupplyProductsForHealthClinic needs improvement"'
- 'failures>1%, continue as failed, label=Get1000ApprovedFullSupplyProductsForHealthClinic, title="Get1000ApprovedFullSupplyProductsForHealthClinic error rate too high"'
135 changes: 97 additions & 38 deletions performance/tests/facilities.yml
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,40 +1,64 @@
# /api/facilities/${id}/approvedProducts endpoint is tested in another config files
execution:
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,10s)}
hold-for: ${__P(scenario-duration,10m)}
scenario: facility-create
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,10s)}
hold-for: ${__P(scenario-duration,10m)}
scenario: facilities-get-minimal-all
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,10s)}
hold-for: ${__P(scenario-duration,10m)}
scenario: facilities-get-minimal-one-page
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,10s)}
hold-for: ${__P(scenario-duration,10m)}
scenario: facilities-get-audit-log
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,10s)}
hold-for: ${__P(scenario-duration,10m)}
scenario: facility-update
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,10s)}
hold-for: ${__P(scenario-duration,10m)}
scenario: facilities-get-one
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,10s)}
hold-for: ${__P(scenario-duration,10m)}
scenario: facilities-get-by-boundary-all
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,10s)}
hold-for: ${__P(scenario-duration,10m)}
scenario: facilities-get-by-boundary-one-page
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,10s)}
hold-for: ${__P(scenario-duration,10m)}
scenario: facilities-delete-one
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,10s)}
hold-for: ${__P(scenario-duration,10m)}
scenario: facilities-get-all
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,10s)}
hold-for: ${__P(scenario-duration,10m)}
scenario: facilities-search-all
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,10s)}
hold-for: ${__P(scenario-duration,10m)}
scenario: facilities-search-one-page

scenarios:
Expand Down Expand Up @@ -294,17 +318,52 @@ scenarios:
Content-Type: application/json

reporting:
- module: passfail
criteria:
Create Facility too slow: p90 of CreateFacility>500ms
Get All Minimal Facilities too slow: p90 of GetAllMinimalFacilities>1500ms
Get First Ten Minimal Facilities too slow: p90 of GetFirstTenMinimalFacilities>500ms
Get Facility Audit Log too slow: p90 of GetFacilityAuditLog>500ms
Update Facility too slow: p90 of UpdateFacility>500ms
Get Facility too slow: p90 of GetFacility>500ms
Get All Facilities By Boundary too slow: p90 of GetAllFacilitiesByBoundary>500ms
Get First ten Facilities By Boundary too slow: p90 of GetFirstTenFacilitiesByBoundary>500ms
Delete Facility too slow: p90 of DeleteFacility>500ms
Get All Facilities too slow: p90 of GetAllFacilities>2000ms
Find All Health Center Facilities too slow: p90 of FindAllHealthCenterFacilities>2000ms
Find First Ten Health Center Facilities too slow: p90 of FindFirstTenHealthCenterFacilities>500ms
- module: passfail
criteria:
- 'p90<=2000ms, continue as passed, label=CreateFacility, title="Create Facility is successful"'
- 'p90>2000ms and p90<=3000ms, continue as passed, label=CreateFacility, title="Create Facility needs improvement"'
- 'p90>3000ms, continue as failed, label=CreateFacility, title="Create Facility is too slow"'

- 'p90<=1500ms, continue as passed, label=GetAllMinimalFacilities, title="Get All Minimal Facilities is successful"'
- 'p90>1500ms and p90<=2500ms, continue as passed, label=GetAllMinimalFacilities, title="Get All Minimal Facilities needs improvement"'
- 'p90>2500ms, continue as failed, label=GetAllMinimalFacilities, title="Get All Minimal Facilities is too slow"'

- 'p90<=1500ms, continue as passed, label=GetFirstTenMinimalFacilities, title="Get First Ten Minimal Facilities is successful"'
- 'p90>1500ms and p90<=2500ms, continue as passed, label=GetFirstTenMinimalFacilities, title="Get First Ten Minimal Facilities needs improvement"'
- 'p90>2500ms, continue as failed, label=GetFirstTenMinimalFacilities, title="Get First Ten Minimal Facilities is too slow"'

- 'p90<=3000ms, continue as passed, label=GetFacilityAuditLog, title="Get Facility Audit Log is successful"'
- 'p90>3000ms and p90<=5000ms, continue as passed, label=GetFacilityAuditLog, title="Get Facility Audit Log needs improvement"'
- 'p90>5000ms, continue as failed, label=GetFacilityAuditLog, title="Get Facility Audit Log is too slow"'

- 'p90<=2500ms, continue as passed, label=UpdateFacility, title="Update Facility is successful"'
- 'p90>2500ms and p90<=4000ms, continue as passed, label=UpdateFacility, title="Update Facility needs improvement"'
- 'p90>4000ms, continue as failed, label=UpdateFacility, title="Update Facility is too slow"'

- 'p90<=1500ms, continue as passed, label=GetFacility, title="Get Facility is successful"'
- 'p90>1500ms and p90<=2500ms, continue as passed, label=GetFacility, title="Get Facility needs improvement"'
- 'p90>2500ms, continue as failed, label=GetFacility, title="Get Facility is too slow"'

- 'p90<=3000ms, continue as passed, label=GetAllFacilitiesByBoundary, title="Get All Facilities By Boundary is successful"'
- 'p90>3000ms and p90<=5000ms, continue as passed, label=GetAllFacilitiesByBoundary, title="Get All Facilities By Boundary needs improvement"'
- 'p90>5000ms, continue as failed, label=GetAllFacilitiesByBoundary, title="Get All Facilities By Boundary is too slow"'

- 'p90<=3000ms, continue as passed, label=GetFirstTenFacilitiesByBoundary, title="Get First Ten Facilities By Boundary is successful"'
- 'p90>3000ms and p90<=5000ms, continue as passed, label=GetFirstTenFacilitiesByBoundary, title="Get First Ten Facilities By Boundary needs improvement"'
- 'p90>5000ms, continue as failed, label=GetFirstTenFacilitiesByBoundary, title="Get First Ten Facilities By Boundary is too slow"'

- 'p90<=1500ms, continue as passed, label=DeleteFacility, title="Delete Facility is successful"'
- 'p90>1500ms and p90<=2500ms, continue as passed, label=DeleteFacility, title="Delete Facility needs improvement"'
- 'p90>2500ms, continue as failed, label=DeleteFacility, title="Delete Facility is too slow"'

- 'p90<=1500ms, continue as passed, label=GetAllFacilities, title="Get All Facilities is successful"'
- 'p90>1500ms and p90<=2500ms, continue as passed, label=GetAllFacilities, title="Get All Facilities needs improvement"'
- 'p90>2500ms, continue as failed, label=GetAllFacilities, title="Get All Facilities is too slow"'

- 'p90<=1500ms, continue as passed, label=FindAllHealthCenterFacilities, title="Find All Health Center Facilities is successful"'
- 'p90>1500ms and p90<=2500ms, continue as passed, label=FindAllHealthCenterFacilities, title="Find All Health Center Facilities needs improvement"'
- 'p90>2500ms, continue as failed, label=FindAllHealthCenterFacilities, title="Find All Health Center Facilities is too slow"'

- 'p90<=1500ms, continue as passed, label=FindFirstTenHealthCenterFacilities, title="Find First Ten Health Center Facilities is successful"'
- 'p90>1500ms and p90<=2500ms, continue as passed, label=FindFirstTenHealthCenterFacilities, title="Find First Ten Health Center Facilities needs improvement"'
- 'p90>2500ms, continue as failed, label=FindFirstTenHealthCenterFacilities, title="Find First Ten Health Center Facilities is too slow"'
14 changes: 9 additions & 5 deletions performance/tests/facilityTypeApprovedProducts.yml
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
execution:
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,1m)}
hold-for: ${__P(scenario-duration,10m)}
scenario: ftaps-get-first-10

scenarios:
Expand All @@ -15,6 +17,8 @@ scenarios:
Content-Type: application/json

reporting:
- module: passfail
criteria:
90% of get facility type approved products page of ten fail to get in 100ms milliseconds: p90 of GetAFacilityTypeApprovedProductsPageOfTen>500ms, continue as failed
- module: passfail
criteria:
- 'GetAFacilityTypeApprovedProductsPageOfTen too high error rate: failures>1%, continue as failed, label=GetAFacilityTypeApprovedProductsPageOfTen, title="GetAFacilityTypeApprovedProductsPageOfTen error rate too high"'
- 'GetAFacilityTypeApprovedProductsPageOfTen is too slow: p90>2500ms, stop as failed, label=GetAFacilityTypeApprovedProductsPageOfTen, title="GetAFacilityTypeApprovedProductsPageOfTen response time too high"'
- 'GetAFacilityTypeApprovedProductsPageOfTen needs improvement: p90>1500ms and p90<=2500ms, continue as passed, label=GetAFacilityTypeApprovedProductsPageOfTen, title="GetAFacilityTypeApprovedProductsPageOfTen needs improvement"'
17 changes: 12 additions & 5 deletions performance/tests/facilityUpdateAsync.yml
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
execution:
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,1m)}
hold-for: ${__P(scenario-duration,10m)}
scenario: facility-update-async

scenarios:
Expand Down Expand Up @@ -38,6 +40,11 @@ scenarios:
body: ${facility}

reporting:
- module: passfail
criteria:
Update Facility too slow: p90 of UpdateFacilityAsync>500ms
- module: passfail
criteria:
- 'UpdateFacilityAsync too high error rate: failures>1%, continue as failed, label=UpdateFacilityAsync, title="UpdateFacilityAsync error rate too high"'
- 'UpdateFacilityAsync is too slow: p90>4000ms, stop as failed, label=UpdateFacilityAsync, title="UpdateFacilityAsync response time too high"'
- 'UpdateFacilityAsync needs improvement: p90>2500ms and p90<=4000ms, continue as passed, label=UpdateFacilityAsync, title="UpdateFacilityAsync needs improvement"'
- 'GetGivenFacility too high error rate: failures>1%, continue as failed, label=GetGivenFacility, title="GetGivenFacility error rate too high"'
- 'GetGivenFacility is too slow: p90>2500ms, stop as failed, label=GetGivenFacility, title="GetGivenFacility response time too high"'
- 'GetGivenFacility needs improvement: p90>1500ms and p90<=2500ms, continue as passed, label=GetGivenFacility, title="GetGivenFacility needs improvement"'
30 changes: 21 additions & 9 deletions performance/tests/idealStockAmounts.yml
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,12 +1,18 @@
execution:
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,1m)}
hold-for: ${__P(scenario-duration,10m)}
scenario: download-ideal-stock-amounts-csv
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,1m)}
hold-for: ${__P(scenario-duration,10m)}
scenario: get-ideal-stock-amounts
- concurrency: ${__P(scenario-concurrency,1)}
hold-for: ${__P(scenario-duration,60)}
- concurrency: ${__P(scenario-concurrency,10)}
iterations: ${__P(scenario-iterations,10)}
ramp-up: ${__P(scenario-ramp-up,1m)}
hold-for: ${__P(scenario-duration,10m)}
scenario: upload-ideal-stock-amounts-csv

scenarios:
Expand Down Expand Up @@ -50,6 +56,12 @@ scenarios:
reporting:
- module: passfail
criteria:
Download Ideal Stock Amounts too slow: p90 of GetAnIdealStockAmountCSV>1100ms
Get Ideal Stock Amounts too slow: p90 of GetIdealStockAmounts>500ms
Upload Ideal Stock Amounts too slow: p90 of UploadIdealStockAmounts>3000ms
- 'GetAnIdealStockAmountCSV too high error rate: failures>1%, continue as failed, label=GetAnIdealStockAmountCSV, title="GetAnIdealStockAmountCSV error rate too high"'
- 'GetAnIdealStockAmountCSV is too slow: p90>2500ms, stop as failed, label=GetAnIdealStockAmountCSV, title="GetAnIdealStockAmountCSV response time too high"'
- 'GetAnIdealStockAmountCSV needs improvement: p90>1500ms and p90<=2500ms, continue as passed, label=GetAnIdealStockAmountCSV, title="GetAnIdealStockAmountCSV needs improvement"'
- 'GetIdealStockAmounts too high error rate: failures>1%, continue as failed, label=GetIdealStockAmounts, title="GetIdealStockAmounts error rate too high"'
- 'GetIdealStockAmounts is too slow: p90>2500ms, stop as failed, label=GetIdealStockAmounts, title="GetIdealStockAmounts response time too high"'
- 'GetIdealStockAmounts needs improvement: p90>1500ms and p90<=2500ms, continue as passed, label=GetIdealStockAmounts, title="GetIdealStockAmounts needs improvement"'
- 'UploadIdealStockAmounts too high error rate: failures>1%, continue as failed, label=UploadIdealStockAmounts, title="UploadIdealStockAmounts error rate too high"'
- 'UploadIdealStockAmounts is too slow: p90>4000ms, stop as failed, label=UploadIdealStockAmounts, title="UploadIdealStockAmounts response time too high"'
- 'UploadIdealStockAmounts needs improvement: p90>3000ms and p90<=4000ms, continue as passed, label=UploadIdealStockAmounts, title="UploadIdealStockAmounts needs improvement"'
Loading
Loading