GUI automation Testing: DIY Guides

GUI automation is great for broad stack testing. UI automation plays a crucial role in testing your application's full stack. While UI tests generally run slower, take longer to develop, and are harder to maintain compared to API automation or unit tests, they offer significant value. By combining UI automation testing with API automation and unit tests, you create a well-rounded testing strategy that ensures thorough coverage across all layers of your application.

If you're the first professional tester at your company, we recommend starting with GUI automation. Why? UI tests have a high social return on investment (ROI). One often overlooked benefit of UI automation is its theatrical nature. Unlike other forms of testing, UI automation is a highly visual process. As the application is automatically tested, this visual display evokes positive emotions in non-testers, helping them better appreciate the testing process. This positive association can make your testing efforts memorable within your company, enhancing the overall impact of testing.

At Qxf2 Services, we've tried various Python-based GUI automation tools for different testing needs. These include popular tools like Selenium, Appium, Playwright, TestCafe, ReplayIO and even low code automation, visual testing, accessibility testing tools and browser automation tools. You can explore our hands-on experiences and insights in the following blog posts:

1. SELENIUM, PYTHON AND THE PAGE OBJECT MODEL Intermediate
This post will show you how to use Selenium and Python to implement the Page Object pattern. We wrote this for people already familiar with Selenium and Python but need help making their test scripts more robust.

2. WEATHER SHOPPER: PRACTICAL WAY TO LEARN APPIUM AND PROGRAMMING LANGUAGE Beginner
This post is for testers who are new to programming and looking to learn mobile test automation. Qxf2 Services has developed an Android application - Weather Shopper, to help testers practice Android app automation using Appium and learn programming languages simultaneously. You can get the application from Google Play Store here.

3. CREATING ASYNCHRONOUS AUTOMATION TEST USING PLAYWRIGHT & PYTEST Advanced
Qxf2 explored an advanced capability with Playwright recently - writing asynchronous tests. Given our admiration for pytest we picked the Playwright-pytest plugin for our research. While we were impressed with the pytest integration, we noticed the official and community documentation only featured synchronous examples using pytest. We figured working on fitting pytest with asynchronous Playwright will also help us understand Playwright internals better. In this post we shared how to go about creating a simple Playwright UI test using pytest.

4. HOW TO WRITE ROBUST XPATHS Intermediate
Every tester I onboard knows how to write xpaths but the xpaths are not robust. Poor xpaths cause automation to fail often and in turn give Selenium a bad rep. This post will teach you how to write robust xpaths.
Looking for good advice on CSS selectors? Someone else wrote this piece much better than we could!

5. MOBILE AUTOMATION: GET STARTED WITH APPIUM ON AN EMULATOR Beginner
Stop fearing mobile automation! Its easy to get started. This tutorial is ideal for rank beginners and has helped many testers start with Appium and mobile automation.

6. END TO END UI AUTOMATION USING TESTCAFE Beginner
This tutorial will guide you through creating UI tests with TestCafe, from setup to writing end-to-end (e2e) tests using basic assertions and page object models. TestCafe is a great tool for browser automation. To make it hands-on, we've also created a sample React Resume Builder app, which we'll use to write an e2e test. If you are new to TestCafe, this article will help you learn its basic features and how to write selectors for a React app.

7. MOBILE AUTOMATION: APPIUM, PYTHON WITH PHYSICAL MOBILE DEVICES Intermediate
This tutorial will show you how to run your Appium tests against real, physical Android devices. This step by step guide is perhaps the most popular tutorial we have ever written!

8. A BRIEF INTRODUCTION TO ACCESSIBILITY TESTING USING AXE Intermediate
Accessibility testing is crucial to ensure everyone, including people with disabilities, can use your web and mobile apps effectively. In our search for accessibility testing solutions, we found Axe, a renowned tool in the field. What impressed us most was its ability to integrate seamlessly with automation suites, making it a great fit for our needs. This post dives deeper into how Axe meets our accessibility testing requirements.

9. REPLAY.IO WITH SELENIUM PYTHON Beginner
Replay.io is designed to help developers and testers record, replay, and debug browser sessions by capturing every interaction and event during the session. For QA teams, it's particularly useful when developers have trouble debugging an issue. With Replay, you can easily record and share sessions, making troubleshooting much smoother.

10. ENHANCEMENTS TO MOBILE TESTING IN QXF2 PAGE OBJECT MODEL FRAMEWORK Beginner
Qxf2 's Page Object Model framework has been a dependable automation framework for mobile testing, built on top of Appium. We've expanded support for all major gestures, making it even more versatile. Explore the new mobile capabilities added to our framework.

11. PERCY UNVEILED: ADDRESSING CHALLENGES AND GREY AREAS Beginner
Visual testing is often overlooked by development teams, who usually focus on unit and integration tests. These tests miss potential UI issues. Introducing visual testing helps catch visual problems early before the product is released. At Qxf2, we tried Percy, a visual testing tool by BrowserStack. While Percy's documentation is straightforward, this post covers a few tricky areas that might be confusing for newcomers.

12. MOBILE AUTOMATION: IDENTIFYING UI ELEMENTS Beginner
We have Firebug and xpather to identify UI elements in web applications. Ever wondered what the equivalent was for mobile apps? This blog post is a comprehensive guide showing different ways and tools to identify UI elements in mobile applications.

13. TEST AUTOMATION WITH TESTIM Beginner
If you're exploring low-code automation tools, we recently tried Testim, a low-code test automation tool. We found it useful for certain scenarios. You can read more about it here.

14. MOBILE AUTOMATION: RUNNING AUTOMATION ON MULTIPLE DEVICES Advanced
Make your mobile automation more robust! This tutorial will show you how to run the same test against a range of devices and OS versions.

15. MOBILE AUTOMATION: PINCH, ZOOM AND SWIPE! Intermediate
Learn how to perform gestures using Appium and Python.

16. MOBILE AUTOMATION: SCROLLING THROUGH TABLES AND SEARCH RESULTS Advanced
In this post we show you how to scroll through a table and identify elements. We also tackle the case where the table spans multiple pages. This is a natural and common workflow on most mobile devices. A typical use case involves the user performing a search within a mobile application. The app returns a table of results. The user then scrolls through the results and clicks on the result she likes.

At Qxf2, we understand that every organization has unique testing needs. That's why we offer a range of services, from Essential Services - for periodic testing needs, to Indepth QA Services - for more advanced test scenarios, and QAIT - our Gen AI test automation service designed to bring AI-driven efficiency to your testing process. You can reach out to us for more information by visiting our contact page.

paper cut