Performance Metrics

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 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.

Overview Charts

This google document is being used to collect manual performance tests, and create these charts that detail metrics about OpenLMIS.

Performance test steps for 3.x (on Malawi dataset)

Note: these steps for performance testing are only applicable if perftest has loaded the Malawi dataset; otherwise you will not be able to use the credentials.

Steps: 

  • Use and update Chrome (current version is 66); don't use firefox
  • Clear chrome's history, application cache, etc.
  • Open dev tools, go to Performance tab, select Slow 3G and 6x CPU throttle
  • Use perftest.openlmis.org for testing
  • Use the following information to initiate, submit, authorize and approve a requisition:
    • Credentials, username:  dhitale, password: password
    • Facility: Lilongwe DHO Pharmacy, program: Essential Meds
    • Enter values ​​for 3 products in the product grid
  • Use the following information to convert requisitions to orders:
    • Credentials, username: superuser, same password
  • Enter data on another column at the end, adding the version, date, 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 at the top 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.


Performance Data Entry

This Google Spreadsheet has been created for the entry of performance metric data. Summary performance data is included on the first sheet with the more detailed timings being included on the second sheet.