Optimizing CircleCI Configuration: Minimize config.yml size with Dynamic Configuration

We have a wdio-based automation project that does end-to-end functional testing. We use CircleCI as the CI/CD tool to run automation regression. When setting up a project with CircleCI, we need to enter all configuration details in the config.yml file under the .circleci folder. Earlier, we only had staging regression and prod regression jobs and their respective workflows in the config.yml file. As mentioned in this article, we also started doing screenshot testing for our application. With time, our configuration file expanded and became cluttered, accommodating various workflows like staging sanity, staging regression, prod regression, performance score

Setup Image Comparison Service of WDIO to make UI Testing more impactful

This blog helps to configure visual regression testing using wdio-image-comparison-service.

WebdriverIO supports Chaining without multiple await statements

Ever since WebdriverIO got launched, major companies adopted this tool for automation. It became popular very fast due to its powerful advantages. Since the launch, there have been lots of changes and improvements being made to the tool. In this article, we'll be discussing one of the improvements that have really helped us in writing automation scripts in async mode. WebdriverIO is asynchronous by nature. Earlier, WebdriverIO used to provide the ability to run commands in sync mode using node-fibers. However, due to some breaking changes in Chromium, WebdriverIO discontinued the support for sync mode. Please refer Sync vs. Async

An issue we resolved with UiAutomator to locate UI elements in Appium for Android apps

Automation testing is an integral part of any successful product development. We also discussed it in our previous blog on Jenkins. While architecting, developing, and scaling a large USA based SaaS product, having multiple apps (both web & mobile), we automated testing for one of the mobile application using Appium too. In this article, I would like to share a specific challenge we faced with Appium and UiAutomator and how we resolved it. Setup with Appium v1.15.1, Emulator v30.0.5 & UiAutomator 1We installed required software, i.e. Appium, sdkmanager command line tool, Emulator, etc. Appium -

How To Capture Skipped Automation Tests in Extent Report?

Test Automation for regression test cases has become an important part of UAT. To draw the most benefits from automation suite, it is pertinent that test reports are easy to read. Test reports should provide complete details of automation suite execution. We have a selenium- based automation suite with TestNG framework for our project. We have used Extent Report for test execution status reporting in our automation. In this article, we will explain the steps to capture the details of test functions skipped in the report. BackgroundWe have designed automation suite to cover the user journeys in the application. There

How to setup CI/CD pipeline with Jenkins for Test Automation Suite?

Automating test scenarios have become an integral part of any successful product release. We have selenium automation suite covering important feature flows. We run our test suite on a weekly basis as a regression health indicator. We deployed Jenkins, a CI/CD tool, to build, deploy and automate our test suite. In this article, we will explain the steps to set up Jenkins on our Ubuntu machine and how we overcame the various challenges we faced. Background We collaborate with a USA based large CRM SaaS application to build new features. We also enhance the application. We use Kanban Agile

Dealing With Dynamic Elements And Canvas In Selenium

We have one CRM product of our client and we are in process of automating it. In that, we have one orders section where user can place orders for either themselves or for the customers. In the orders flow, since the user is purchasing product of their choice which are customised niche products – we have a requirement for the user to accept the agreements, and also sign the agreement, before they can go ahead and make a payment for their purchase. In theory, this sounds pretty straightforward to do as most of the applications have some agreements to accept inorder