GSoC 2023: Extending E2E Automated Tests for the OpenMRS 3.0 RefApp
Primary mentor | @Anjula Samarasinghe |
Backup mentor | @Piumal Rathnayake |
Assigned to | @Randila Premarathne |
Abstract
The Microfrontends Team has created a new Reference Application, the “3.0 RefApp”, which represents the future of OpenMRS. It features a modern Microfrontend architecture and replaces the previous “2.x RefApp”. Students who excel in the end-to-end (E2E) testing of this project may also have the opportunity to contribute to the frontend widget and feature development for 3.0. This is because E2E testing will familiarize them with the 3.0 codebase and there is a high demand for feature development.
At present, there are already a few E2E tests running for the openmrs-esm-patient-management repository and more coverage is expected. The goal of the project is for someone to extend the E2E tests for openrms-esm-patient-chart and openmrs-esm-core using the Playwrite framework. The tests will be set up to automatically validate the user interface based on specific workflows.
Skills Needed
A fundamental knowledge of OpenMRS Microfrontends is required.
Proficiency in frontend web development, particularly with React, is highly desirable.
Prior experience with the Playwright framework is a plus, although the ability to write 1-2 simple test cases with it is sufficient. The rest can be learned during the project.
Required Skills
Typescript
Playwright
Project Rating and length
Medium
175 hours
Objectives
Overall Goal: Set up tests that automate realistic User Workflows for openrms-esm-patient-chart and openmrs-esm-core and show the squad the results, with a warning indicator on a shared Repo ReadMe so that no one misses failing tests.
The smoke tests are organized according to user workflows, reflecting a user’s perspective.
A limited number of E2E tests are performed on the happy-path user stories (when everything goes smoothly).
These tests do not cover every possible interaction or scenario. Detailed functional tests, which are beyond the scope of this E2E Workflow-based draft, are responsible for that.
Consider the transitions between different parts of the application, managed by different Microfrontends, when developing these tests.
Our goal is for business-level users to easily understand the extent of functionality coverage through reports like this, and to quickly identify areas that may need improvement.
Documentation
Detailed Project Report
Introduction
The OpenMRS 3.0 RefApp is a pivotal platform in healthcare technology, designed to streamline patient care and medical record management. The importance of robust E2E testing in healthcare applications cannot be understated. These tests simulate real user interactions, covering the entire application flow, to validate its functionality and performance.
Objectives
The primary objectives of the project were as follows:
Setting Up Repositories: This involved setting up the
openmrs-esm-patient-chart
andopenmrs-esm-core
repositories to facilitate testing.Creating E2E Tests: The project aimed to create a suite of E2E tests for various components within the
openmrs-esm-patient-chart
repository. These included functionalities like "Allergies," "Vitals," "Biometrics," "Programs," "Conditions," "Medication," and "Notes."Integration and Documentation: The E2E tests needed to be seamlessly integrated into the Continuous Integration (CI) pipeline to ensure regular testing. Additionally, thorough documentation of the testing process and results was a vital component.
Accomplishments
Repositories Setup: Both the
openmrs-esm-patient-chart
andopenmrs-esm-core
repositories were successfully configured, providing the foundation for testing.E2E Tests Implementation: A suite of E2E tests was developed for the key functionalities specified in the project objectives. These tests accurately replicated user interactions and workflows.
CI Integration: The E2E tests were seamlessly integrated into the CI pipeline, enabling automated testing during each code change.
Documentation: Comprehensive documentation was created to guide contributors in using and understanding the E2E testing suite.
Challenges Faced
GitHub Actions Issues: Initially, there were issues with GitHub actions, causing a delay in PRs. The problem was identified and resolved in collaboration with the OpenMRS community.
Data Test IDs: Implementing data test IDs for testing purposes proved to be more challenging than anticipated due to some unexpected behavior.
Dev Server Failures: Temporary failures of the development server disrupted the testing workflow, requiring quick troubleshooting.
Test Failures: After merging PRs, some test failures occurred due to incorrectly located locators within the E2E tests. This necessitated debugging and adjustment.
Learning and Growth
The challenges presented numerous learning opportunities, enhancing skills in troubleshooting, collaboration, and problem-solving. The project provided hands-on experience with TypeScript, Playwright, and E2E testing methodologies.
Conclusion
In conclusion, the project "Extending E2E Automated Tests for OpenMRS 3.0 RefApp" has been a fulfilling journey of growth and learning. The accomplishments achieved, challenges overcome, and skills acquired during this project have not only contributed to the RefApp's reliability but have also enriched the developer's expertise. The OpenMRS community's guidance and collaboration have been instrumental in making this project a success.
Weekly Reports
Issues
Issue Number | Issue Link | Pull Request | Status |
---|---|---|---|
| Merged | ||
| Merged | ||
| Write E2E test to add medication and delete medication - Patient Chart | In Progress | |
| Write E2E test for add vitals and biometrics - Patient Chart | Merged | |
| Write E2E tests for add, edit, and delete conditions - Patient chart | Merged | |
| Merged | ||
| Removed | ||
| Merged | ||
Merged |