5 minutes reading time (1011 words)

Testing Joomla made easy

March-Testing

Charvi Mehra, second year undergrad student at the Cluster Innovation Centre, Delhi University, India, has been contributing to Joomla since 2022, and Joomla was her first open source organization. In this article she describes her work on a project that makes testing new Joomla releases super efficient, easy and, yes, you’re reading this correctly: fun!

The start 

I first got involved with Joomla as a way to take part in Google Summer of Code, but unfortunately, we didn’t make it this year. But the whole process made me realize how much I enjoyed helping and learning this way. At the end of my semester, we were given a choice between completing an internship or embarking on a project. This seemed like the perfect way to continue my involvement with Joomla while also earning the necessary credits. I approached Sigrid Gramlinger, the production department coordinator, for the same. She introduced me to Benjamin Trenkle, my project mentor, and we worked together with Martina Scholz on our project.

The problem and the solution 

Imagine this every six Tuesdays, a fresh Joomla update releases, you download it, set up a testing environment, and spend countless hours clicking through menus, forms, and every corner of the CMS, hoping to find a bug before it goes public. The whole process is crucial, but it can be a brutal time sink.

Don't want to waste time and resources clicking on every single item and testing them all? Here, we made an effort to offer a simple, one-step method for conducting the testing. Our objective was to provide a straightforward and understandable way to handle testing. We introduce to you a one step method that is efficient, effortless, and even enjoyable. It is like your magic wand, but instead of spells, we use technology to test Joomla like a pro.

The features

With the help of our project, you can test a completely new Joomla site or even your own site by using the SQL dump of the backed-up database and the backup zip archive for your Joomla site. You can also run these tests on a backup Joomla live site by providing the site username and password. Our repository handles all of the dependencies, so you don't have to worry about messing with them. The project focuses on revolutionizing the traditional pre-release testing process and automating it for the ease of everyone. All the time-consuming tests are completed with just a few clicks in about a minute. 

How to 

Download or clone this repository:

https://github.com/joomla-projects/release-testing.git 

The setup comprises two folders— one for web servers and another for local mode and a run.sh script. The tests can be found in the System/integration folder. 

To run these tests on your Joomla site, put a zip-archive (excluding the installation folder) and also a sql dump file of an existing site into the folder local/joomla-backup.

You can also run these tests on a backup Joomla live site by providing the site username and password.

If you want to run these tests on a fresh Joomla installation, make sure the local/joomla-backup folder is empty.

Click on the start.exe file to start working on a WSL console.

A detailed guide to start working further based on the use case can be found here.

Under the hood

  • Docker: This application relies on Docker to create isolated environments and manage its components efficiently. We investigated the possibility of launching Cypress and Joomla directly from Docker files. This would expedite the release testing process and eliminate the need for users/testers to download individual files for Cypress, Node.js, and other components.
  • WSL2 (Windows Subsystem for Linux 2): If you're using Windows, WSL2 is essential for running Docker containers seamlessly.
  • Cypress: Our release tests are conducted with Cypress. There are already some sample tests written that correspond to the names of the components in the CMS release sheet

The Journey

As my entry in the open source world, I have had the honor of contributing to Joomla and interacting with very enthusiastic and helpful developers. Joomla has taught me a lot about open source and helped me start initially. I have to admit that at first, I lacked a lot of confidence. But for me, everything changed when we started having regular meetings with everyone. It was like a confidence boost every time we got together. The people I met were amazing. Everyone was so cooperative and helpful, always ready to jump in and lend a hand whenever I hit a roadblock. And it wasn't just about fixing problems; they genuinely motivated me every step of the way. It's hard to put into words just how much I appreciated that support.

Starting out with Docker felt overwhelming, especially with limited experience in Cypress testing. However, meeting Martina was a turning point. Her patient guidance transformed every challenge into a valuable learning opportunity. She patiently taught me and made every problem a chance to learn. With her help, Docker became easier, and I achieved things I thought were impossible. This journey not only equipped me with a solid understanding of Docker but also instilled a deep appreciation for the power of mentorship and collaboration.

Everything about this experience has been amazing and something that I am proud of. Together we developed and learnt as a team while overcoming obstacles. The cooperative and helpful nature of everyone involved, my mentors and other organization members, played a significant role in my growth. All in all, I think the experience has been wonderful and very fruitful. 

Conclusion

My journey with this project, despite initial challenges, has been incredibly rewarding. I'm incredibly grateful for the opportunity to have interacted and contributed so much. It's a truly special experience that I'll always cherish. From the presentations to the teamwork, I saw a tremendous boost in my confidence from start to finish. The amount I've learned has been invaluable. A heartfelt thank you to everyone who played a part in this, especially Benjamin, Sigrid, and the joomla Community Magazine for the writing opportunity, Philip Walton, Martina (again!), Chrisitane Maier-Stadtherr, Crystal Dionysopoulos, and the entire team.

Some articles published on the Joomla Community Magazine represent the personal opinion or experience of the Author on the specific topic and might not be aligned to the official position of the Joomla Project

2
A first step into volunteering: Pizza , Bugs and ...
JoomlaDay USA 2024: Nashville Live & Virtual Event...
 

Comments 2

Already Registered? Login Here
herve on Friday, 22 March 2024 13:55
software loads and works with ubuntu

Hi
Thank you for this very interesting project.
I am troubled by the start.exe
1/ Being under Ubuntu 23.10, can I do the test from my computer, by launching run.sh on the site?
2/ Apart from performance, there are no modifications to the site, can I run this script on a production site if there is little or no connection?
Regards

0
Hi Thank you for this very interesting project. I am troubled by the start.exe :o 1/ Being under Ubuntu 23.10, can I do the test from my computer, by launching run.sh on the site? 2/ Apart from performance, there are no modifications to the site, can I run this script on a production site if there is little or no connection? Regards
Charvi Mehra on Wednesday, 27 March 2024 13:20
working with ubuntu

Hi, sorry for replying late

1. Yes, but you'll need to have Docker installed.
2. It's advisable to use a backup or a cloned instance of the site for testing purposes. Cloning a site ensures that you can isolate any potential issues without affecting the production environment.

1
Hi, sorry for replying late 1. Yes, but you'll need to have Docker installed. 2. It's advisable to use a backup or a cloned instance of the site for testing purposes. Cloning a site ensures that you can isolate any potential issues without affecting the production environment.

By accepting you will be accessing a service provided by a third-party external to https://magazine.joomla.org/