Skip to end of metadata
Go to start of metadata

You are viewing an old version of this content. View the current version.

Compare with Current View Version History

« Previous Version 2 Next »

Summary

The OpenMRS Performance Test framework enables comprehensive performance testing for the OpenMRS platform. Using Gatling as its foundation, it provides a robust and user-friendly framework for simulating user load and measuring system performance under real-world conditions.

🧵 Project Size

Medium

✅ Current Implementation

Repository: openmrs/openmrs-contrib-performance-test

The project currently implements two key personas:

  1. Doctor: Conducts patient visits and related workflows

  2. Clerk: Handles patient registration processes

These scenarios run automatically through GitHub Actions as a daily task, simulating approximately 200 concurrent patients over a 3-hour period. You can view the latest test results at o3-performance.openmrs.org.

For setup instructions and test execution guidelines, refer to our README.

🌟 What You'll Be Creating

These are our main requirements for the project:

1. More Real-World Scenarios

We need to expand our test coverage to include all REST endpoints involved in essential workflows:

  • Identify critical user workflows that require performance testing

  • Implement new Gatling scenarios for these workflows

  • Make sure our testing covers all the important stuff people do daily

  • Review existing scenarios in our scenarios directory

  • Learn more about scenario implementation from our documentation

2. Bring New Characters to Life

Currently, we have just two characters in our story - doctors and clerks. But hospitals are full of amazing healthcare heroes! You'll:

  • Identify additional key personas beyond our current roles (but not many)

  • Define characteristic workflows for each new persona

  • Ensure scenarios accurately reflect real-world usage patterns

  • Learn more about personas from our documentation

3. Data Duplication Management

Current challenges with our test data:

  • We use ~250 pre-populated patients (patient database)

  • Patient UUIDs are stored in patient_uuids.csv

  • Cyclic reuse of these patients during visit scenarios creates duplicate data (e.g., allergies)

  • System responds with 400 errors for duplicate data attempts

  • More details on data generation can be found in our README

Required: Implement a solution to handle or prevent duplicate data creation during test runs.

4. Bonus Mission (if you're up for it!)

  • Deploy OpenMRS on an AWS EC2 instance that enable increased concurrent user simulation

🛠️ What You'll Need

Some Java knowledge (or any objected oriented knowledge)

Interest in performance testing

Curiosity about healthcare tech

Enthusiasm for learning!

📚 Helpful Resources

Everything you need to get started is ready:

🌈 What You'll Gain

This project offers an exceptional opportunity to:

  • Gain Real-World Healthcare Impact: Your work will directly contribute to OpenMRS, a platform used in healthcare facilities across developing countries, helping improve medical care for millions of patients.

  • Master Performance Engineering: Get hands-on experience with Gatling and learn essential performance testing skills that are highly valued in the software industry. You'll learn how to:

    • Design and implement realistic load tests

    • Analyze performance bottlenecks

    • Handle data management challenges at scale

    • Work with production-level performance metrics

  • Develop Healthcare Domain Knowledge: Understand real-world clinical workflows and how different healthcare providers interact with medical record systems – valuable experience for anyone interested in healthcare IT.

  • Work with Modern Technologies:

    • Gatling for performance testing

    • REST APIs and microservices

    • GitHub Actions for CI/CD

    • AWS cloud infrastructure (optional)

    • Database optimization techniques

  • Join an Active Open Source Community: OpenMRS has a vibrant, supportive community of developers and healthcare professionals. You'll get to collaborate with experienced mentors and contribute to meaningful discussions about healthcare software development.

👋 Ready to Make a Difference?

We're looking for enthusiastic students who want to learn while making a real impact. You don't need to know everything already - we'll help you learn along the way!

Sound exciting? We can't wait to see your application! Remember, the best candidates are those who show enthusiasm, curiosity, and a willingness to learn.

Got questions? Feel free to reach out to the community. We're here to help you succeed!

Let's make OpenMRS faster and better together!

P.S. Don't forget to check out our current implementation and try running some tests yourself before applying. It's the best way to understand what you'll be working with!

  • No labels