Top Ten List
- Speed up searches (TRUNK-1750)
- Search for patient by ID (TRUNK-1616) *not yet measured*
- Searching for a Provider (TRUNK-1664) *not yet measured*
- Searching for the location (TRUNK-1665) *not yet measured*
- Searching for concepts (TRUNK-1663) *not yet measured*
- Speed up the Cohort Builder (RCM-21) *not yet measured*
- Speed up ?HTML Form Entry (HTML-58) *not yet measured*
- Speed up and improve page loading (TRUNK-1751)
- Patient pages occasionally loading improperly (TRUNK-1621) -- will not measure
- Speed up loading of pages (TRUNK-28) -- will not measure
- Speed up "Edit Encounter" page (TRUNK-1740)
- Speed up the patient dashboard (TRUNK-1667) *not yet measured*
- Speed up schema design page (TRUNK-1623) *not yet measured*
- Speed up modules by caching JavaScript files (TRUNK-1613)
- Speed up reporting (TRUNK-1752)
- Data exports (RCM-20) *not yet measured*
- BIRT Reports (BIRT-30) *not yet measured*
- Reporting Module (TRUNK-1754) *not yet measured*
- Speed up workflows (TRUNK-1753) -- will not measure
- Enhanced caching (TRUNK-434) *not yet measured*
We will build a module for 1.8 performance testing to isolate widgets/features for testing purposes. (TRUNK-1766)
Suggestions
- Javascript files provided by modules are not cached? (probably fixable, medium priority) - TRUNK-1613
- It takes a long time for the patient dashboard to load after you click on a name on the search page (fixable, high priority) - TRUNK-1667
- TODO: Need explicit targets for performance improvement (either existing features known to be inefficient OR hints from profiling)
- FYI – Slowness from too many infopath forms fixedin formentry module 4.5.3
- Using cohort builder (probably fixable, but needs investigation, medium priority)
- Searching the list of Patients having observations MALARIA<sup>archive:1</sup> TRUNK-1618
- Find the list of patient enrolled in a program<sup>archive:2</sup> - TRUNK-1619
- Patients having an encounter created for them
- Searching for Admission diagnosis in the past year
- Data exports (using old framework) (RCM-20, low priority)
- TODO: get a real data export that is slow
- TODO: Jeremy will provide a data export that is used with the anonymized data set
- Patient pages occasionally loading improperly - the top summary bar loads but none of the tab data shows up when the page is done loading. After refreshing a few times, the data shows up. (unsure on fixability, high priority) - TRUNK-1621
- TODO: replicate the error
- NOTE: This could be fixed by replacing DOJO widgets with jquery widgets (TRUNK-1652 below)
- BIRT Reports are slow (documentation problem) - BIRT-30
- HTML Forms, especially complex ones, can take several seconds to load. (have example, high priority) - HTML-58
- Linking mother to child on encounter forms is a slow mainly due to the number of steps involved - (Requires UI improvements rather than Performance)
- TODO: Fixed? Jeremy?
- Searching for the location on an infopath form taskpane - (TRUNK-1665)
- Searching for a Provider - (TRUNK-1664)
- Searching for concepts (e.g., in concept search widget of FormEntry taskpane) - (TRUNK-1663)
- Improve workflow when adding a new program and state (TRUNK-22, easy, medium priority)
- Improve workflow when ending a program with a terminal state (TRUNK-24, easy, medium priority)
- Improve workflow when editing drug orders (TRUNK-25)
- Generating data sets in the new reporting framework
- TODO: Need a specific example if we're going to work on this one for 1.8
- It takes long time to load the schema in the Schema Design page. (high priority) - TRUNK-1623
- Development is very slow: - TRUNK-1666
- Reloading modules can take many minutes if there are many deployed with dependencies, even if only one class in one module changes
- Reduce number of requests between browser and server - (TRUNK-34)
- Convert the dojo widgets to jquery widgets - (TRUNK-1652)
- Support for multi level database caching - (TRUNK-434)
Voted off the island
The following are too ambiguous or the solution is not clear/explicit enough for targeting 1.8.
- Loading InfoPath forms (probably unfixable)
- TODO: Need more details about /when/ the slowdown happens. After click and before "open/save as" comes up? After clicking "open in infopath" and before the page is fully shown?
References
Searching the list of Patients having observations MALARIA
SELECT given_name, family_name,ROUND(DATEDIFF(NOW(),birthdate)/365) as age, gender FROM `obs`, patient, person, person_name WHERE `value_coded` = 123 AND obs.person_id=person_name.person_id AND obs.voided=0 AND patient.voided=0 AND patient.patient_id=obs.person_id AND person.person_id=obs.person_id GROUP BY patient_id LIMIT 0, 300
Find the list of patient enrolled in a program
SELECT given_name, family_name,ROUND(DATEDIFF(NOW(),birthdate) /365) as age, gender FROM `patient_program`, patient, person, person_name WHERE program_id=6 AND patient_program.patient_id=person_name.person_id AND patient_program.voided=0 AND patient.voided=0 AND patient.patient_id=patient_program.patient_id AND person.person_id=patient_program.patient_id GROUP BY patient.patient_id LIMIT 0, 300
Functional/Performance Test Suite for OpenMRS
Repository
http://svn.openmrs.org/openmrs-contrib/performance-benchmark/
Pre-requisites
- Java 1.6 SDK
- Maven (http://maven.apache.org)
- Firefox
- A deployed version of openmrs web app (at a host that you can specify below)
== Pre-requisites
* Java 1.6 SDK
* Maven (http://maven.apache.org)
* Firefox
* A deployed version of openmrs web app (at a host that you can specify below)
Usage
Running tests on default localhost port 8080
$ ./test.sh -u <username> -p <password>
Running tests on a non-default host.
$ ./test.sh -h <hostname> -o <port> -u <username> -p <password>
Running with profiling options (currently integrates with a running version of yourkit agent at the server side)
$ ./test.sh -u <username> -p <password> -c
Running all tests (including the tests specific for modules)
$ ./test.sh -u <username> -p <password> -a
Running all tests (including the tests specific for modules)
$ ./test.sh -u <username> -p <password> -a
Running an individual test class (it must be inside org.openmrs.test package). The argument must not include the package qualifier.
$ ./test.sh -u <username> -p <password> -t <TestClassName>
The connection.properties file
You can provide a connection.properties file in the project home directory where all connection attributes (like username, password, host etc) can be mentioned. A sample file connection.properties.sample is provided. Once a connection.properties file is created you need to enter them on the command line while running test.sh
The input.properties file
Parameters for tests can be modified in the input.properties file.
Note: Currently all the parameters have been set for use with the a test data set which is available at
http://wiki.openmrs.org/pages/viewpageattachments.action?pageId=3342470&metadataLink=true
Check the input.properties for more info