Archived Performance Metrics

Please do not update this page. This page has been archived so that this historical information can be reviewed as required but future updates should be make to the Performance Metrics page.

Work in Progress

This page is a working page to collect test results from manual UI Performance testing. This is being used around the 3.2.1 and 3.3.0 releases to help measure our results improving performance and identify which areas to prioritize for further work. Previous versions of this page have other draft ideas/data. In the future, this kind of testing may be tracked in Zephyr and/or may be automated.

Profiled Performance Data

What is this data?

Each of the tests shows the time it takes an end-user to complete a user story. We do this testing with bandwidth and CPU throttled and with a large sample data set to simulate real-world data and connectivity. Each story is run with a different type of performant user, identified at the top in the column headers. Each column is a different test run.

Each row is a different step in the user story. Each cell captures the the time it takes a person while waiting for the OpenLMIS system to respond. Currently these times are made with a stopwatch, so they are not 100% accurate. Time spent typing or filling in forms or data is not included in the performance time; we only measure the time spent waiting for OpenLMIS to respond. Some cells include a list of API calls involved or a list of downloads, along with the wait times or data transfer sizes for each.

Data Volume

  • Brandon Bowersox-Johnson to capture counts of how many data elements this testing has been conducted with (# of non-full-supply products, # of full-supply products, # of facilities, etc, as suggested in  OLMIS-4274 - Getting issue details... STATUS )

Speed Improvements from Oct 2017 to 3.2.1

We tested in October 2017 (blue) and again at 3.2.1-RC1 (green). The chart below show significant improvements in those loading times.

As illustrated above, the most significant speed improvements were in these areas:

  • Convert to Order is the biggest area of improvement:  OLMIS-3318 - Getting issue details... STATUS and OLMIS-3320 - Getting issue details... STATUS .
  • Requisition Approve is significantly faster: OLMIS-3346 - Getting issue details... STATUS .
  • Requisition Initiate is faster:  OLMIS-3332 - Getting issue details... STATUS and OLMIS-3322 - Getting issue details... STATUS .
  • Requisition Submit and Authorize are also faster (improved by those other tickets).
  • Batch Approve is finally an official working version that performs better scrolling through large numbers of products.

See the entire epic of 3.2.1 performance tickets.

UI File Size

The UI file size influences a user's initial download time. We captured past sizes so we can continue monitoring and optimizing this.

Work in Progress

These charts are not yet updated with comparisons to 3.2.1-RC1.

 


How do I record more test runs?

Setting up for a test run:

  • Add a column into this table to record your results. In the top column header, add your name, which performant user, which version of OpenLMIS you are testing, and the date you are testing.
  • Use Chrome, open Dev Tools, and in the Performance tab set a Network and CPU throttle. Record what level of throttling in the column header.
  • In Chrome, open Task Manager to see the memory size of each browser window.
  • Clear your browser cache so your times will measure the initial downloads.

What to record during testing:

  • As you begin each step/row in the table, reset your stopwatch timer to zero. Fill out the form or get ready to click. When you are ready to click/submit data, start your stopwatch timer at the instant you click. OpenLMIS will spin for a while, maybe many minutes. As soon as OpenLMIS is done loading and becomes responsive/usable again, stop your stopwatch and record the time.
  • If this step was a long wait, you may want to list each API call or download along with the times and data sizes for each.


Story3.2.1-SNAPSHOT early October 2017




3.2.1-SNAPSHOT
30 Oct 2017
3.2.1-SNAPSHOT
31 Oct 2017
3.2.1-SNAPSHOT
1 Nov 2017
3.2.1-RC1
3 Nov 2017
3.3.0-SNAPSHOT
13 March 2018

3.3.0-SNAPSHOT
21 March 2018

3.3.0-SNAPSHOT

21 March 2018

3.3.0-SNAPSHOT
21 March 2018


nick

Typical performant user

dhitale account on MW UAT server "slow 3g" "processor throttle 6x"


nick

"slow 3g" "processor throttle 6x"

(same server and user)

brandon

"slow 3g" "processor throttle 6x"

(same server and user)

brandon

(same throttling, same server and same user)

josh

(same throttling, same server and same user)

chongsun

(same throttling, same server and same user)

brandon

(same throttling)

dhitale account on perftest.openlmis.org

brandon

(same throttling)

dhitale account on perftest.openlmis.org

brandon

(same throttling)

dhitale account on perftest.openlmis.org

brandon

(same throttling)

dhitale account on perftest.openlmis.org

brandon

(same throttling)

PerfTest Data Set – Not MW Data Set! Used "srmanager2" account on perftest.openlmis.org

chongsun

(same throttling)

dhitale account on perftest.openlmis.org


NOTE: this was on "cold startup"

chongsun

(same throttling)

dhitale account on perftest.openlmis.org

brandon

network "slow 3g" CPU "6x slowdown"

dhitale account on perftest.openlmis.org

(using MW data)


Application Start Up
This reflects a person downloading OpenLMIS in a browser for the first time and logging in
Initial UI load

17.13s

At end: 368mb

  • index.html: 2.01s (1.1kb)
  • openlmis.css 4.25s (57kb)
  • openlmis.js 11.92s (439kb)


22.38s

Memory use of this browser tab before launching OpenLMIS: ~199MB

Memory use at end: ~204MB

  • index.html: 0.91s (2.0kb)
  • openlmis.css 4.07s (57kb)
  • openlmis.js 11.92s (439kb)
  • (After that, a few more requests for logo SVG, Google Analytics, favicons and font-awesome webfont)


22.85s

Memory use at end: ~222MB

  • index.html
  • openlmis.css
  • openlmis.js 15.34s (509KB)
  • and others still similar





27s

Memory use at end: ~211MB

  • index.html
  • openlmis.css
  • openlmis.js 17s (559KB)
  • and others still similar

22s

  • index.html (GET /)
  • openlmis.css
  • openlmis.js 16s (600KB)
  • and others still similar

4s

Memory use: 257MB

4s

21s

Memory use: 243MB

  • index.html (GET /)
  • openlmis.css
  • openlmis.js 16s (602KB)
  • and others still similar

Login
End of time is when CPU usage drops

207.68s
Mem spike: 4.1gb
At end: 2.6gb

15 calls to supervised facilities

26s

At end: 438mb

83.54s
Memory spike: ~600MB
At end: ~300MB

~15 calls to supervisedFacilities

25.35s

Lots of API calls including:

  • token?
  • users/ID
  • roleAssignments
  • users/ID (again)
  • programs?forHomeFacility=true
  • programs?forHomeFacility=false
  • currencySettings
  • PNGs and SVGs
  • GET facility/ID
  • ~15 supervisedFacilities?
  • GET facilities/minimal


18.35s

Memory use at end: ~250MB

Fewer API calls than previous versions (~15 calls to supervisedFacilities is gone!)

  • token?
  • GET currencySettings
  • GET facilities/minimal
  • GET users/ID
  • GET users/ID/permissionStrings
  • GET users/ID/programs
  • PNGs and SVGs





26s

Memory use at end: ~231MB

  • token?
  • GET currencySettings
  • GET facilities/minimal
  • GET users/ID
  • GET users/ID/permissionStrings
  • GET users/ID/programs
  • PNGs and SVGs

22s

Memory use at end: 252MB

  • same as before

17s

Memory: 297MB

  • token
  • permissionStrings
  • programs
  • users/ID
  • currencySettings
  • facilities/minimal

14s

Same API calls

19s

Memory use at end: 251MB

  • POST token
  • GET users/ID/permissionStrings
  • GET users/ID/programs
  • GET users/ID
  • GET currencySettings
  • GET facilities/minimal
  • 1 PNG and 1 SVG

Total225s

48s

41s




53s
44s21s18s40s
Initiate Requisition

TB program
TB programEssential Meds programEssential Meds at Chiwamba HC
Essential Meds program at Lilongwe DHO Pharmacy


Essential Meds program (271 products)TB program (15 products)Essential Meds program (271 products)TB program (15 products)

Essential Meds program (~9000 products)

Not same MW test data as other tests → 

Essential Meds program at Lilongwe DHO Pharmacy (267 products)


Essential Meds program at Lilongwe DHO Pharmacy (267 products)

Essential Meds program (271 products) 

at Lilongwe DHO Pharmacy

TB program (15 products)
Navigate to Requisitions > Create/Authorize

immediate

Memory use at end: ~260MB

immediate

Memory use later: ~352MB

Immediate

Memory use: 363MB


Immediate

Memory use: 254MB




Immediate

Memory use: 285MB

Immediate

Immediate

Memory use: 249MB


Immediate

Memory use: 253MB

immediate

Memory: 299MB

immediate

immediate

Memory: 254MB

immediate

Memory: 259MB

Select Facility and Program, Regular type & Click 'Search'29.83

17.49s

  • periodsForInitiate?: 4.60s (0.84kb)
  • search: 15.00s (9.5kb)

16.99s

  • periodsForInitiate?: 4.88s (0.88kb)
  • search: 15.25s (10kb)

Memory use at end: ~305MB

17.83s

  • periodsForInitiate: 4.63s (TTFB: 4.63s) (0.794kb)
  • search: 15.08s (TTFB: 14.9s) (9.6kb)


Memory at end: 288 mb


8s

  • periodsForInitiate: 2.03s
  • requisitions/search: 5.28s

Memory use at end: 270MB




8s

  • periodsForInitiate: 2.02s
  • requisitions/search: 5.70s

Memory use at end: 290MB

6s

  • periodsForInitiate: 2.02s
  • requisitions/search: 3.83s

8s

  • periodsForInitiate: 2s
  • requisitions/search: 6s


16s (when server was totally cold after re-deploying)

7s

  • periodsForInitiate: 2s
  • requisitions/search: 5s

Memory use at end: 237MB

33s

Huge CPU spike! PeriodsForInitiate returns 13,000+ lines of JSON and the UI table displays ~1000 periods.

  • periodsForInitiate: 5s (60KB)
  • requisitions/search: 2s

Memory use at end: 611MB

38s

  • periodsForInitiate: 15s
  • requisitions/search: 38s

Memory use: 308MB

6s

  • periodsForInitiate: 2s
  • requisitions/search: 5s

4s

  • periodsForInitiate: 2s
  • requisitions/search: 4s

Memory: 260MB

4s

  • periodsForInitiate: 2s
  • requisitions/search: 3s

Memory: 260MB

Click Proceed for latest 'Not yet started' period12:08.01

53.53s

Memory use at end: ~303MB

  • hasRight: 2.01s
  • POST initiate: 37.99s (99% in TTFB)
  • GET requisitions/ID: 7.90s (6.4kb)
  • GET statusMessages: 2.02s

117.32s

Memory use at end: ~364MB

  • hasRight: 2.03s
  • POST initiate: ~84s (66s in TTFB then 16s in download)
  • GET requisitions/ID: 25.78s (23s in TTFB then 3s in download)
  • GET statusMessages (? did not get called?)

59.92s

  • GET hasRight: 2.02s (0.460kb)
  • POST initiate: 26.44s (TTFB 14.21) (610 kb)
  • GET requisitions/ID: 16.96s (TTFB 15.58) (70.1kb)
  • GET statusMessages: 2.01s (0.395kb)

Memory at end: 398mb


79s

  • (no more GET hasRight)
  • POST initiate: 69s (TTFB 53s) (810kb)
  • (no other calls to GET requisitions/ID or statusMessages)

Memory use at end: 313MB




44s (when service is warm)

  • POST initiate: 33s (TTFB 17s, download is 16s) (809kb)


124s (when service is cold)

  • POST initiate: 69s (TTFB 100s, download is 16s) (811kb)

18s

  • POST initiate: 8.07s (TTFB 7s, download is 600ms) (33kb)

45s

  • POST initiate: 33s (TTFB 17s, download is 16s) (809kb)


51s (first time I initiated for this program; maybe DB-level caching was colder?)

  • POST initiate: 40s (TTFB 23s, download is 16s) (809kb)

12s

  • POST initiate: 3s (TTFB 2s, download is 600ms) (33kb)

18s (when server was cold)

  • POST initiate: 9s  (when server was cold)

180s

  • POST initiate: (TTFB 30s, download is 150s) (6.8MB)

Huge delay! Requisition data is 210,000+ lines of JSON; roughly 9000 products.

May have crashed server. Further requests to ReferenceData get a 500 NGINX error.

184s for one that is initiated (possible "cold startup" of server)

154s (possible "cold startup" of first initiate)

27s when done again

  • POST initiate: (TTFB 8s, download is 18s) (900KB)

ERROR

"message" : "An error occurred when contacting the Reference Data service. For more information see logs or contact system administrator."

OLMIS-4368

ERROR

"message" : "Fulfillment service is not found. OpenLMIS Fulfillment service is required by this version of Requisition service."

OLMIS-4380

Total12:37.84
~70s~134s77.78s
87s


52s - 132s24s53s19s213s222s

160s

33s when run again



Sync Requisition

TB program
TB program Essential Meds program

Essential Meds program




Essential Meds program (271 products)TB program (15 products)

Essential Meds program (~9000 products)

Not same MW test data as other tests →

Essential Meds programEssential Meds program at Lilongwe DHO Pharmacy (267 products)

Press "Sync with Server"~ 25.46

16.80s

(requisition has 15 line items)

  • PUT requisitions/ID: 7.22s (38kb upload and 7kb download)
  • GET requisitions/ID: 5.32s (7kb download)
  • GET statusMessages: 2.02s

74.52s

(requisition has 271 line items)

  • PUT requisitions/ID: 43.44s (802kb upload and 97kb download; 15s sending request then 26s TTFB, then 1.94s download)
  • GET requisitions/ID: 25.62s (97kb download; 22s in TTFB, 3s in download)
  • GET statusMessages: 2.02s


63s

(requisition has 271 line items)

  • PUT requisitions/ID: 31s (802kb upload and 99kb download)
  • GET requisitions/ID: 14s (99kb)
  • GET statusMessages: 2s





53s

  • PUT requisitions/ID: 31s (820kb upload, 97kb download)
  • GET requisitions/ID: 14s
  • GET statusMessages: 2s

(I notice that data entry within the Requistion form is laggy/delayed when typing and tabbing, whether or not the CPU throttle is on; there is even a delay from the time I click Previous or Next to the time it switches pages)

13s

  • PUT requisitions/ID: 3s (6kb upload, 7kb download)
  • GET requisitions/ID: 2s
  • GET statusMessages: 2s

ERROR! Server crashed temporarily, or somehow it cannot Sync this requisition:

Same error blocks Submit or Authorize on that requisition.

67s

  • PUT requisitions/ID: 45s (850kb upload, ?kb download)
  • GET requisitions/ID: 18s
  • GET statusMessages: 2s

64s

  • PUT requisitions/ID: 44s (850kb upload, 100kb download)
  • GET requisitions/ID: 16s
  • GET statusMessages: 2s


Total~ 25.46
16.80s74.52s

63s




53s13s
67s64s

Submit Requisition

TB program
TB program Essential Meds program

Essential Meds program




Essential Meds program (271 products)TB program (15 products)

Not same MW test data as other tests →

Essential Meds program (267 products)Essential Meds program at Lilongwe DHO Pharmacy (267 products)

Press "Submit" (opens modal)1.81
~immediate~immediate

~immediate




~immediate~immediate~immediate~immediateimmediate

Confirm Submit in modal

34.91s

NOTE: 3 API calls here

  • submit: 4.90s
  • periods for initiate: 6.18s
  • requisitions/search: 18.47s

30.62s

  • PUT requisitions/ID: 6.60s (38kb upload and 7kb download)
  • POST requisitions/ID/submit: 4.86s
  • GET periodsForInitiate: 4.15s
  • GET requisitions/search: 15.31s

68.09s

  • PUT requisitions/ID: 42.64s (810kb upload and 96kb download; 16s sending request, 23s TTFB, 3s download)
  • POST requisitions/ID/submit: 5.60s
  • GET periodsForInitiate: 4.28s
  • GET requisitions/search: 14.70s


42s

  • PUT requisitions/ID: 31s (827kb upload and 99kb download)
  • POST requisitions/ID/submit: 2.55s
  • GET periodsForInitiate: 2s
  • GET requisitions/search: 3.55s

(same API calls as previously)

Memory use at end: 472MB






43s

  • PUT requisitions/ID: 30s (802kb upload and 97kb download)
  • POST requisitions/ID/submit: 2s
  • GET periodsForInitiate: 2s
  • GET requisitions/search: 3s

10s

  • PUT requisitions/ID: 3s (38kb upload and 7kb download)
  • POST requisitions/ID/submit: 2s
  • GET periodsForInitiate: 2s
  • GET requisitions/search: 3s

54s

  • PUT requisitions/ID: 44s (850kb upload and ?kb download)
  • POST requisitions/ID/submit: 4s
  • GET periodsForInitiate: 2s
  • GET requisitions/search: 5s

44s

  • PUT requisitions/ID: 37s (850kb upload and 100kb download)
  • POST requisitions/ID/submit: 2s
  • GET periodsForInitiate: 2s
  • GET requisitions/search: 4s


Total36.72
~30s~68s

42s




43s10s
54s44s

Authorize Requisition



TB ProgramEssential Meds program

Essential Meds program




Essential Meds program (271 products)TB program (15 products)

Family Planning program (~24 products)

Using 'administrator' account now.

Not same MW test data as other tests →

Essential Meds program (267 products)Essential Meds program at Lilongwe DHO Pharmacy (267 products)

Navigate to Requisitions > Create/Authorize

~1simmediate

immediate





immediateimmediateimmediate


Select Program at My Facility with Type Regular and click Search

54.56s

NOTE: 2 API calls here

  • periods for initiate: 21.24s
  • requisitions/search: 50.09s

15s



6s

(same 2 API calls here as previously)






5s

  • periods for initiate: 2s
  • requisitions/search: 3s

5s

  • periods for initiate: 2s
  • requisitions/search: 3s

NOTE: 2 API calls here, which run in parallel


5s

  • periods for initiate: 2s
  • requisitions/search: 5s

3s

  • periods for initiate: 2s
  • requisitions/search: 3s


Click Proceed for 'Submitted' requisition

30.53s

NOTE: 2 API calls here

  • requisitions/ID: 17.01s
  • statusMessages: 2.01s

Note: changing pages on the R&R form is really slow (~10 seconds).

29.76s

  • GET requisitions/ID: 26.19s
  • GET statusMessages: 2.01s


32s

(same 2 API calls here as previously)






31s


15s

  • GET requisitions/ID: 2s
  • GET statusMessages: 2s

(Note: all the API calls are done 4 seconds in, but it takes another 10-11 seconds for CPU for browser to display the form)


21s

  • GET requisitions/ID: 17s
  • GET statusMessages: 2s

21s

  • GET requisitions/ID: 17s
  • GET statusMessages: 2s


Click 'Authorize' (opens modal)

immediateimmediate

immediate




immediateimmediate
immediateimmediate

Click 'Authorize' in modal

87.00s

NOTE: 4 API calls here

  • PUT requisitions/ID: 18.15s
  • POST authorize: 18.11s
  • In Parallel:
    • periods for initiate: 20.85s
    • search: 47.74s

92.00s

  • PUT requisitions/ID: 42s
  • POST authorize: 29s
  • GET periodsForInitiate: 4s
  • GET search: 15s


51s

(same 4 API calls here as previously)






51s

  • PUT requisitions/ID: 30s
  • POST authorize: 12s
  • GET periodsForInitiate: 3s
  • GET search: 4s

11s

  • PUT requisitions/ID: 3s
  • POST authorize: 2s
  • GET periodsForInitiate: 2s
  • GET search: 3s

61s

  • PUT requisitions/ID: 38s
  • POST authorize: 16s
  • GET periodsForInitiate: 2s
  • GET search: 6s

54s

  • PUT requisitions/ID: 36s
  • POST authorize: 14s
  • GET periodsForInitiate: 2s
  • GET search: 3s


Total

~171s~137s

89s




87s31s
87s78s

Approve Requisition (Single)



Used Malaria Program (no TB Requisitions found!?)

Malaria programEssential Meds programMalaria programEssential Meds programMalaria program

Essential Meds program (271 products)Malaria program
Essential Meds program (267 products)Essential Meds program at Lilongwe DHO Pharmacy (267 products)

Navigate to Requisitions > Approve

16.11s

3 API calls:

  • requisitionsForApproval: 13.14s
  • programs?forHomeFacility=true: 6.43s
  • programs?forHomeFacility=false: 6.46s


45.09s

3 API calls:

  • requisitionsForApproval: 41.07s
  • programs?forHomeFacility=true: 2.01s
  • programs?forHomeFacility=false: 2.04s

Filter by Malaria program and search

8.45s

3 API calls:

  • requisitionsForApproval: 4.17s
  • programs?forHomeFacility=true: 2.02s
  • programs?forHomeFacility=false: 2.07s

Second full run: ~10s

5s

(ditto)


5s

Faster and Fewer API calls than previous versions (calls to programs are gone!)

  • requisitionsForApproval: 2.04s

4s

  • requisitionsForApproval: 2.04s



4s

  • requisitionsForApproval: 2s

7s

  • requisitionsForApproval: 2s

18s

  • requisitionsForApproval: 17s

2s

  • requisitionsForApproval: 2s


Filter by Program and click 'Search'





Filter by Essential Meds and search

6s

  • requisitionsForApproval: 2.05s

Filter by Malaria program and search

5s

  • requisitionsForApproval: 2.05s

Filter by Essential Meds and search

5s

  • requisitionsForApproval: 2.04s



8s

  • requisitionsForApproval: 2s

(showing 10 items out of 31 total for this program)

4s

  • requisitionsForApproval: 2s

(showing 10 items out of 62 total for this program)


3s

  • requisitionsForApproval: 2s

10 out of 31 total

3s

  • requisitionsForApproval: 2s

10 out of 31 total



Select 1 and click 'View Requisition'

26.77s

Memory at end: ~370MB

2 API calls:

  • requisitions/ID: 18.36s
  • statusMessages: 2.01s


Timed out on GET /requisitions/id after 15 minutes

Second time

16.09s

2 API calls:

  • requisitions/ID: 5.57s
  • statusMessages: 2.03s

Second full run: ~15s

22s

  • requisitions/ID: 9s
  • statusMessages: 2s

12s

  • requisitions/ID: 2s
  • statusMessages: 2s


Memory use at end: 481MB

23s

  • GET requisitions/ID: 9s
  • statusMessages: 2s

(Note: this whole step runs in 8 seconds if CPU is not throttled and network is still throttled to "slow 3g")




16s

  • GET requisitions/ID: 3s
  • statusMessages: 2s


Memory use: 3.9GB (not sure where between the time above and now the memory started spiking!)

13s

  • GET requisitions/ID: 2s
  • statusMessages: 2s

20s

  • GET requisitions/ID: 17s
  • statusMessages: 2s

20s

  • GET requisitions/ID: 17s
  • statusMessages: 2s


Click 'Approve' (opens modal)

immediate

immediateimmediateimmediateimmediateimmediate

immediateimmediate
immediateimmediate

Click 'Approve' in modal

66.15s

Memory at end: ~334MB

5 API calls:

  • PUT requisitions/ID: 16.27s
  • POST approve: 38.61s
  • requisitionsForApproval: 7.11s
  • programs?forHomeFacility=true: 2.62s
  • programs?forHomeFacility=false: 2.78s


39.13s

No large change in memory

5 API calls:

  • PUT requisitions/ID: 9.12s
  • POST approve: 22.30s
  • requisitionsForApproval: 3.03s
  • programs?forHomeFacility=true: 2.03s
  • programs?forHomeFacility=false: 2.15s

Second full run: ~29s (with ~15s done by POST approve and ~6s by PUT requisitions/id)

31s

(Reduced to 3 API calls; calls to /programs are gone!)

  • PUT requisitions/ID: 21s
  • POST approve: 2.45s
  • requisitionsForApproval: 2.04s

12s

Memory use at end: 497MB

(ditto!)

  • PUT requisitions/ID: 2s
  • POST approve: 3.43s
  • requisitionsForApproval: 2.06s

15s

  • PUT requisitions/ID: 4.71s
  • POST approve: 2.79s
  • requisitionsForApproval: 2.04s


(Note: this whole step runs in 10.43 seconds if CPU is not throttled and network is still throttled to "slow 3g". In that scenario, the API calls take the same time as shown here, but there is less time delay between each API call.)

16.73s

  • PUT requisitions/ID: 7s
  • POST approve: 3s
  • requisitionsForApproval: 2s


-----

11s

  • PUT requisitions/ID: 3s
  • POST approve: 3s
  • requisitionsForApproval: 2s


19s

  • PUT requisitions/ID: 4s
  • POST approve: 2s
  • requisitionsForApproval: 2s

11s

  • PUT requisitions/ID: 3s
  • POST approve: 3s
  • requisitionsForApproval: 2s

55s

  • PUT requisitions/ID: 37s
  • POST approve: 15s
  • requisitionsForApproval: 2s

48s

  • PUT requisitions/ID: 36s
  • POST approve: 9s
  • requisitionsForApproval: 2s








OLMIS-3346 - Getting issue details... STATUS

OLMIS-3362 - Getting issue details... STATUS (will save a few seconds here and there)


more we can improve:

OLMIS-3474 - Getting issue details... STATUS












Total











47s35s
96s73s

Batch Approve Requisition



Used Malaria Program (no TB Requisitions found!?)


Essential Meds program

(~150 products x 10 requisitions)

Malaria program

(16 products x 10 requisitions)





Essential Meds program (271 products)Malaria program
Essential Meds programMalaria program

Navigate to Requisitions > Approve

12.15s

(same API calls above)



6.75s

3 API calls:

  • requisitionsForApproval: 3.18s
  • programs?forHomeFacility=true: 2.01s
  • programs?forHomeFacility=false: 2.05s

Second full run: ~6s

5s

As above, Faster and Fewer API calls than previous versions (calls to programs are gone!)

  • requisitionsForApproval: 2.05s

6s

As above, Faster and Fewer API calls than previous versions (calls to programs are gone!)

  • requisitionsForApproval: 2.06s




5s

  • requisitionsForApproval: 2s

5s

  • requisitionsForApproval: 2s

3s

  • requisitionsForApproval: 2s

3s

  • requisitionsForApproval: 2s


Select Program and click Search

18.95s

(same 3 API calls again)



7.18s

3 API calls:

  • requisitionsForApproval: 2.99s
  • programs?forHomeFacility=true: 2.02s
  • programs?forHomeFacility=false: 2.07s

Second full run: ~6s

5s

  • requisitionsForApproval: 2.39s

6s

  • requisitionsForApproval: 2.05s




5s

  • requisitionsForApproval: 2s

(showing 10 results out of 30)

5s

  • requisitionsForApproval: 2s

(showing 10 results out of 61)


3s

  • requisitionsForApproval: 2s

3s

  • requisitionsForApproval: 2s


Select All 10 requisitions and click 'View Selected Requisitions'

150.40s

Memory at end: ~401MB

  • requisitions?retrieveAll: ~130s


63.40s

Memory at end: ~413MB

  • requisitions?retrieveAll: ~49s

Second full run: ~61s (with retrieveAll ~46s)

212s

Memory at end: ~784MB
(memory was around 850MB tops during loading)

Note: Page scroll is herky-jerky because the browser is overwhelmed by all the table cells.

  • requisitions?retrieveAll: 3.57s

(Note: if I turn off CPU throttling, the page takes about 32 seconds total)

21s

Memory at end: ~557MB

  • requisitions?retrieveAll: 2.15s

(Note: if I turn off CPU throttling, the page takes about 5 seconds total; only 2 seconds is the Network time; the big delay here is the layout)





20s

  • requisitions?retrieveAll: 4s

(Again, most of the time is CPU in browser)

21s

  • requisitions?retrieveAll: 2s

5s

  • requisitions?retrieveAll: 4s

3s

  • requisitions?retrieveAll: 2s


Click 'Approve' (open modal)

immediate

immediateimmediateimmediate



5s

(no API calls)

5s

(no API calls)


immediateimmediate

Click 'OK' in modal

161.26s

Got "10 errors" and did not approve them.



144.18s

Got errors and did not approve.

Memory at end: ~460MB

  • requisitions?saveAll: ~80s
  • requisitions?approveAll: 2.04s
  • requisitions?retrieveAll: 46.30s

Second full run: ~195s (with similar ratios on the APIs)

142s

Memory at end: ~763MB

  • PUT requisitions?saveAll: 52s
  • POST requisitions?approveAll: 46s (this one did succeed)
  • GET requisitions?retrieveAll: 4.19s

Got errors and did not approve.

Memory at end: ~562MB

  • PUT requisitions?saveAll: ~20s
  • POST requisitions?approveAll: 2s (but it seems like it did not work)
  • GET requisitions?retrieveAll: 2s





115s

  • PUT requisitions?saveAll: 57s (TTFB 50s!)
  • POST requisitions?approveAll: 49s (TTFB 47s!) (it succeeded!)
  • GET requisitionsForApproval: 2s

Got errors and did not approve.

Error message: There were 10 errors. It's not clear what is wrong or how to fix it.


206s

  • PUT requisitions?saveAll: 85s (TTFB 84s!)
  • POST requisitions?approveAll: 120s (TTFB 117s!)
  • GET requisitionsForApproval: 2s

Got errors and did not approve.

Error message: There were 10 errors. It's not clear what is wrong or how to fix it.









OLMIS-3351 - Getting issue details... STATUS

OLMIS-3352 - Getting issue details... STATUS

OLMIS-3363 - Getting issue details... STATUS














Total











150s

217s


Convert to Order



Used 'superuser' user account and Essential Meds program

Memory after login: ~289MB


same

Memory after login: ~281MB


Used 'superuser' user account and Essential Meds program




Used 'superuser' user account and Essential Meds program

Used 'superuser' user account and Essential Meds programUsed 'superuser' user account and Essential Meds program

Navigate to Requisitions > Convert to Order

254.74s (4+ minutes to show a list of 9 Essential Meds requisitions)

  • requisitionsForConvert?page=0&size=10: 254.74s 

88.3s (8 ess meds programs), 256MB

  • requisitionsForConvert?filterBy=all&filterValue=&page=0&size=10: 84s (56ms network)


2nd run: all roughly the same, mem at 276mb


7s (8 essential meds requisitions), 3.4KB

(This appears to be a much smaller representation that loads much faster!)

  • requisitionsForConvert?filterBy: 2.90s



4.32s (when 0 requisitions to convert)






3s

  • requisitionsForConvert?filterBy: 2.5s

(10 showing out of 11 requisitions ready to convert)



6s

  • requisitionsForConvert?filterBy: 6s

1 out of 1 requisitions ready to convert

6s

  • requisitionsForConvert?filterBy: 2.5s

10 out of 11 requisitions ready to convert



Select 1, Select a Warehouse, and click 'Convert to Order' (open modal)

immediate

Memory at end: ~276MB


immediate

Memory at end: 277MB


4s




2s

immediateimmediate

Click 'OK' in modal

307.52s (5+ minutes to convert 1 and show a list of 8)

Memory at end: ~280MB

  • POST convertToOrder: 33.20s
  • requisitionsForConvert?page=0&size=10: 4.5min

93.57s (convert 1, show a list of 6)

Memory at end: 271MB


  • POST /convertToOrder: 7.53s
  • GET requisitionsForConvert?filterBy=all&filterValue=&page=0&size=10: 84s (58ms network)


2nd run:  all roughly the same88s (convert 1, show 5), 288MB.


21s (to convert 8 and display a list of 0 left to convert)

Much improved!

  • POST /convertToOrder: 14s
  • GET requisitionsForConvert?filterBy: 2s





20s (to convert 8 and display 2 left to convert)

  • POST /convertToOrder: 15s
  • GET requisitionsForConvert?filterBy: 2s

6s (to convert 1)

  • POST /convertToOrder: 2.65s
  • GET requisitionsForConvert?filterBy: 2s


34s (to convert 1)

  • POST /convertToOrder: 31s
  • GET requisitionsForConvert?filterBy: 2.5s

178s (to convert 10)

  • POST /convertToOrder: 170s

6s (to convert 1)

  • POST /convertToOrder: 2.65s
  • GET requisitionsForConvert?filterBy: 2s

Tried again (to convert 8, leaving 2): 30s

  • POST /convertToOrder: 25s







OLMIS-3320 - Getting issue details... STATUS (goal? will help screens first load and any other search the user does)

OLMIS-3318 - Getting issue details... STATUS (will save 84s after convert to order button clicked)















Total











25s

40s178s, 6s

Manage POD





















Used 'superuser' user account and Essential Meds program


Used 'superuser' user account and Essential Meds program




Used 'superuser' user account and Essential Meds program

Could not find a user to Manage PODs
Could not find a user to Manage PODs

Navigate to Orders > Manage PODs

immediate (no network activity)

Memory at end: ~272MB




immediate (no network activity)




immediate (no network activity)





Select Program Essential Meds at My Facility (Lilongwe DHO Pharmacy), click Search

11.25s (Showing 10 items out of 34067 total)

Memory at end: ~271MB




14s (showing 10 items out of 61 total)




12s

  • orders/search: 8s

(showing 10 items out of 61 total)

(Resumed testing 7 Nov 2017 on perftest with latest code)

15s

  • orders/search: 12s

(showing 10 items out of 61 total)






Select an Order (ORDER-EOLYVFU7R from ZA2722 - Zomba Central Hospital) and click 'View Order'

75.47s

Memory at end: ~326MB

  • GET proofOfDeliveries: 43.37s
  • GET proofOfDeliveries/{ID}: 25.63s



34s

(used a different Order)

  • GET proofOfDeliveries: 14.40s
  • GET proofOfDeliveries/{ID}: 14.63s





28s

78s

  • orders/ID/proofOfDeliveries: 57s
  • GET proofOfDeliveries/ID: 17s





Enter Quantities (random partial data entry)

(UI was a bit slow on tabbing and typing in text)


(On the View screen I could not find a way to enter quantities)





(On the View screen I could not find a way to enter quantities)




Click 'Submit' (opens modal)

immediate















Click 'OK' in modal

~70s

(UI had errors here – the loading spinner showed during the first API call, but then the screen was editable again during a second API call, but then a loading spinner took away screen control without notice to the user during a third or fourth API call!)

  • PUT proofOfDeliveries/{ID}: 33.50s
  • POST proofOfDeliveries/{ID}/submit: 20.89s
  • GET search: 3.35s
  • GET proofOfDeliveries/{ID}: 21.21s
















View Order





















Used 'superuser' user account and Essential Meds program


Used 'superuser' user account and Essential Meds program





Used 'superuser' user account and Essential Meds program




Navigate to Orders > View Orders

3s

3 API calls

Memory at end: ~389MB




4s

Reduced to 1 API call

  • /api/programs: 2s






3s

  • /api/programs: 2s





Select Supplying Facility=CMST Central

4s

1 API call




4s

  • requestingFacilities: 2s






3s

  • requestingFacilities: 2s





Select Requesting Facility=Lilongwe DHO Pharmacy

immediate


immediate





immediate




Select Program=Essential Meds

immediate


immediate





immediate




Click 'Search'

8s

5 API calls

(Showing 10 items out of 61 total)

Memory at end: ~404MB




14s

Reduced to 3 API calls

  • requestingFacilities: 2.15s
  • programs: 2.06s
  • orders/search: 8.41s






12s

  • requestingFacilities: 2s
  • programs: 2s
  • orders/search: 8s





Click 'Print' next to an Order (O6fc98f7f-085e-4a85-a8a0-9fb4376f1d43)

14s

Displays PDF in new tab




11s

Displays PDF in new tab







13s

Displays PDF in new tab






Password Reset


















Click 'Forgot Password'

immediate















Enter an email and click 'Reset Password'

Error: (did not have a matching password to test)















Application Shut Down
Logout3.94s
3.98s3.13s














Release testing for 3.3

Steps: 

  • Use and update Chrome (current version is 66); don't use firefox
  • Clear chrome's history, application cache, etc.
  • Navigate to perftest.openlmis.org
  • Open dev tools, goto Performance tab, select Slow 3G and 6x CPU throttle
  • Use credentials:
    • Username:  dhitale
    • Password: password
  • Add a column to the right, add the version, date, operating system, and your name
  • Open the network tab and filter by XHR
  • Have a manual timer so you have a way to time the overall feel to the user.
  • Start the story in the leftmost column, and start recording timing, noting CPU and memory changes, etc.
    • Use the network tab, clicking on an operation and looking at the timing tab to get (Request sent, TTFB, Content Download)
  • Watch this video for an overview of these instructions.



Story

3.2.1-RC1

** this is the reference **
3 Nov 2017

3.3.0-SNAPSHOT
21 March 2018

3.3.0-SNAPSHOT

21 March 2018

3.3.0-SNAPSHOT

30 March 2018

3.3.0-SNAPSHOT

1 April 2018

3.3.0-SNAPSHOT

24 April 2018

3.3.0

24 April 2018

OS 10.11

3.3.0

25 April 2018

Windows 8.1 

3.3.0

25 April 2018

Windows 10


3.3.0

25 April 2018

Windows 10


3.3.0

25 April 2018

Ubuntu 16.04

3.3.0

25 April 2018

Ubuntu 16.04

3.3.0

25-26 April 2018

Ubuntu 14.04

3.3.0

25 April 2018

Windows 8.1

3.3.0

26 April 2018

Ubuntu 16.04

3.3.0

26 April 2018

Ubuntu 16.04 LTS

3.3.0

26 April 2018

Windows 10

3.3.0

26 April 2018

Ubuntu 17.04

3.3.0

26 April 2018

Ubuntu 16.04

3.3.0

27 April 2018

Ubuntu 16.04

3.3.0

27 April 2018

Ubuntu 14.04

3.3.0

27 April 2018

Ubuntu 16.04

UbuntuUbin

brandon

(same throttling)

dhitale account on perftest.openlmis.org

chongsun

(same throttling)

dhitale account on perftest.openlmis.org


NOTE: this was on "cold startup"

chongsun

(same throttling)

dhitale account on perftest.openlmis.org

chongsun

(same throttling)

dhitale account on perftest.openlmis.org

chongsun

(same throttling)

dhitale account on perftest.openlmis.org

NOTE: this set of steps is for EMERGENCY requisitions

chongsun

(same throttling)

dhitale account on perftest.openlmis.org

Josh
(same throttling)

dhitale on

perftest.openlmis.org

Łukasz Lewczyński

dhitale on perftest.openlmis.org

Nikodem

dhitale

perftest.openlmis.org

Paweł Albecki

dhitale on perftest.openlmis.org

Jakub Kondrat

dhitale on perftest.openlmis.org

Jakub Kondrat

dhitale on perftest.openlmis.org

Sebastian Brudziński

dhitale on perftest.openlmis.org
Sebastian Brudziński

dhitale on perftest.openlmis.org

Mateusz Kwiatkowski

dhitale on perftest.openlmis.org

Joanna Bebak

dhitale on perftest.openlmis.org

Nikodem Graczewski

dhitale

perftest.openlmis.org

Paweł Albecki

perftest.openlmis.org

Jakub Kondrat

dhitale on perftest.openlmis.org

Mateusz Kwiatkowski

dhitale on perftest.openlmis.org

Klaudia Pałkowska

superuser on perftest.openlmis.org

Joanna Bebak

Slow 3G, 6x CPU throttling slowdown

dhitale on

perftest.openlmis.org

Application Start Up
This reflects a person downloading OpenLMIS in a browser for the first time and logging in
Application Start Up
This reflects a person downloading OpenLMIS in a browser for the first time and logging in
Application Start Up
This reflects a person downloading OpenLMIS in a browser for the first time and logging in
Application Start Up
This reflects a person downloading OpenLMIS in a browser for the first time and logging in




Application Start Up
This reflects a person downloading OpenLMIS in a browser for the first time and logging in
Application Start Up
This reflects a person downloading OpenLMIS in a browser for the first time and logging in
Application Start Up
This reflects a person downloading OpenLMIS in a browser for the first time and logging in









Application Start Up
This reflects a person downloading OpenLMIS in a browser for the first time and logging in

Application Start Up
This reflects a person downloading OpenLMIS in a browser for the first time and logging in

Initial UI load

27s

Memory use at end: ~211MB

  • index.html
  • openlmis.css
  • openlmis.js 17s (559KB)
  • and others still similar

4s

Memory use: 257MB

4s4s
4s

26s

24s

Memory use: 80,876K

23s

openlmis.js (606KB) - 17s

23s








20s

3s

Login
End of time is when CPU usage drops

26s

Memory use at end: ~231MB

  • token?
  • GET currencySettings
  • GET facilities/minimal
  • GET users/ID
  • GET users/ID/permissionStrings
  • GET users/ID/programs
  • PNGs and SVGs

17s

Memory: 297MB

  • token
  • permissionStrings
  • programs
  • users/ID
  • currencySettings
  • facilities/minimal

14s

Same API calls

17s

Same API calls


20s

Same API calls


17s

Memory: 75,032K (one time there were more than 120,000K)

Same API calls

17s

Calls:

  • token
  • permissionsStrings
  • programs
  • users
  • currencySettings
  • facilities

They seem to be sent one by one instead of some of them being sent concurrently.

19s

Calls:

  • token
  • permissionsStrings
  • programs
  • users/ID
  • currencySettings
  • facilities/minimal











15s

Calls:

  • token
  • permissionsStrings
  • programs
  • users/ID
  • currencySettings
  • facilities/minimal



17s

GET /token - 2.03s

GET /currencySettings - 2.02s

GET /facilities/minimal - 2.57s

GET /users/:id - 2.02s

GET /users/:id/permissionStrings - 2.25s

GET /users/:id/programs - 2.03s

Total53s21s18s21s
24s
41s40s42s








35s

20s

Initiate RequisitionInitiate RequisitionInitiate RequisitionInitiate Requisition



Initiate Requisition
Initiate Requisition








Initiate Requisition

Initiate Requisition


Essential Meds program (271 products)

Essential Meds program at Lilongwe DHO Pharmacy (267 products)


Essential Meds program at Lilongwe DHO Pharmacy (267 products)Essential Meds program at Lilongwe DHO Pharmacy (267 products)Essential Meds program at Lilongwe DHO Pharmacy (267 products)Essential Meds program at Lilongwe DHO Pharmacy (267 products)
Essential Meds program at Lilongwe DHO Pharmacy (271 products)
Essential Meds program at Lilongwe DHO Pharmacy (271 products)








Essential Meds program at Lilongwe DHO Pharmacy (271 products)

Essential Meds in Lilongwe DHO Pharmacy (271 line items), September 2017

Navigate to Requisitions > Create/Authorize

Immediate

Memory use: 249MB

immediate

Memory: 299MB

immediateimmediateimmediateimmediate

immediate

Memory: 89,436K


immediate

Memory: 92MB










immediate

Memory: 92MB


Immediate

Select Facility and Program, Regular type & Click 'Search'

8s

  • periodsForInitiate: 2s
  • requisitions/search: 6s


16s (when server was totally cold after re-deploying)

38s

  • periodsForInitiate: 15s
  • requisitions/search: 38s

Memory use: 308MB

6s

  • periodsForInitiate: 2s
  • requisitions/search: 5s

9s

  • periodsForInitiate: 2s
  • requisitions/search: 7s

Emergency

4s

  • periodsForInitiate: 2s
  • requisitions/search: 2s

8s

  • periodsForInitiate: 2s
  • requisitions/search: 7s

35s

Memory: 96,248K

Endpoints:

  • periodsForInitiate: 12s
  • search: 34s

8s

Memory: 118B

  • periodsForInitiate: 2.01s
  • requisitions/search: 4.23s









7.5s

Memory: 118B

  • periodsForInitiate: 2.03s
  • requisitions/search: 5.11s

5s

GET /requisitions/periodsForInitiate - 2.02s

GET /requisitions/search - 3.57s

Click Proceed for latest 'Not yet started' period

45s

  • POST initiate: 33s (TTFB 17s, download is 16s) (809kb)


51s (first time I initiated for this program; maybe DB-level caching was colder?)

  • POST initiate: 40s (TTFB 23s, download is 16s) (809kb)
184s for one that is initiated (possible "cold startup" of server)

154s (possible "cold startup" of first initiate)

27s when done again

  • POST initiate: (TTFB 8s, download is 18s) (900KB)

24s for initiated one

39s

  • POST initiate: 37s (TTFB 15s, download is 22s) (1.1mb)

27s

  • POST initiate: 24s (TTFB 8s, download is 16s) (820kb)

51s

  • POST initiate: 49s (TTFB 27s, download is 22s) (1.1MB)

1m53s (possible "cold startup" of server)

Memory: 174,560K

Endpoints:

  • initiate: 1.9min
    • TTFB: 1.5m
    • download 22s
    • size: 1.1MB

61s

  • POST initiate: 32s (TTFB 10s, download is 22s) (1.1MB)
  • Memory: 174,560K

  • CPU ~usage is 100% infinitely









42s

  • 40.10 - initate



34s

POST /requisitions/initiate - 31.13s

Total53s222s

160s

33s when run again

48s
59s
2m29s
69s








50s

39s

Sync RequisitionSync RequisitionSync RequisitionSync Requisition
Add ProductSync Requisition
Sync Requisition










Sync Requisition

Sync Requisition


Essential Meds program (271 products)Essential Meds programEssential Meds program at Lilongwe DHO Pharmacy (267 products)Essential Meds program at Lilongwe DHO Pharmacy (267 products)Essential Meds program at Lilongwe DHO PharmacyEssential Meds program at Lilongwe DHO Pharmacy
Essential Meds program at Lilongwe DHO Pharmacy (271 products)










Essential Meds program at Lilongwe DHO Pharmacy (271 products)

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for initiate

Press "Sync with Server"

53s

  • PUT requisitions/ID: 31s (820kb upload, 97kb download)
  • GET requisitions/ID: 14s
  • GET statusMessages: 2s

(I notice that data entry within the Requistion form is laggy/delayed when typing and tabbing, whether or not the CPU throttle is on; there is even a delay from the time I click Previous or Next to the time it switches pages)

67s

  • PUT requisitions/ID: 45s (850kb upload, ?kb download)
  • GET requisitions/ID: 18s
  • GET statusMessages: 2s

64s

  • PUT requisitions/ID: 44s (850kb upload, 100kb download)
  • GET requisitions/ID: 16s
  • GET statusMessages: 2s

48s

  • PUT requisitions/ID: 35s (request is 20s! TTFB is only 12s, download is 3s)
  • GET requisitions/ID: 10s
  • GET statusMessages: 2s

There seems to be some intensive UI work in saving before hitting the API.


Open modal: immediate

Adding product: immediate

30s

  • PUT requisitions/ID: 18s (request is 13s! TTFB is only 4s, download is 2s)
  • GET requisitions/ID: 5s
  • GET statusMessages: 2s

42s

  • PUT requisitions/ID: 28s (request is 20s! TTFB is only 6s, download is 2.5s)
  • GET requisitions/ID: 9s
  • GET statusMessages: 2s

2m47s

Memory: 187,652K

Endpoints:

  • PUT requisitions
    • sent: 20s
    • TTFB: 2.2min
    • download: 2s
  • GET requisitions
    • TTFB: 8s
    • download: 3s
  • statusMessages











24s

Endpoints:

  • 10.94 - PUT requisitions
    • sent: 2.68
    • TTFB: 5.80s
    • download: 2.46s
  • 9.54s GET requisitions
    • TTFB: 7.06s
    • download: 2.46s
  • 2.02s - statusMessages

27s

PUT requisitions/ID - 12.44s

GET requisitions/ID - 9.37s

GET statusMessages - 2.01s

Total53s67s64s48s
30s42s
2m47s










24s

27s

Submit RequisitionSubmit RequisitionSubmit RequisitionSubmit Requisition

Submit Requisition
Submit Requisition
Submit Requisition








Submit Requisition

Submit Requisition


Essential Meds program (271 products)Essential Meds program (267 products)Essential Meds program at Lilongwe DHO Pharmacy (267 products)Essential Meds program at Lilongwe DHO Pharmacy (267 products)
Essential Meds program at Lilongwe DHO Pharmacy (267 products)
Essential Meds program at Lilongwe DHO Pharmacy (271 products)
Essential Meds program at Lilongwe DHO Pharmacy (271 products)








Essential Meds program at Lilongwe DHO Pharmacy (271 products)

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for sync

Press "Submit" (opens modal)~immediate~immediateimmediateimmediate
immediate
immediate










immediate

Immediate

Confirm Submit in modal

43s

  • PUT requisitions/ID: 30s (802kb upload and 97kb download)
  • POST requisitions/ID/submit: 2s
  • GET periodsForInitiate: 2s
  • GET requisitions/search: 3s

54s

  • PUT requisitions/ID: 44s (850kb upload and ?kb download)
  • POST requisitions/ID/submit: 4s
  • GET periodsForInitiate: 2s
  • GET requisitions/search: 5s

44s

  • PUT requisitions/ID: 37s (850kb upload and 100kb download)
  • POST requisitions/ID/submit: 2s
  • GET periodsForInitiate: 2s
  • GET requisitions/search: 4s

70s

  • PUT requisitions/ID: 60s (request sent 20s, TTFB was 36s but scalyr says 7s, download 2.5s)
  • POST requisitions/ID/submit: 3s
  • GET periodsForInitiate: 2s
  • GET requisitions/search: 5s

Another iteration, 37s

  • PUT requisitions/ID: 30s (request sent 20s, TTFB was 7s but scalyr says 7s, download 2.5s)
  • POST requisitions/ID/submit: 2.5s
  • GET periodsForInitiate: 2s
  • GET requisitions/search: 3s

40s

  • PUT requisitions/ID: 31s (request sent 21s, TTFB 7s, download 2.5s)
  • POST requisitions/ID/submit: 3s
  • GET periodsForInitiate: 2s
  • GET requisitions/search: 5s

51s

Memory: 310,792K

Endpoints:

  • PUT requisition
    • sent: 20s
    • TTFB: 8s
    • download: 3s
  • submit
    • TTFB: 3s
  • periodsForInisitate
    • TTFB: 2s
    • download: 1s
  • search
    • TTFB: 5s

44s








26s - total

13.94s - PUT requisition

3.31s - submit

2.02s - periods for initiate

4.60s - search requisitions


24s

PUT /requisitions/:id - 13.58s

POST /requisitions/:id/submit - 4.75s

GET requisitions/:id/periodsForInitiate - 2.03s

GET requisitions/search - 3.75s

Total43s54s44s70s, 37s

40s
51s
44s








26s

24s

Authorize RequisitionAuthorize RequisitionAuthorize RequisitionAuthorize Requisition

Authorize Requisition
Authorize Requisition
Authorize Requisition








Authorize Requisition

Authorize Requisition


Essential Meds program (271 products)Essential Meds program (267 products)Essential Meds program at Lilongwe DHO Pharmacy (267 products)Essential Meds program at Lilongwe DHO Pharmacy (267 products)
Essential Meds program at Lilongwe DHO Pharmacy (267 products)
Essential Meds program at Lilongwe DHO Pharmacy (271 products)
Essential Meds program at Lilongwe DHO Pharmacy (271 products)








Essential Meds program at Lilongwe DHO Pharmacy (271 products)

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for submit

Navigate to Requisitions > Create/Authorize
immediate




Not executed because I was on the right screen after I submitted the requisition
Not executed because I was on the right screen after I submitted the requisition








Not executed because I was on the right screen after I submitted the requisition

Immediate

Select Program at My Facility with Type Regular and click Search

5s

  • periods for initiate: 2s
  • requisitions/search: 3s

5s

  • periods for initiate: 2s
  • requisitions/search: 5s

3s

  • periods for initiate: 2s
  • requisitions/search: 3s

5s

  • periods for initiate: 2s
  • requisitions/search: 5s

5s

  • periods for initiate: 2s
  • requisitions/search: 5s


Not executed because I was on the right screen after I submitted the requisition








Not executed because I was on the right screen after I submitted the requisition

6s

GET /requisitions/periodsForInitiate - 2.02s

GET /requisitions/search - 3.49s

Click Proceed for 'Submitted' requisition

31s


21s

  • GET requisitions/ID: 17s
  • GET statusMessages: 2s

21s

  • GET requisitions/ID: 17s
  • GET statusMessages: 2s

12s

  • GET requisitions/ID: 9s
  • GET statusMessages: 2s

12s

  • GET requisitions/ID: 9s
  • GET statusMessages: 2s

29s

Memory: 352,460K

Endpoints:

  • GET requisition
    • TTFB: 5s
    • download: 3s
  • statusMessages
    • TTFB: 2s

27s








12s - total

9.63 s - GET requisition

2.02 s - status messages


12s

GET /requisitions/:id - 9.60s

GET /statusMessages - 2.03s

Click 'Authorize' (opens modal)immediateimmediateimmediate

immediate
immediate
0.5s








immediate

Immediate

Click 'Authorize' in modal

51s

  • PUT requisitions/ID: 30s
  • POST authorize: 12s
  • GET periodsForInitiate: 3s
  • GET search: 4s

61s

  • PUT requisitions/ID: 38s
  • POST authorize: 16s
  • GET periodsForInitiate: 2s
  • GET search: 6s

54s

  • PUT requisitions/ID: 36s
  • POST authorize: 14s
  • GET periodsForInitiate: 2s
  • GET search: 3s

44s

  • PUT requisitions/ID: 29s (request sent 20s, TTFB 7s, download 2s)
  • POST authorize: 8s
  • GET periodsForInitiate: 2s
  • GET search: 5s

Another iteration, 39s

  • PUT requisitions/ID: 29s (request sent 20s, TTFB 6s, download 2s)
  • POST authorize: 6s
  • GET periodsForInitiate: 2s
  • GET search: 3s

44s

  • PUT requisitions/ID: 29s (request sent 20s, TTFB 7s, download 2s)
  • POST authorize: 6s
  • GET periodsForInitiate: 2s
  • GET search: 3s

50s

Memory: 136,020K

Endpoints:

  • PUT requisition
    • sent: 20s
    • TTFB: 7s
    • download: 3s
  • authorize
    • TTFB: 6s
  • periodsForInitiate
    • TTFB: 2s
  • search
    • TTFB: 5s

45s

Memory: 196MB











26s

12.41s PUT requisition

6.59s authorize

2.00s - periods for initiate

4.08s - search requsiitions


26s

PUT /requisitions/:id - 12.99s

POST /requisitions/:id/authorize - 5.73s

GET /requisitions/periodsForInitiate - 2.02s

GET /requisitions/search - 2.95s

Total87s87s78s61s, 56s

61s
1m19s
72s








38s

44s

Approve Requisition (Single)Approve Requisition (Single)Approve Requisition (Single)Approve Requisition (Single)

Approve Requisition (Single)
Approve Requisition (Single)Approve Requisition (Single)Approve Requisition (Single)Approve Requisition (Single)Approve Requisition (Single)Approve Requisition (Single)Approve Requisition (Single)Approve Requisition (Single)Approve Requisition (Single)

Approve Requisition (Single)

Approve Requisition (Single)

Approve Requisition (Single)


Essential Meds program (271 products)Essential Meds program (267 products)Essential Meds program at Lilongwe DHO Pharmacy (267 products)Essential Meds program at Lilongwe DHO Pharmacy (267 products)
Essential Meds program at Lilongwe DHO Pharmacy (267 products)
Essential Meds program at Lilongwe DHO Pharmacy (271 products)Essential Meds program at Lilongwe DHO Pharmacy (271 products)Essential Meds program at Lilongwe DHO Pharmacy (271 products)Essential Meds program at Nkhoma Hospital (31 products)Essential Meds program at Lilongwe DHO Pharmacy (271 products)Essential Meds program at Lilongwe DHO Pharmacy (271 products)Essential Meds program at Lilongwe DHO Pharmacy (271 products)Essential Meds program at Lilongwe DHO Pharmacy (271 products)Essential Meds program at Lilongwe DHO Pharmacy (271 products)Essential Meds program at Lilongwe DHO Pharmacy (271 products)

Essential Meds program at Lilongwe DHO Pharmacy (271 products)

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for authorize

Navigate to Requisitions > Approve

4s

  • requisitionsForApproval: 2s

18s

  • requisitionsForApproval: 17s

2s

  • requisitionsForApproval: 2s

2s

  • requisitionsForApproval: 2s

2s

  • requisitionsForApproval: 2s

17s

Memory: 161,708K

Endpoints:

  • requisitionsForApproval
    • TTFB: 12s


5s

  • requisitions ForApproval 2.03s

6s

Memory: 175MB

  • requisitionsForApproval 2.03s
6s
  • requisitionsForApproval 2.05s
6s
  • requisitionsForApproval 2.03s

5s

  • requisitionsForApproval 2.04s

4s

  • requisitionsForApproval 2.04s

3s

  • requisitionsForApproval 1.59s

4s

  • requisitionsForApproval 2.05s

7s

  • requisitionsForApproval - 2.06


13s

  • requisitionsForApproval - 11.91s

3s

GET /requisitions/requisitionsForApproval: 2.04s

Filter by Program and click 'Search'

8s

  • requisitionsForApproval: 2s

(showing 10 items out of 31 total for this program)

3s

  • requisitionsForApproval: 2s

10 out of 31 total

3s

  • requisitionsForApproval: 2s

10 out of 31 total

2s

  • requisitionsForApproval: 2s

2s

  • requisitionsForApproval: 2s

8s

Memory: 159,864K

Endpoints:

  • requisitionsForApproval
    • TTFB: 2s

5s

  • requisitions ForApproval 2.07s
5s7s
  • requisitionsForApproval 2.08s


7s
  • requisitionsForApproval 2.03s


7s

  • requisitionsForApproval 2.07s

4s

  • requisitionsForApproval 2.09s

3s

  • requisitionsForApproval 1.55s
3s
  • requisitionsForApproval 2.08s

7s

  • requisitionsForApproval - 2.09


3s

  • requisitionsForApproval - 2.06s

3s

GET /requisitions/requisitionsForApproval: 2.10s

Select 1 and click 'View Requisition'

16s

  • GET requisitions/ID: 3s
  • statusMessages: 2s


Memory use: 3.9GB (not sure where between the time above and now the memory started spiking!)

20s

  • GET requisitions/ID: 17s
  • statusMessages: 2s

20s

  • GET requisitions/ID: 17s
  • statusMessages: 2s

12s

  • GET requisitions/ID: 9s
  • statusMessages: 2s

12s

  • GET requisitions/ID: 9s
  • statusMessages: 2s

28s

Memory: 181,444K

Endpoints:

  • Get requisition
    • TTFB: 6s
    • download: 2s
  • statusMessages
    • TTFB: 2s

20s

Calls:

  • get requisition - 8.91s
  • statusMessage - 2.02s

25s

Memory: 225MB

  • Get requisition
    • 8.7s (TTFB 6.3s)
  • statusMessages
    • 2s

22s

Calls:

  • get requisition - 2.34s
  • statusMessages - 2.01s

29s

Calls:

  • get requisition - 9s (TTFB 6.57s)
  • statusMessages - 2.02s

24s

  • get requisition - 8.86s (TTFB 6.43s; Download 2.43s)
  • statusMessages - 2.02s

13s

  • get requisition - 8.76s (TTFB 6.32s; Download 2.43s)
  • statusMessages - 2.01s

12s

  • get requisition - 8.76s (TTFB 7.71s; Download 1.30s)
  • statusMessages - 1.46s

11s

  • get requisition - 8.12s
  • statusMessages - 2.01s

30s

  • GET /requisition/:id - 9.39s
  • GET statusMessages - 2.02s


14s

  • 9.84s - GET requisitions
  • 2.00s - statusMessages

14s

GET /requisitions/:id - 9.53s

GET /statusMessages - 2.01s

Click 'Approve' (opens modal)immediateimmediateimmediateimmediate


immediateimmediate0.5s0.5s0.5simmediateImmediateImmediateimmediateimmediate

immediate

Immediate

Click 'Approve' in modal

19s

  • PUT requisitions/ID: 4s
  • POST approve: 2s
  • requisitionsForApproval: 2s

55s

  • PUT requisitions/ID: 37s
  • POST approve: 15s
  • requisitionsForApproval: 2s

48s

  • PUT requisitions/ID: 36s
  • POST approve: 9s
  • requisitionsForApproval: 2s

45s

  • PUT requisitions/ID: 30s (request sent 20s, TTFB 7s, download 2.5s)
  • POST approve: 9s
  • requisitionsForApproval: 2s

Another iteration, 37s

  • PUT requisitions/ID: 29s (request sent 20s, TTFB 6.5s, download 2.5s)
  • POST approve: 6s
  • requisitionsForApproval: 2s



41s

  • PUT requisitions/ID: 29s (request sent 20s, TTFB 6s, download 2.5s)
  • POST approve: 9s
  • requisitionsForApproval: 2s

35s

Memory: 145,724K

Endpoints:

  • PUT requisition
    • sent 20s
    • TTFB: 7s
    • download: 2s
  • approve
    • TTFB: 2s

Get 400 with error message: Cannot release requisition as order. Requisition must have supplying facility.

41s

Calls:

  • PUT/requisition - 28.95s
    • Request snt 19.99s
    • Waiting (TTFB) - 6.53s
    • Content Download 2.43
  • approve - 5.60s
    • Waiting (TTFB) - 5.6s
  • requisitions ForApproval - 2.06s

54s

Memory: 217MB

Endpoints:

  • PUT requisition
    • sent 20s
    • TTFB: 10s
    • download: 2s
  • approve
    • TTFB: 8.6s


18.2s

Calls:

  • PUT/requisition - 3.97s 
    • Request sent 1.65s
    • Waiting (TTFB) - 2.02s
    • Content Download 0.29s
  • approve - 5.46s
    • Waiting (TTFB) - 5.45s
  • requisitions ForApproval - 2.04s

37.6s

Calls:

  • PUT/requisition - 29.22s 
    • Request sent 19.98s
    • Waiting (TTFB) - 6.80s
    • Content Download 2.43s
  • approve - 4.62s
    • Waiting (TTFB) - 4.60s

Got 400 error: 

42s

  • PUT/requisition - 29.22s 
    • Request sent 19.99s
    • Waiting (TTFB) - 6.77s
    • Content Download 2.43s
  • approve - 4.25s
    • Waiting (TTFB) - 4.25s
  • requisitions ForApproval - 2.04s

37s

  • PUT/requisition - 29.09s 
    • Request sent 20.00s
    • Waiting (TTFB) - 6.65s
    • Content Download 2.43s
  • approve - 4.60s
    • Waiting (TTFB) - 4.57s
  • requisitions ForApproval - 2.04s

32s

  • PUT/requisition - 20.6s 
    • Request sent 12.08s
    • Waiting (TTFB) - 7.22s
    • Content Download 1.30s
  • approve - 10.06s
    • Waiting (TTFB) - 8.17s
  • requisitions ForApproval - 1.5s

19s

  • PUT/requisition - 16.92s
  • approve - 2.04s
    requisitions ForApproval – not executed, got an error

31s

  • PUT/requisition - 27s
  • approve - 2,43s


31s

  • PUT/requisition - 16.70s 
    • Request sent 2.61s
    • Waiting (TTFB) - 11.66s
    • Content Download 2.43s
  • approve - 10.95s
  • requisitions ForApproval - 2.08s

31s

PUT /requisitions/:id - 13.25s

POST /requisitions/:id/approve - 13.30s

GET /requisitions/requisitionsForApproval: 2.07s

Total47s96s73s61s, 53s

57s
1m28s71s (1m 11s)91s53.7s80.1s78s58s50s37s


58s

51s

Batch Approve RequisitionBatch Approve RequisitionBatch Approve RequisitionBatch Approve Requisition

Batch Approve Requisition
Batch Approve Requisition
Batch Approve Requisition








Batch Approve Requisition
Batch Approve Requisition

Essential Meds program (271 products)Essential Meds programMalaria programEssential Meds program
Essential Meds program
Essential Meds program
Essential Meds program








Essential Meds program
Essential Meds program
Navigate to Requisitions > Approve

5s

  • requisitionsForApproval: 2s

3s

  • requisitionsForApproval: 2s

3s

  • requisitionsForApproval: 2s

3s

  • requisitionsForApproval: 2s

3s

  • requisitionsForApproval: 2s

5s

Memory: 151,088K

Endpoints:

  • requisitionsForApproval
    • TTFB: 2s

Not executed








4s

Endpoints:

  • requisitionsForApproval
    • TTFB: 2s

3s
Select Program and click Search

5s

  • requisitionsForApproval: 2s

(showing 10 results out of 30)

3s

  • requisitionsForApproval: 2s

3s

  • requisitionsForApproval: 2s

3s

  • requisitionsForApproval: 2s

3s

  • requisitionsForApproval: 2s

7s

Memory: 151,664K

Endpoints:

  • requisitionsForApproval
    • TTFB: 2s

Not executed








4s

Endpoints:

  • requisitionsForApproval
    • TTFB: 2s

3s
Select All 10 requisitions and click 'View Selected Requisitions'

20s

  • requisitions?retrieveAll: 4s

(Again, most of the time is CPU in browser)

5s

  • requisitions?retrieveAll: 4s

3s

  • requisitions?retrieveAll: 2s

5s

  • requisitions?retrieveAll: 4s

6s

  • requisitions?retrieveAll: 5s

There is no option to select several requisitions.
There is no option to select several requisitions.








7s 

retrieve all - 5.06s

  • 3.94s waiting TTFB
  • 1.11s download



8s
Click 'Approve' (open modal)

5s

(no API calls)

immediateimmediateimmediate
immediate











immediate
Immediate
Click 'OK' in modal

115s

  • PUT requisitions?saveAll: 57s (TTFB 50s!)
  • POST requisitions?approveAll: 49s (TTFB 47s!) (it succeeded!)
  • GET requisitionsForApproval: 2s

206s

  • PUT requisitions?saveAll: 85s (TTFB 84s!)
  • POST requisitions?approveAll: 120s (TTFB 117s!)
  • GET requisitionsForApproval: 2s

Got errors and did not approve.

Error message: There were 10 errors. It's not clear what is wrong or how to fix it.

114s

  • PUT requisitions?saveAll: 62s (TTFB 55s!)
  • POST requisitions?approveAll: 50s (TTFB 48s!) (it succeeded!)
  • GET requisitionsForApproval: 2s

Another iteration, 77s

  • PUT requisitions?saveAll: 36s (TTFB 31s)
  • POST requisitions?approveAll: 39s (TTFB 37s(it succeeded!)
  • GET requisitionsForApproval: 2s



84s

  • PUT requisitions?saveAll: 43s (TTFB 38s)
  • POST requisitions?approveAll: 38s (TTFB 36s(it succeeded!)
  • GET requisitionsForApproval: 2s












91s

  • saveAll - 48.66s
    • sent - 4.21s
    • TTFB - 43.39s
    • download - 1.06s
  • approveAll - 39.31s
  • forApproval - 2.07s

155s


Saving took 84s
Approving took 68s

Total150s217s
125s, 88s

96s
12s
null








106s

169s

Convert to OrderConvert to OrderConvert to OrderConvert to Order

Convert to Order
Convert to Order
Convert to Order

Convert to Order

Convert to Order
Convert to OrderConvert to Order
Convert to Order

Convert to Order


Used 'superuser' user account and Essential Meds programUsed 'superuser' user account and Essential Meds programUsed 'superuser' user account and Essential Meds programUsed 'superuser' user account and Essential Meds program
Used 'superuser' user account and Essential Meds program
Used 'superuser' user account and Essential Meds program
Used 'superuser' user account and Essential Meds program

Used 'superuser' user account and Essential Meds program

Used 'superuser' user account and Essential Meds program
Used 'superuser' user account and Essential Meds programUsed 'superuser' user account and Essential Meds program
Used 'superuser' user account and Essential Meds program

User: superuser

Convert 1 requisition - Essential Meds in Lilongwe DHO Pharmacy (271 line items) same requisition as for approve
Convert 8 requisitions - Essential Meds in Balaka DHO Pharmacy (271 line items)

Navigate to Requisitions > Convert to Order

3s

  • requisitionsForConvert?filterBy: 2.5s

(10 showing out of 11 requisitions ready to convert)

6s

  • requisitionsForConvert?filterBy: 6s

1 out of 1 requisitions ready to convert

6s

  • requisitionsForConvert?filterBy: 2.5s

10 out of 11 requisitions ready to convert

5s

  • requisitionsForConvert?filterBy: 5s

5s

  • requisitionsForConvert?filterBy: 4s

8s

Memory: 163,908K

Endpoints:

  • requisitionsForConvert
    • TTFB: 2s

4s

6s

(12 requisitions available)



2.36s
  • requsitionsForConvert
(11 requisitions available)

3.5s
  • requsitionsForConvert
(4 requisitions available) TTFB 2s
7.5s
  • requsitionsForConvert
(13 requisitions available)

16.5s

  • requisitionsForConvert (21 requisitions available)

3s

/requisitions/requisitionsForConvert: 2.14s (11 requisitions available)

Select 1, Select a Warehouse, and click 'Convert to Order' (open modal)2simmediateimmediateimmediate
immediate
immediate
immediate

immediate

immediate
immediateimmediate
immediate

1 requisition - Immediate

8 requisitions - Immediate

Click 'OK' in modal

20s (to convert 8 and display 2 left to convert)

  • POST /convertToOrder: 15s
  • GET requisitionsForConvert?filterBy: 2s

6s (to convert 1)

  • POST /convertToOrder: 2.65s
  • GET requisitionsForConvert?filterBy: 2s

34s (to convert 1)

  • POST /convertToOrder: 31s
  • GET requisitionsForConvert?filterBy: 2.5s

178s (to convert 10)

  • POST /convertToOrder: 170s

6s (to convert 1)

  • POST /convertToOrder: 2.65s
  • GET requisitionsForConvert?filterBy: 2s

Tried again (to convert 8, leaving 2): 30s

  • POST /convertToOrder: 25s

234s (to convert 10)

  • POST /convertToOrder: 234s

Getting results all over the place:

To convert 1, got 4s, 5s, 10minutes


15s (to convert 1), 5s (second time to convert 1)

  • POST /convertToOrder: 14s, 4s (second time)

89s (to convert 10)

  • POST /convertToOrder: 1.4m

18s (to convert 1)

Memory: 143,508K

Endpoints:

  • convertToOrder
    • TTFB: 11s

1m6s (to convert 9)

Memory: 123,936K

Endpoints:

  • convertToOrder
    • TTFB: 1m
  • requisitionsForConvert
    • TTFB: 2s

7s (to convert 1)

Memory: 178MB

  • convertToOrder 3.7s


8s to convert 1 requisition

/convertToOrder: 2.04s (TTFB: 2.02s)


11s to convert 8 requisitions

/convertToOrder: 7.17s (TTFB: 7.15s)



7s to convert 1 requisition

/convertToOrder: 6.30s but got an error

33s to convert 8 requisitions
/convertToOrder: 32.04s


3s to convert 1 requisition

/convertToOrder: 2s (TTFB all)

30s to convert 8 requisitions
/convertToOrder: 27s (all TTFB)

9s to convert 1 requisition

/convertToOrder: 3.02s

44s to convert 8 requisitions
/convertToOrder: 40.13s (40.11s TTFB)


32s to convert 1 requisition (Essential Meds - Likuni Hospital)

  • convertToOrder: 5.5s
  • UI after request: 26.5s


100s to convert 8 requisitions

  • convertToOrder: 72s

Convert 1 requisition - 4s

POST /convertToOrder – 2.64s


Convert 8 requisitions - 27s

POST /convertToOrder - 24.51s

Total25s40s178s, 6s

89s, 15s (5s second time)
26s / 1m14s
11s

14s / 17s

7s / 33s
6.5s / 33.5s16.5s / 51.5s
48.5s / 116.5s

1 requisition - 7s, 8 requisitions - 30s

Manage POD






Manage POD














Used 'superuser' user account and Essential Meds programCould not find a user to Manage PODs
Could not find a user to Manage PODs



Could not find a user to Manage PODs













Navigate to Orders > Manage PODsimmediate (no network activity)



















Select Program Essential Meds at My Facility (Lilongwe DHO Pharmacy), click Search

12s

  • orders/search: 8s

(showing 10 items out of 61 total)





















Select an Order (ORDER-EOLYVFU7R from ZA2722 - Zomba Central Hospital) and click 'View Order'28s



















Enter Quantities (random partial data entry)




















Click 'Submit' (opens modal)




















Click 'OK' in modal




















Total






--s













View Order






View Order













Navigate to Orders > View Orders






1s

Memory: 147,472K

Endpoints:

  • programs
    • TTFB < 1s














Select Supplying Facility=CMST Central and click Search button






4s

Memory: 126,508K

Endpoints:

  • requestingFacilities
    • TTFB < 1s
  • programs
    • TTFB < 1s
  • orders
    • TTFB: 2s














Open filter modal,select Lilongwe DHO Pharmacy as Requesting Facility, Essential Meds as Program and click search button








3s

Memory: 143,076K

Endpoints:

  • requestingFacilities
    • TTFB < 1s
  • programs
    • TTFB < 1s
  • orders
    • TTFB: 2s














Click 'Print' next to an Order (O6fc98f7f-085e-4a85-a8a0-9fb4376f1d43)






33s

Memory: 161,264K

Endpoints:

  • print
    • TTFB: 10s














Total






41s













Password Reset






Password Reset













Click 'Forgot Password'






immediate













Enter an email and click 'Reset Password'






3s

Memory: 157,248s

Endpoints:

  • forgotPassword
    • TTFB: 2s

Get 400 with error message: User with provided email does not exist.















Total






3s













Application Shut DownApplication Shut DownApplication Shut DownApplication Shut Down



Application Shut Down
Application Shut Down











Logout






1s

Memory: 139,632K

No API calls


2.5s

  • logout TTFB 2s












Total






1s
2.5s












Story

3.2.1

26 April 2018

3.2.1

26 April 2018

3.2.1

26 April 2018

3.2.1

26 April 2018

3.3.0 (post UI fixes)

26 April 2018

3.3.1

16 July 2018

3.3.1

16 July 2018


Nikodem

slow 3g, 6x cpu throttling slowdown

dhitale

perftest.openlmis.org

Sebastian Brudziński

slow 3g, 6x cpu throttling slowdown

dowa

perftest.openlmis.org

Sebastian Brudziński

slow 3g, 6x cpu throttling slowdown

dowa

perftest.openlmis.org

Nikodem Graczewski

slow 3g, 6x cpu throttling

dowa

perftest.openlmis.org

Chongsun Ahn

slow 3g, 6x cpu throttling

dhitale

perftest.openlmis.org

Klaudia Pałkowska

slow 3G, 6x CPU throttling

dhitale

perftest.openlmis.org

Mateusz Kwiatkowski

slow 3G, 6x CPU throttling 

dhitale

perftest.opnlmis.org

Application Start Up
This reflects a person downloading OpenLMIS in a browser for the first time and logging in
Application Start Up
This reflects a person downloading OpenLMIS in a browser for the first time and logging in
Application Start Up
This reflects a person downloading OpenLMIS in a browser for the first time and logging in





Initial UI load

22s

  • index.html
  • openlmis.css
  • openlmis.js 17s (546KB)
  • and others still similar

20s

  • index.html
  • openlmis.css   5.27s
  • openlmis.js  14.67s   (546KB)
  • and others


22s

21s

21s
Login
End of time is when CPU usage drops

8s

  • GET /token - 2.03s
  • GET /currencySettings - 2.03s
  • GET /facilities/minimal - 2.89s
  • GET /users/:id - 2.07s
  • GET /users/:id/permissionStrings - 2.57s
  • GET /users/:id/programs - 2.02s

13s

  • GET /token - 2.03s
  • GET /currencySettings - 2.01s
  • GET /facilities/minimal - 2.71s
  • GET /users/:id - 2.06s
  • GET /users/:id/permissionStrings - 2.20s
  • GET /users/:id/programs - 4.73s


14s15s14s
Total30s33s

36s36s35s
Initiate RequisitionInitiate RequisitionInitiate Requisition





Essential Meds in Lilongwe DHO Pharmacy (271 line items)Essential Meds in Dowa DHO Pharmacy (271 line items)

Essential Meds in Lilongwe DHO Pharmacy (271 line items)Essential Meds in Lilongwe DHO Pharmacy (271 line items)Essential Meds in Lilongwe DHO Pharmacy (271 line items)
Navigate to Requisitions > Create/Authorize

Immediate

Immediate

immediateimmediateimmediate
Select Facility and Program, Regular type & Click 'Search'

4s

  • GET /requisitions/periodsForInitiate - 2.02s
  • GET /requisitions/search - 3.39s

4s

  • GET /requisitions/periodsForInitiate - 2.03s
  • GET /requisitions/search - 3.08s


4s

API results similar

9s

  • GET /requisitions/periodsForInitiate - 2.03s
  • GET /requisitions/search - 3.46s

4s

  • GET /requisitions/periodsForInitiate - 2.03s
  • GET /requisitions/search - 3.20s
Click Proceed for latest 'Not yet started' period

40s

  • POST /requisitions/initiate - 38.60s

25s

  • POST /requisitions/initiate - 19.45s


34s

  • POST /requisitions/initiate - 32s (TTFB 10s, download 22s)

59s

  • POST /requisitions/initiate - 59s (TTFB 5.92s, download 22s)

28s

  • POST /requisitions/initiate - 28s (TTFB 5.48s, download 22s)
Total44s29s

38s1m 8s32s
Sync RequisitionSync RequisitionSync Requisition





Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for initiateEssential Meds in Dowa DHO Pharmacy (271 line items) - same requisition as for initiate

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for initiateEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for initiateEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for initiate
Press "Sync with Server"

51s

  • PUT requisitions/ID - 31.71s (820kb upload, 97kb download)
  • GET requisitions/ID - 14.79s
  • GET statusMessages - 2.03s

68s

  • PUT requisitions/ID - 30.82s (798Kb upload; Request snt: 15.6s, TTFB: 13.24s, Download: 1.96s)
  • GET requisitions/ID - 14.79s (TTFB: 13.05s, Download: 2s)
  • GET statusMessages - 2.03s (TTFB: 2.01s)


24s

What is notable is PUT is 12s, with request sent now ~3s.

57s

  • PUT requisitions/ID - 13.21s (187.5Kb upload; Request snt: 2.72s, TTFB: 7.70s, Download: 2.43s)
  • GET requisitions/ID - 9.68s (TTFB: 7.25s, Download: 2.43s)
  • GET statusMessages - 2.01s (TTFB: 2s)

24s

  • PUT requisitions/ID - 12.29s (187.5Kb upload; Request snt: 2.70s, TTFB: 7.15s, Download: 2.43s)
  • GET requisitions/ID - 9.64s (TTFB: 7.20s, Download: 2.43s)
  • GET statusMessages - 2.01s (TTFB: 2s)
Total51s68s

24s57s24s
Submit RequisitionSubmit RequisitionSubmit Requisition





Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for syncEssential Meds in Dowa DHO Pharmacy (271 line items) - same requisition as for sync

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for syncEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for syncEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for sync
Press "Submit" (opens modal)ImmediateImmediate

immediateimmediateimmediate
Confirm Submit in modal

40s

  • PUT /requisitions/:id - 32.14s
  • POST /requisitions/:id/submit - 2.04s
  • GET requisitions/:id/periodsForInitiate - 2.02s
  • GET requisitions/search - 3.51s

46s

  • PUT /requisitions/:id - 31.47s  (Request sent: 16.03s; TTFB: 13.12s; Content download: 1.94s)
  • POST /requisitions/:id/submit - 2.05s (TTFB: 2.02s)
  • GET requisitions/:id/periodsForInitiate - 2.02s  (TTFB: 2.01s)
  • GET requisitions/search - 3.02s (TTFB: 2.60s; download: 0.2s)


19s

PUT is 12s again, with request sent 3s.

Submit 2s.

34s

  • PUT /requisitions/:id - 12.76s  (Request sent: 2.70s; TTFB: 7.59s; Content download: 2.46s)
  • POST /requisitions/:id/submit - 2.79s (TTFB: 2.69s)
  • GET requisitions/:id/periodsForInitiate - 2.75s  (TTFB: 2.01s)
  • GET requisitions/search - 3.64s (TTFB: 3.20s; download: 0.2s)

34s

  • PUT /requisitions/:id - 12.79s  (Request sent: 2.71s; TTFB: 7.65s; Content download: 2.43s)
  • POST /requisitions/:id/submit - 2.76s (TTFB: 2.75s)
  • GET requisitions/:id/periodsForInitiate - 2.03s  (TTFB: 2.03s)
  • GET requisitions/search - 4.43s (TTFB: 4.14s; download: 0.2s)
Total40s46s

19s34s34s
Authorize RequisitionAuthorize RequisitionAuthorize Requisition





Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for submitEssential Meds in Dowa DHO Pharmacy (271 line items) - same requisition as for initiate

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for submitEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for submitEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for submit
Navigate to Requisitions > Create/AuthorizeImmediateImmediate

immediateimmediateimmediate
Select Program at My Facility with Type Regular and click Search

5s

  • GET /requisitions/periodsForInitiate - 2.01s
  • GET /requisitions/search - 3.56s

7s

  • GET /requisitions/periodsForInitiate - 2.02s
  • GET /requisitions/search - 3.02s


4s9s4s
Click Proceed for 'Submitted' requisition

20s

  • GET /requisitions/:id - 15.05s
  • GET /statusMessages - 2.01s

34s

  • GET /requisitions/:id - 14.46s
  • GET /statusMessages - 2.03s


12s37s12s
Click 'Authorize' (opens modal)ImmediateImmediate

immediateimmediateimmediate
Click 'Authorize' in modal

50s

  • PUT /requisitions/:id - 31.18s
  • POST /requisitions/:id/authorize - 13.29s
  • GET /requisitions/periodsForInitiate - 2.02s
  • GET /requisitions/search - 3.37s

56s

  • PUT /requisitions/:id - 30.57s  (Request sent: 15.62s, TTFB: 12.98s, Download: 1.93s)
  • POST /requisitions/:id/authorize - 12.47s  (TTFB: 12.45s)
  • GET /requisitions/periodsForInitiate - 2.03s
  • GET /requisitions/search - 2.86s


21s

PUT 12s again, with request sent 3s.

Authorize 6s.

32s

22s

  • PUT /requisitions/:id - 12.41s  (Request sent: 2.71s, TTFB: 7.27s, Download: 2.43s)
  • POST /requisitions/:id/authorize - 5.76s  (TTFB: 5.47s)
  • GET /requisitions/periodsForInitiate - 2.01s
  • GET /requisitions/search - 3.18s
Total75s97s

37s1m 18s38s
Approve Requisition (Single)Approve Requisition (Single)Approve Requisition (Single)Approve Requisition (Single)

Approve Requisition (Single)Approve Requisition (Single)

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for authorizeEssential Meds in Dowa DHO Pharmacy (271 line items) - same requisition as for initiateEssential Meds in Dowa DHO Pharmacy (271 line items) - same requisition as for initiate
Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for authorizeEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for authorizeEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for authorize
Navigate to Requisitions > Approve

4s

  • GET /requisitions/requisitionsForApproval: 2.04s

6s   (10 requisitions out of 159 total)

  • GET /requisitions/requisitionsForApproval: 2.03s

6s   (10 requisitions out of 159 total)

  • GET /requisitions/requisitionsForApproval: 2.04s

5s

  • GET /requisitions/requisitionsForApproval: 2.03s
3s

8s

  • GET /requisitions/requisitionsForApproval: 2.05s
2s
  • GET /requisitions/requisitionsForApproval: 2.03s
Filter by Program and click 'Search'

3s

  • GET /requisitions/requisitionsForApproval: 2.04s

7s  (10 requisitions out of 38 total)

  • GET /requisitions/requisitionsForApproval: 2.05s

6s  (10 requisitions out of 38 total)

  • GET /requisitions/requisitionsForApproval: 2.07s

6s

  • GET /requisitions/requisitionsForApproval: 2.06s
3s

8s

  • GET /requisitions/requisitionsForApproval: 2.06s

3s

  • GET /requisitions/requisitionsForApproval: 2.08s
Select 1 and click 'View Requisition'

18s

  • GET /requisitions/:id - 14.51s
  • GET /statusMessages - 2.03s

31s

  • GET /requisitions/:id - 14.75s
  • GET /statusMessages - 2.02s

34s

  • GET /requisitions/:id - 14.40s
  • GET /statusMessages - 2.01s

31s

  • GET /requisitions/:id - 14.39s
  • GET /statusMessages - 2.01s
12s36s13s
Click 'Approve' (opens modal)ImmediateImmediateImmediateImmediateimmediateimmediateimmediate
Click 'Approve' in modal

36s

  • PUT /requisitions/:id - 30.94s
  • POST /requisitions/:id/approve - 2.05s
  • GET /requisitions/requisitionsForApproval: 2.03s

43s

  • PUT /requisitions/:id - 30.94s (Request sent: 15.4s, TTFB: 13.24s, download: 1.9s)
  • POST /requisitions/:id/approve - 2.05s 
  • GET /requisitions/requisitionsForApproval: 2.05s

41s

  • PUT /requisitions/:id - 30.48s (Request sent: 15.39s, TTFB: 13.15s, download: 1.9s)
  • POST /requisitions/:id/approve - 2.10s 
  • GET /requisitions/requisitionsForApproval: 2.04s

53s

  • PUT /requisitions/:id - 31.84s (Request sent: 16.14s, TTFB: 13.65s, download: 2.05s)
  • POST /requisitions/:id/approve - 11.55s 
  • GET /requisitions/requisitionsForApproval: 2.05s

20s

PUT 12s, with request sent 3s.

Approve 5s.

30s

  • PUT /requisitions/:id - 12.35s (Request sent: 2.59s, TTFB: 7.32s, download: 2.43s)
  • POST /requisitions/:id/approve - 7.07s
  • GET /requisitions/requisitionsForApproval: 2.06s

25s

  • PUT 12.71s (Request sent 2.60s, TTFB 2.43s, Download 2.43s)
  • /approve 8.44s (TTFB)
  • /requisitionsForApproval 2.01s
Total61s87s87s95s38s1m 22s43s
Batch Approve






Navigate to Requisitions > Approve



3s

Filter by Program and click 'Search'



5s

Select All 10 requisitions and click 'View Selected Requisitions'



7s

Click 'Approve' (opens modal)



immediate

Click 'Approve' in modal



89s

Saving took 48s.

Approving took 39s.



Total



104s

Convert to OrderConvert to OrderConvert to Order





User: superuser

Convert 1 requisition - Essential Meds in Lilongwe DHO Pharmacy (271 line items) same requisition as for approve
Convert 8 requisitions - Essential Meds in Balaka DHO Pharmacy (271 line items)

User: superuser

Convert 1 requisition - Essential Meds in Dowa DHO Pharmacy (271 line items) same requisition as for approve
Convert 8 requisitions - Essential Meds in Dowa DHO Pharmacy (271 line items)



User: superuser

Convert 1 requisition - Essential Meds in Lilongwe DHO Pharmacy (271 line items) same requisition as for approve
Convert 8 requisitions - Essential Meds in Balaka DHO Pharmacy (271 line items)

User: superuser

Convert 1 requisition - Essential Meds in Lilongwe Airbase Health Centre (149 line items)
Convert 8 requisitions (all available)

User: superuser

Convert 1 requisition - Essential Meds in Lilongwe Airbase Health Centre (149 line items)
Convert 8 requisitions (all available)

Navigate to Requisitions > Convert to Order

Convert 1 requisition - 3s

  • /requisitions/requisitionsForConvert: 2.82s

Convert 8 requisitions - 8s

  • /requisitions/requisitionsForConvert: 2.83s


9 requisitions for convert to order:  8s
  • /requisitions/requisitionsForConvert:  2.74s


3s

9 requisitions for convert to order: 11s

  • /requisitions/requisitionsForConvert:  2.47s
3s
Select 1, Select a Warehouse, and click 'Convert to Order' (open modal)

1 requisition - Immediate

8 requisitions - Immediate

1 requisition - 1s

8 requisitions - 1s



immediateimmediateimmediate
Click 'OK' in modal

Convert 1 requisition - 8s

  • POST /convertToOrder - 4.25s
  • GET /requisitions/requisitionsForConvert - 2.81s

Convert 8 requisitions - 60s

  • POST /convertToOrder - 50.67s
  • GET /requisitions/requisitionsForConvert - 2.45s

Convert 1 requisition - 31s

  • POST /convertToOrder - 22.79s  (TTFB: 22.76s)
  • GET /requisitions/requisitionsForConvert - 2.74s

Convert 8 requisitions - 36s

  • POST /convertToOrder - 18.95s (TTFB: 18.92s)
  • GET /requisitions/requisitionsForConvert - 6.03s (TTFB: 2.51s, Download: 3.52)


Convert 1 requisition (Lilongwe DHO Pharmacy) - 5s

Convert 8 requisitions - 26s (this one can vary based on facilities for the 8 requisitions)

Convert 1 requisition (Lilongwe Airbase Health Centre) - 6s

Convert 8 requisitions - 20s

Convert 1 requisition - 5s

  • POST /convertToOrder - 2.04s  (TTFB: 1.44s)
  • GET /requisitions/requisitionsForConvert - 2.15s
Total1 requisition - 11s,  8 requisition - 68s1 requisition - 40s,    8 requisition - 45s

1 requisition - 8s,    8 requisition - 29s1 requisition - 17s, 8 requisition - 31s

Release Testing for 3.4

Story

3.2.1

26 April 2018

3.2.1

26 April 2018

3.2.1

26 April 2018

3.2.1

26 April 2018

3.4.0

19 July 2018

3.4.0

19 July 2018


Nikodem

slow 3g, 6x cpu throttling slowdown

dhitale

perftest.openlmis.org

Sebastian Brudziński

slow 3g, 6x cpu throttling slowdown

dowa

perftest.openlmis.org

Sebastian Brudziński

slow 3g, 6x cpu throttling slowdown

dowa

perftest.openlmis.org

Nikodem Graczewski

slow 3g, 6x cpu throttling

dowa

perftest.openlmis.org

Mateusz Kwiatkowski

slow 3g, 6x cpu throttling

dhitale

perftest.openlmis.org

Klaudia Pałkowska

slow 3g, 6x CPU throttling

dhitale

perftest.openlmis.org

Application Start Up
This reflects a person downloading OpenLMIS in a browser for the first time and logging in
Application Start Up
This reflects a person downloading OpenLMIS in a browser for the first time and logging in
Application Start Up
This reflects a person downloading OpenLMIS in a browser for the first time and logging in




Initial UI load

22s

  • index.html
  • openlmis.css
  • openlmis.js 17s (546KB)
  • and others still similar

20s

  • index.html
  • openlmis.css   5.27s
  • openlmis.js  14.67s   (546KB)
  • and others


21s

  • openlmis.css - 5.23s, 80.9kB
  • openlmis.js - 18.41s, 651kB

21s

  • openlmis.css - 5.28s, 80.9kB
  • openlmis.js - 16.76s, 651kB
Login
End of time is when CPU usage drops

8s

  • GET /token - 2.03s
  • GET /currencySettings - 2.03s
  • GET /facilities/minimal - 2.89s
  • GET /users/:id - 2.07s
  • GET /users/:id/permissionStrings - 2.57s
  • GET /users/:id/programs - 2.02s

13s

  • GET /token - 2.03s
  • GET /currencySettings - 2.01s
  • GET /facilities/minimal - 2.71s
  • GET /users/:id - 2.06s
  • GET /users/:id/permissionStrings - 2.20s
  • GET /users/:id/programs - 4.73s


16s

  • GET /token - 2.04s
  • GET /currencySettings - 2.02s
  • GET /facilities/minimal - 2.58s,
  • GET /facilities/:id - 2.02s
  • GET /users/:id - 2.01s
  • GET /contactDetails/:id - 2.04s
  • GET /users/:id/permissionStrings - 2.31s
  • GET /users/:id/programs - 4.01s

16.5s

  • GET /token - 2.03s
  • GET /currencySettings - 2.01s
  • GET /facilities/minimal - 2.57s,
  • GET /facilities/:id - 2.03s
  • GET /users/:id - 2.01s
  • GET /contactDetails/:id - 2.03s
  • GET /users/:id/permissionStrings - 2.24s
  • GET /users/:id/programs - 2.01s
Total30s33s

37s37.5s
Initiate RequisitionInitiate RequisitionInitiate Requisition

Initiate RequisitionInitiate Requisition

Essential Meds in Lilongwe DHO Pharmacy (271 line items)Essential Meds in Dowa DHO Pharmacy (271 line items)

Essential Meds in Lilongwe DHO Pharmacy (271 line items)Essential Meds in Lilongwe DHO Pharmacy (271 line items)
Navigate to Requisitions > Create/Authorize

Immediate

Immediate

immediateimmediate
Select Facility and Program, Regular type & Click 'Search'

4s

  • GET /requisitions/periodsForInitiate - 2.02s
  • GET /requisitions/search - 3.39s

4s

  • GET /requisitions/periodsForInitiate - 2.03s
  • GET /requisitions/search - 3.08s


4s

  • GET /requisitions/periodsForInitiate - 3.25s

3s

  • GET /requisitions/periodsForInitiate - 2.02s
Click Proceed for latest 'Not yet started' period

40s

  • POST /requisitions/initiate - 38.60s

25s

  • POST /requisitions/initiate - 19.45s


29s

  • POST /requisitions/initiate - 28.48s (TTFB 6.45s, download 22.00s)

30s

  • POST /requisitions/initiate - 26.96s (TTFB 6.45s, download 22.00s)
Total44s29s

33s33s
Sync RequisitionSync RequisitionSync Requisition

Sync RequisitionSync Requisition

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for initiateEssential Meds in Dowa DHO Pharmacy (271 line items) - same requisition as for initiate

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for initiateEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for initiate
Press "Sync with Server"

51s

  • PUT requisitions/ID - 31.71s (820kb upload, 97kb download)
  • GET requisitions/ID - 14.79s
  • GET statusMessages - 2.03s

68s

  • PUT requisitions/ID - 30.82s (798Kb upload; Request snt: 15.6s, TTFB: 13.24s, Download: 1.96s)
  • GET requisitions/ID - 14.79s (TTFB: 13.05s, Download: 2s)
  • GET statusMessages - 2.03s (TTFB: 2.01s)


31s

  • PUT requisitions/ID - 18.76s (138.1 kB upload; Request sent: 2.7s, TTFB: 13.53s, Download: 2.52s)
  • GET requisitions/ID - 9.58s (TTFB: 7.06s, Download: 2.52s)
  • GET statusMessages - 2.02s (TTFB: 2.01s)

28s

  • PUT requisitions/ID - 12.13s (138.1 kB upload; Request sent: 2.69s, TTFB: 6.91s, Download: 2.52s)
  • GET requisitions/ID - 9.20s (TTFB: 6.68s, Download: 2.52s)
  • GET statusMessages - 2.02s (TTFB: 2.01s)
Total51s68s

31s28s
Submit RequisitionSubmit RequisitionSubmit Requisition

Submit RequisitionSubmit Requisition

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for syncEssential Meds in Dowa DHO Pharmacy (271 line items) - same requisition as for sync

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for syncEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for sync
Press "Submit" (opens modal)ImmediateImmediate

immediateimmediate
Confirm Submit in modal

40s

  • PUT /requisitions/:id - 32.14s
  • POST /requisitions/:id/submit - 2.04s
  • GET requisitions/:id/periodsForInitiate - 2.02s
  • GET requisitions/search - 3.51s

46s

  • PUT /requisitions/:id - 31.47s  (Request sent: 16.03s; TTFB: 13.12s; Content download: 1.94s)
  • POST /requisitions/:id/submit - 2.05s (TTFB: 2.02s)
  • GET requisitions/:id/periodsForInitiate - 2.02s  (TTFB: 2.01s)
  • GET requisitions/search - 3.02s (TTFB: 2.60s; download: 0.2s)


18s

  • PUT /requisitions/:id - 12.77s  (Request sent: 2.87s; TTFB: 7.41s; Content download: 2.49s)
  • POST /requisitions/:id/submit - 2.09s (TTFB: 2.08s)
  • GET requisitions/:id/periodsForInitiate - 2.01s  (TTFB: 2.01s)

18s

  • PUT /requisitions/:id - 12.58s  (Request sent: 2.86s; TTFB:6.86s; Content download: 2.49s)
  • POST /requisitions/:id/submit - 2.05s (TTFB: 2.02s)
  • GET requisitions/:id/periodsForInitiate - 2.02s  (TTFB: 2.02s)
Total40s46s

18s18s
Authorize RequisitionAuthorize RequisitionAuthorize Requisition

Authorize RequisitionAuthorize Requisition

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for submitEssential Meds in Dowa DHO Pharmacy (271 line items) - same requisition as for initiate

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for submitEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for submit
Navigate to Requisitions > Create/AuthorizeImmediateImmediate

immediateimmediate
Select Program at My Facility with Type Regular and click Search

5s

  • GET /requisitions/periodsForInitiate - 2.01s
  • GET /requisitions/search - 3.56s

7s

  • GET /requisitions/periodsForInitiate - 2.02s
  • GET /requisitions/search - 3.02s


3s
  • GET /requisitions/periodsForInitiate - 2.38s
3s
  • GET /requisitions/periodsForInitiate - 2.03s
Click Proceed for 'Submitted' requisition

20s

  • GET /requisitions/:id - 15.05s
  • GET /statusMessages - 2.01s

34s

  • GET /requisitions/:id - 14.46s
  • GET /statusMessages - 2.03s


12s

  • GET /requisitions/:id - 9.32s
  • GET /statusMessages - 2.01s

13s

  • GET /requisitions/:id - 9.24s
  • GET /statusMessages - 2.02s
Click 'Authorize' (opens modal)ImmediateImmediate

immediateimmediate
Click 'Authorize' in modal

50s

  • PUT /requisitions/:id - 31.18s
  • POST /requisitions/:id/authorize - 13.29s
  • GET /requisitions/periodsForInitiate - 2.02s
  • GET /requisitions/search - 3.37s

56s

  • PUT /requisitions/:id - 30.57s  (Request sent: 15.62s, TTFB: 12.98s, Download: 1.93s)
  • POST /requisitions/:id/authorize - 12.47s  (TTFB: 12.45s)
  • GET /requisitions/periodsForInitiate - 2.03s
  • GET /requisitions/search - 2.86s


21s

  • PUT /requisitions/:id - 12.06s  (Request sent: 2.86s, TTFB: 6.71s, Download: 2.49s)
  • POST /requisitions/:id/authorize - 5.94s  (TTFB: 5.92s)
  • GET /requisitions/periodsForInitiate - 2.02s

22s

  • PUT /requisitions/:id - 12.12s  (Request sent: 2.86s, TTFB: 6.77s, Download: 2.49s)
  • POST /requisitions/:id/authorize - 5.64s  (TTFB: 5.62s)
  • GET /requisitions/periodsForInitiate - 2.01s
Total75s97s

36s38s
Approve Requisition (Single)Approve Requisition (Single)Approve Requisition (Single)Approve Requisition (Single)
Approve Requisition (Single)Approve Requisition (Single)

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for authorizeEssential Meds in Dowa DHO Pharmacy (271 line items) - same requisition as for initiateEssential Meds in Dowa DHO Pharmacy (271 line items) - same requisition as for initiate
Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for authorizeEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for authorize
Navigate to Requisitions > Approve

4s

  • GET /requisitions/requisitionsForApproval: 2.04s

6s   (10 requisitions out of 159 total)

  • GET /requisitions/requisitionsForApproval: 2.03s

6s   (10 requisitions out of 159 total)

  • GET /requisitions/requisitionsForApproval: 2.04s

5s

  • GET /requisitions/requisitionsForApproval: 2.03s

2s

  • GET /requisitions/requisitionsForApproval: 2.07s

2.5s

  • GET /requisitions/requisitionsForApproval: 2.09s
Filter by Program and click 'Search'

3s

  • GET /requisitions/requisitionsForApproval: 2.04s

7s  (10 requisitions out of 38 total)

  • GET /requisitions/requisitionsForApproval: 2.05s

6s  (10 requisitions out of 38 total)

  • GET /requisitions/requisitionsForApproval: 2.07s

6s

  • GET /requisitions/requisitionsForApproval: 2.06s

3s

  • GET /requisitions/requisitionsForApproval: 2.10s

3s

  • GET /requisitions/requisitionsForApproval: 2.09s
Select 1 and click 'View Requisition'

18s

  • GET /requisitions/:id - 14.51s
  • GET /statusMessages - 2.03s

31s

  • GET /requisitions/:id - 14.75s
  • GET /statusMessages - 2.02s

34s

  • GET /requisitions/:id - 14.40s
  • GET /statusMessages - 2.01s

31s

  • GET /requisitions/:id - 14.39s
  • GET /statusMessages - 2.01s

12s

  • GET /requisitions/:id - 9.02s
  • GET /statusMessages - 2.02s

14s

  • GET /requisitions/:id - 8.99s
  • GET /statusMessages - 2.03s
Click 'Approve' (opens modal)ImmediateImmediateImmediateImmediateimmediateimmediate
Click 'Approve' in modal

36s

  • PUT /requisitions/:id - 30.94s
  • POST /requisitions/:id/approve - 2.05s
  • GET /requisitions/requisitionsForApproval: 2.03s

43s

  • PUT /requisitions/:id - 30.94s (Request sent: 15.4s, TTFB: 13.24s, download: 1.9s)
  • POST /requisitions/:id/approve - 2.05s 
  • GET /requisitions/requisitionsForApproval: 2.05s

41s

  • PUT /requisitions/:id - 30.48s (Request sent: 15.39s, TTFB: 13.15s, download: 1.9s)
  • POST /requisitions/:id/approve - 2.10s 
  • GET /requisitions/requisitionsForApproval: 2.04s

53s

  • PUT /requisitions/:id - 31.84s (Request sent: 16.14s, TTFB: 13.65s, download: 2.05s)
  • POST /requisitions/:id/approve - 11.55s 
  • GET /requisitions/requisitionsForApproval: 2.05s

20s

  • PUT /requisitions/:id - 11.96s (Request sent: 2.56s, TTFB: 6.91s, download: 2.49s)
  • POST /requisitions/:id/approve - 6.58s 
  • GET /requisitions/requisitionsForApproval: 2.01s

21s

  • PUT /requisitions/:id - 11.93s (Request sent: 2.61s, TTFB: 6.88s, download: 2.43s)
  • POST /requisitions/:id/approve - 6.56s 
  • GET /requisitions/requisitionsForApproval: 2.08s
Total61s87s87s95s37s40.5s
Batch Approve





Navigate to Requisitions > Approve





Filter by Program and click 'Search'





Select All 10 requisitions and click 'View Selected Requisitions'





Click 'Approve' (opens modal)





Click 'Approve' in modal





Total





Convert to OrderConvert to OrderConvert to Order

Convert to OrderConvert to Order

User: superuser

Convert 1 requisition - Essential Meds in Lilongwe DHO Pharmacy (271 line items) same requisition as for approve
Convert 8 requisitions - Essential Meds in Balaka DHO Pharmacy (271 line items)

User: superuser

Convert 1 requisition - Essential Meds in Dowa DHO Pharmacy (271 line items) same requisition as for approve
Convert 8 requisitions - Essential Meds in Dowa DHO Pharmacy (271 line items)



User: superuser

Convert 1 requisition - Essential Meds in Lilongwe DHO Pharmacy (271 line items) same requisition as for approve
Convert 8 requisitions - Essential Meds in Balaka DHO Pharmacy (271 line items)

User: superuser

Convert 1 requisition - Essential Meds in Lilongwe DHO Pharmacy (271 line items) same requisition as for approve
Convert 8 requisitions - Essential Meds in Lilongwe DHO Pharmacy (271 line items)

Navigate to Requisitions > Convert to Order

Convert 1 requisition - 3s

  • /requisitions/requisitionsForConvert: 2.82s

Convert 8 requisitions - 8s

  • /requisitions/requisitionsForConvert: 2.83s


9 requisitions for convert to order:  8s
  • /requisitions/requisitionsForConvert:  2.74s


4s

  • requisitions/requisitionsForConvert:  3.86s

3s

  • requisitions/requisitionsForConvert: 2.25s
Select 1, Select a Warehouse, and click 'Convert to Order' (open modal)

1 requisition - Immediate

8 requisitions - Immediate

1 requisition - 1s

8 requisitions - 1s



immediateimmediate
Click 'OK' in modal

Convert 1 requisition - 8s

  • POST /convertToOrder - 4.25s
  • GET /requisitions/requisitionsForConvert - 2.81s

Convert 8 requisitions - 60s

  • POST /convertToOrder - 50.67s
  • GET /requisitions/requisitionsForConvert - 2.45s

Convert 1 requisition - 31s

  • POST /convertToOrder - 22.79s  (TTFB: 22.76s)
  • GET /requisitions/requisitionsForConvert - 2.74s

Convert 8 requisitions - 36s

  • POST /convertToOrder - 18.95s (TTFB: 18.92s)
  • GET /requisitions/requisitionsForConvert - 6.03s (TTFB: 2.51s, Download: 3.52)


Convert 1 requisition - 3s

  • POST /batchReleases - 2.25s  (TTFB: 2.25s)

Convert 8 requisitions - 21s

  • POST /batchReleases - 21.01s (TTFB: 20.98s)

Convert 1 requisition - 3s

  • POST /batchReleases - 2.05s  (TTFB: 2.02s)

Convert 8 requisitions - 21s

  • POST /batchReleases - 4.48s (TTFB: 4.42s)
Total1 requisition - 11s,  8 requisition - 68s1 requisition - 40s,    8 requisition - 45s

1 requisition - 7s,    8 requisition - 25s1 requisition - 6s,    8 requisition - 24s
Story

3.4.0

7 August 2018

3.4.0

8 August 2018

3.4.0

8 August 2018

3.4.0

9 August 2018


Nikodem Graczewski

slow 3g, 6x cpu throttling

dhitale

perftest.openlmis.org

Klaudia Pałkowska

slow 3g, 6x CPU throttling

dhitale

perftest.openlmis.org

Mateusz Kwiatkowski

slow 3g, 6x CPU throttling

dhitale

perftest.openlmis.org

Paulina Mironiuk

slow 3g, 6x CPU throttling

dhitale

perftest.openlmis.org

Application Start Up
This reflects a person downloading OpenLMIS in a browser for the first time and logging in




Initial UI load

21s

  • openlmis.css - 5.12s, 81.0KB
  • openlmis.js - 18.59s, 652KB

21s

  • openlmis.css - 5.05s, 81.0KB
  • openlmis.js - 16.68s, 652KB

22s

  • openlmis.css - 5.23s, 80.9KB
  • openlmis.js - 18.70s, 651KB

22s

  • openlmis.css - 5.37s, 81KB
  • openlmis.js - 18.73s, 652KB
Login
End of time is when CPU usage drops

17s

  • GET /token - 2.04s
  • GET /currencySettings - 2.02s
  • GET /facilities/minimal - 2.57s,
  • GET /facilities/:id - 2.00s
  • GET /users/:id - 2.01s
  • GET /userContactDetails/:id - 2.04s
  • GET /users/:id/permissionStrings - 2.31s
  • GET /users/:id/programs - 2.02s

17s

  • GET /token - 2.05s
  • GET /currencySettings - 2.01s
  • GET /facilities/minimal - 2.57s,
  • GET /facilities/:id - 2.01s
  • GET /users/:id - 2.03s
  • GET /userContactDetails/:id - 2.05s
  • GET /users/:id/permissionStrings - 2.24s
  • GET /users/:id/programs - 2.01s

16s

  • GET /token - 2.05s
  • GET /currencySettings - 2.02s
  • GET /facilities/minimal - 2.58s,
  • GET /facilities/:id - 2.03s
  • GET /users/:id - 2.02s
  • GET /userContactDetails/:id - 2.04s
  • GET /users/:id/permissionStrings - 2.25s
  • GET /users/:id/programs - 2.03s

21s

  • GET /token - 2.05s
  • GET /currencySettings - 2.04s
  • GET /facilities/minimal - 2.56s,
  • GET /facilities/:id - 6.85s
  • GET /users/:id - 2.01s
  • GET /userContactDetails/:id - 2.04s
  • GET /users/:id/permissionStrings - 2.32s
  • GET /users/:id/programs - 2.03s
Total38s38s38s43s
Initiate RequisitionInitiate RequisitionInitiate RequisitionInitiate RequisitionInitiate Requisition

Essential Meds in Lilongwe DHO Pharmacy (271 line items)Essential Meds in Lilongwe DHO Pharmacy (271 line items)Essential Meds in Lilongwe DHO Pharmacy (271 line items)Essential Meds in Lilongwe DHO Pharmacy (271 line items)
Navigate to Requisitions > Create/Authorizeimmediateimmediateimmediateimmediate
Select Facility and Program, Regular type & Click 'Search'

4s

  • GET /requisitions/periodsForInitiate - 2.62s

3s

  • GET /requisitions/periodsForInitiate - 2.01s

3s

  • GET /requisitions/periodsForInitiate - 2.03s

3s

  • GET /requisitions/periodsForInitiate - 2.03s
Click Proceed for latest 'Not yet started' period

31s

  • POST /requisitions/initiate - 34.48s (TTFB 12.45s, download 22.03s)

32s

  • POST /requisitions/initiate - 28.29s (TTFB 6.27s, download 22.00s)

29s

  • POST /requisitions/initiate - 27.20s (TTFB 5.19s, download 22.00s)

35s

  • POST /requisitions/initiate - 33.04s (TTFB 11.01s, download 22.00s)
Total35s35s31s38s
Sync RequisitionSync RequisitionSync RequisitionSync RequisitionSync Requisition

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for initiateEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for initiateEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for initiateEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for initiate
Press "Sync with Server"

28s

  • PUT requisitions/ID - 13.13 (130KB upload; Request sent: 2.88s, TTFB: 7.68s, Download: 2.58s)
  • GET requisitions/ID - 9.92s (TTFB: 7.35s, Download: 2.58s)
  • GET statusMessages - 2.01s (TTFB: 2.01s)

35s

  • PUT /requisitions/:id - 18.59s (146.5KB upload; Request sent: 2.86s, TTFB: 13.21s, Download: 2.52s)
  • GET /requisitions/:id - 9.65s (TTFB: 7.13s, Download: 2.52s)
  • GET /statusMessages - 2.02s (TTFB: 2.01s)

27s

  • PUT /requisitions/:id - 12.86s (146.5KB upload; Request sent: 2.86s, TTFB: 7.47s, Download: 2.52s)
  • GET /requisitions/:id - 9.68s (TTFB: 7.16s, Download: 2.52s)
  • GET /statusMessages - 2.01s (TTFB: 2.01s)

28s

  • PUT /requisitions/:id - 13.05s (127KB upload; Request sent: 2.84s, TTFB: 7.67s, Download: 2.52s)
  • GET /requisitions/:id - 9.48s (TTFB: 6.96s, Download: 2.52s)
  • GET /statusMessages - 2.03s (TTFB: 2.03s)
Total28s35s27s28s
Submit RequisitionSubmit RequisitionSubmit RequisitionSubmit RequisitionSubmit Requisition

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for syncEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for syncEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for syncEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for sync
Press "Submit" (opens modal)immediateimmediateimmediateimmediate
Confirm Submit in modal

19s

  • PUT /requisitions/:id - 13.73s  (Request sent: 3.03s; TTFB: 8.14s; Content download: 2.55s)
  • POST /requisitions/:id/submit - 2.08s (TTFB: 2.08s)
  • GET requisitions/:id/periodsForInitiate - 2.02s  (TTFB: 2.02s)

19s

  • PUT /requisitions/:id - 13.39s  (Request sent: 3.03s; TTFB: 7.50s; Content download: 2.49s)
  • POST /requisitions/:id/submit - 2.05s (TTFB: 2.02s)
  • GET /requisitions/:id/periodsForInitiate - 2.03s  (TTFB: 2.03s)

18s

  • PUT /requisitions/:id - 13.13s  (Request sent: 3.02s; TTFB: 7.62s; Content download: 2.49s)
  • POST /requisitions/:id/submit - 2.03s (TTFB: 2.02s)
  • GET /requisitions/:id/periodsForInitiate - 2.01s  (TTFB: 2.01s)

19s

  • PUT /requisitions/:id - 12.87s (Request sent: 3.02s; TTFB: 7.32s; Content download: 2.52s)
  • POST /requisitions/:id/submit - 3.20s (TTFB: 3.19s)
  • GET /requisitions/:id/periodsForInitiate - 2.01s  (TTFB: 2.00s)
Total19s19s18s19s
Authorize RequisitionAuthorize RequisitionAuthorize RequisitionAuthorize RequisitionAuthorize Requisition

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for submitEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for submitEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for submitEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for submit
Navigate to Requisitions > Create/Authorizeimmediateimmediateimmediateimmediate
Select Program at My Facility with Type Regular and click Search3s
  • GET /requisitions/periodsForInitiate - 2.02s
3s
  • GET /requisitions/periodsForInitiate - 2.03s
3s
  • GET /requisitions/periodsForInitiate - 2.03s
3s
  • GET /requisitions/periodsForInitiate - 2.02s
Click Proceed for 'Submitted' requisition

14s

  • GET /requisitions/:id - 9.97s
  • GET /statusMessages - 2.01s

17s

  • GET /requisitions/:id - 9.52s
  • GET /statusMessages - 2.03s

13s

  • GET /requisitions/:id - 9.68s
  • GET /statusMessages - 2.02s

18s

  • GET /requisitions/:id - 9.28s
  • GET /statusMessages - 2.01s
Click 'Authorize' (opens modal)immediateimmediateimmediateimmediate
Click 'Authorize' in modal

23s

  • PUT /requisitions/:id - 13.16s  (Request sent: 3.08s, TTFB: 7.50s, Download: 2.58s)
  • POST /requisitions/:id/authorize - 6.64s  (TTFB: 6.62s)
  • GET /requisitions/periodsForInitiate - 2.02s

23s

  • PUT /requisitions/:id - 12.86s  (Request sent: 3.04s, TTFB: 7.32s, Download: 2.49s)
  • POST /requisitions/:id/authorize - 5.82s  (TTFB: 5.80s)
  • GET /requisitions/periodsForInitiate - 2.01s

21s

  • PUT /requisitions/:id - 12.81s  (Request sent: 3.02s, TTFB: 7.29s, Download: 2.49s)
  • POST /requisitions/:id/authorize - 5.98s  (TTFB: 5.95s)
  • GET /requisitions/periodsForInitiate - 2.03s

24s

  • PUT /requisitions/:id - 12.81s  (Request sent: 3.06s, TTFB: 6.97s, Download: 2.52s)
  • POST /requisitions/:id/authorize - 6.39s  (TTFB: 6.39s)
  • GET /requisitions/periodsForInitiate - 2.18s
Total40s43s37s45s
Approve Requisition (Single)Approve Requisition (Single)Approve Requisition (Single)Approve Requisition (Single)Approve Requisition (Single)

Essential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for authorizeEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for authorizeEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for authorizeEssential Meds in Lilongwe DHO Pharmacy (271 line items) - same requisition as for authorize
Navigate to Requisitions > Approve

3s

  • GET /requisitions/requisitionsForApproval: 2.08s

3s

  • GET /requisitions/requisitionsForApproval: 2.08s

3s

  • GET /requisitions/requisitionsForApproval: 2.09s

3s

  • GET /requisitions/requisitionsForApproval: 2.06s
Filter by Program and click 'Search'

3s

  • GET /requisitions/requisitionsForApproval: 2.10s

3s

  • GET /requisitions/requisitionsForApproval: 2.09s

3s

  • GET /requisitions/requisitionsForApproval: 2.09s

3s

  • GET /requisitions/requisitionsForApproval: 2.08s
Select 1 and click 'View Requisition'

14s

  • GET /requisitions/:id - 9.99s
  • GET /statusMessages - 2.02s

15s

  • GET /requisitions/:id - 9.49s
  • GET /statusMessages - 2.02s

13s

  • GET /requisitions/:id - 9.74s
  • GET /statusMessages - 2.02s

12s

  • GET /requisitions/:id - 9.06s
  • GET /statusMessages - 2.02s
Click 'Approve' (opens modal)immediateimmediateimmediateimmediate
Click 'Approve' in modal

28s

  • PUT /requisitions/:id - 12.81s (Request sent: 2.73s, TTFB: 7.59s, download: 2.49s)
  • POST /requisitions/:id/approve - 11.87s 
  • GET /requisitions/requisitionsForApproval: 2.03s

23s

  • PUT /requisitions/:id - 12.55s (Request sent: 2.74s, TTFB: 7.32s, download: 2.49s)
  • POST /requisitions/:id/approve - 6.99s 
  • GET /requisitions/requisitionsForApproval: 2.05s

22s

  • PUT /requisitions/:id - 12.72s (Request sent: 2.73s, TTFB: 7.53s, download: 2.46s)
  • POST /requisitions/:id/approve - 6.59s 
  • GET /requisitions/requisitionsForApproval: 2.04s

22s

  • PUT /requisitions/:id - 11.78s (Request sent: 2.78s, TTFB: 6.50s, download: 2.49s)
  • POST /requisitions/:id/approve - 6.26s 
  • GET /requisitions/requisitionsForApproval: 2.04s
Total48s44s41s40s
Batch Approve



Navigate to Requisitions > Approve



Filter by Program and click 'Search'



Select All 10 requisitions and click 'View Selected Requisitions'



Click 'Approve' (opens modal)



Click 'Approve' in modal





Total



Convert to OrderConvert to OrderConvert to OrderConvert to OrderConvert to Order

User: superuser

Convert 1 requisition - Essential Meds in Lilongwe DHO Pharmacy (271 line items) same requisition as for approve
Convert 8 requisitions - Essential Meds in Balaka DHO Pharmacy (271 line items)

User: superuser

Convert 1 requisition - Essential Meds in Lilongwe DHO Pharmacy (271 line items) same requisition as for approve
Convert 8 requisitions - Essential Meds in Lilongwe DHO Pharmacy (271 line items)

User: superuser

Convert 1 requisition - Essential Meds in Lilongwe DHO Pharmacy (271 line items) same requisition as for approve
Convert 8 requisitions - Essential Meds in Lilongwe DHO Pharmacy (271 line items)

User: superuser

Convert 1 requisition - Essential Meds in Lilongwe DHO Pharmacy (271 line items) same requisition as for approve
Convert 8 requisitions - Essential Meds in Lilongwe DHO Pharmacy (271 line items)

Navigate to Requisitions > Convert to Order

3s

  • requisitions/requisitionsForConvert:  2.68s

3s

  • requisitions/requisitionsForConvert:  2.98s

3s

  • requisitions/requisitionsForConvert:  2.25s

3s

  • requisitions/requisitionsForConvert:  2.56s
Select 1, Select a Warehouse, and click 'Convert to Order' (open modal)immediateimmediateimmediateimmediate
Click 'OK' in modal

Convert 1 requisition - 5s

  • POST /batchReleases - 2.51s  (TTFB: 2.49s)

Convert 8 requisitions - 24s

  • POST /batchReleases - 13.60s (TTFB: 13.53s)

Convert 1 requisition - 4s

  • POST /batchReleases - 2.04s  (TTFB: 2.02s)

Convert 8 requisitions - 17s

  • POST /batchReleases - 4.19s (TTFB: 4.16s)

Convert 1 requisition - 4s

  • POST /batchReleases - 2.04s  (TTFB: 2.02s)

Convert 8 requisitions - 17s

  • POST /batchReleases - 4.19s (TTFB: 4.16s)

Convert 1 requisition - 6s

  • POST /batchReleases - 3.05s  (TTFB: 3.03s)

Convert 8 requisitions - 25s

  • POST /batchReleases - 14.19s (TTFB: 14.16s)
Total1 requisition - 8s,    10 requisition - 27s1 requisition - 7s,    8 requisition - 20s1 requisition - 7s,    8 requisition - 20s1 requisition - 9s,    8 requisition - 28s

Reported Performance from Malawi

Nuran Idris (Unlicensed) reported this information in MW-529. This information is being stored here so we can find it again.

This is reported times for a user (Nuran?) Working in MW's Emergency Medicine program to approve requisitions.

StepActionDurationTotal seconds
1Select EM Search00
2First page of 10 forms appear02:06.36126.36
3Click page 202:20.28266.64
4Click page 102:02.91389.55
5Click one random form to approve - view requisition page00:19.66409.21
6Click approve02:54.75583.96
7On approve screen - click 5 random requisitions00:45.24629.2
8On batch approve screen - Click approve04:14.20883.4
9On approve screen - click 2 forms to approve00:26.71910.11
10On batch approve screen - click approve02:48.401078.51