What makes Katalon Studio more powerful than any other Selenium based Frameworks?

As a test automation engineer, we should always consider a few cornerstones before employing a tool to automate our products. As you know the primary benefits of test automation are reusability, scalability, improving test coverage, time and effort saving. Quite many of us say, using Selenium integrated with other third-party tools would achieve all the above cornerstones. But still, we have a few drawbacks. Let’s see how Katalon Studio turns to a magic wand solving test automation difficulties.

The challenge to Selenium/Appium based Frameworks

Let’s say we need to automate a modern application which has web UI, a mobile app and web services. Applying test automation for this application takes much time and effort for coding to automate test scenarios, publishing content from the web UI and verifying the same content in the database & from web services, the same process is required for the mobile app on Android and iOS platforms. Making this more challenging, open-source automation solutions like Selenium require various third party tools needed to be integrated and configured.

This challenge is simply addressed by employing Katalon Studio, you can easily automate web, mobile, web services and execute the scripts on your desired platform. Trust me, people out there are taking weeks to automate the web, mobile apps, and API where Katalon Studio can do it for you in a few hours.

Technical Skills

Selenium, a functional automation API which needs technical skills to automate applications. Even though Selenium is a powerful, free and open source tool, the time we invest in learning and setup the development environment for automation would take months. Moreover, it supports only web-based applications. To automate mobile apps, we need to integrate Appium libraries into the framework. So not every tester can automate unless they have advanced coding skills. Isn’t this a drawback when we cannot automate basic functionalities of an application without coding?

Katalon Studio makes it possible to automate most of the common functionalities of web and mobile apps without the coding experience. This tool enables everyone to automate with ease and efficiency by leveraging built-in features, you can even start automating the application right from the first sprint.

Record and Play on Popular Browsers and Mobile Apps

Test recording is the fastest way for users to automate applications. Identifying objects in applications is time-consuming and painful. It is even a nightmare to update them when applications are changed.

Unlike Selenium, Katalon Studio utility supports record and run the same tests on multiple browsers. In addition, Katalon Studio is intelligent enough to handle dynamic web elements by modifying the test object properties with its built-in methods (Add/Remove Object Property) at runtime.

Hold on!! Not just recording your actions performed on web applications, using Katalon Studio you can also record your mobile app actions. Isn’t it cool when you record your mobile app actions and organize test objects with ease? With Selenium, this is not possible without using third-party libraries.

Refer: https://docs.Katalon.com/display/kd/recording+webui+test


Save the Investment in Designing an Automation Framework

The toughest job in automation is to design a framework satisfying specific requirements of an application. Nowadays Selenium with page-object model, data-driven framework, and TestNG has opted as an automation solution for many of us. There is nothing wrong to implement the framework yourself, but time and cost are the most important factors to be considered. We cannot take 3 weeks to design a framework when the testing phase ends in 5 weeks.

This is why Katalon Studio empowers teams to collaborate and produce high-quality applications using its well-structured framework and built-in features.

Page-Object Model Framework

Katalon Studio enables the users to streamline the capturing process to store and manage the page objects using the project structure and then organize them in specific classes to reuse it later. With other Selenium open source wrappers, you can only use the XPath on the code level with the result that you would have to maintain your test scripts upon the change of the test application. And to capture the page object we need to rely on other tools such as Firebug/Firepath to manually identify the web elements, and this process is tedious and painful to organize the page object pattern when the requirements get changes.

So what can be the solution? How can we save time?

Just chant Katalon Studio, this will solve the problem and save you weeks of time. When we are designing a framework we must assume that they are going to be executed, analyzed and maintained by other resources as well. Katalon Studio itself has a built-in framework which is well organized. Using its object repository feature, we can achieve reusability and easy maintenance. The most interesting features, the spy utility captures the web and mobile objects just with one key press. Katalon Studio is intelligent enough to capture your element with all possible locators. So if we are dealing with dynamically changing elements, we can use our desired locator just by selecting it. This saves huge time when we are supposed to capture mobile elements.  Once you capture the page objects all you need to do is click on the button ‘Add to Object Repository’. This would keep all your objects organized within your project explorer which can be reused & maintained with ease. You can easily modify the object properties from the user interface.

Refer: https://docs.Katalon.com/display/kd/web+object+spy


Built-in Data Driven Framework

It is always tricky to implement data-driven testing with Selenium. You have to be a good programmer to write the code that fetches the data from spreadsheets or CSV file. Furthermore, to retrieve the data from the database, you need to have a proper JDBC connection configured with the desired database. Can you imagine how much of the time we spend on coding to parse test data in spreadsheets (Excel/CSV)?

Katalon Studio shipped with a built-in data-driven framework. Using Katalon Studio data files we can create more flexible and secure tests that can run on multiple configurations. Data can be parsed easily from Excel sheets, CSV files and even from the database. When we prefer Excel sheets, Katalon Studio gives us an option to select the columns and rows to be imported which becomes easy for a tester and we can quickly use the test data wherever we need. In addition to external data sources, Katalon Studio also has internal data storage.

Refer: https://docs.Katalon.com/display/kd/manage+test+data


TestNG & Exception Handling

TestNG with Selenium API is a common automation solution giving us options to group our tests, parallel execution, cross-browser execution and defining and executing dependency tests. But to put all these in place we need technical skills. We know how tough it is to code, maintain and execute the test scripts in multiple browsers in parallel, not to mention custom coding to handle exceptions.

For cross browsers and platforms testing, Katalon Studio provides built-in features to execute test scripts in multiple browsers in parallel or sequential by creating the test suites to be automated and select the environment configurations in which we want to execute. The tool provides flow control ability which allows us to manage exception handling and dynamically define the execution procedure. Another interesting feature, Katalon Studio supports remote server execution with a few possible clicks. No more xml configuration files and coding, all these features come handy with Katalon Studio.

Refer: https://docs.Katalon.com/display/kd/execute+a+test+suite+collection


API Testing

Generally, when we need to test our web services, we may employ tools like SOAPUI or we may code it using restful services to send a request to the server and parse the response to validate it.

Employing Katalon Studio would avoid coding part, it has built-in keywords for both rest and soap web testing services. To parse and validate the response, we also have many built-in keywords for the assertion. If we employ a tool like SOAPUI free version, we cannot run it through automation and need coding to generate the report. Katalon Studio allows us to append our web-services tests in a test suite to trigger whenever we need it and a report will also be generated and auto emailed to the recipient list provided.


Logging and Debugging

When we use Selenium frameworks we need to integrate third party libraries to put logs for debugging purpose. And it’s always a mundane work to enable and disable logs for every function and model. Katalon Studio by default enables logs for every test step in the test case. We don’t need to write any code further to put some logs. This tool has log viewer section where we can view the logs or we can also check them in the reports. Coming to debugging, Katalon Studio has a good debugging feature which allows us to debug and solve the exceptions we face.

Rich Reporting Framework

Though we design perfect test scripts we still need a good report to share the automation status and test coverage. In Selenium we need to call third-party libraries to generate a report. And to generate the report in various formats it requires coding and designing skills. By default, Selenium API won’t give us any report unless the TestNG framework is integrated.

Katalon Studio easily generates HTML, CSV or PDF reports providing an overview of how our automated testing efforts are being progressed by appended with screenshots and logs.


ALM Integrations

Selenium needs third party tools to integrate with ALMs like JIRA, Slack…  and custom coding to execute Selenium test scripts in the cloud environment (Sauce Labs, BrowserStack, Kobiton…).

Solving this issue, Katalon Studio gives us native integration with ALM like JIRA, qTest to link the test execution to the requirements and defects. Katalon Studio also supports CI tools like Jenkins, TeamCity for continuous integration and plugins with cloud services.


Here is the summary of what Katalon Studio can do to address the limitation of Selenium

  • Can eliminate the need for user-defined frameworks and expensive programmers to build test automation.
  • Can create test scenarios that accurately simulate real business workflows much faster & simpler.
  • Can Create, Manage and Use test data securely with ease
  • Can easily automate Web Apps, Mobile Apps, Web APIs without programming skill.
  • Can execute test scripts in parallel and cross browsers without programming skills.
  • Empower your Agile Teams with Continuous Testing by Continuous Integration.
  • Simulate complex test workflows easily with looping, conditional statements and control flow commands with built-in keywords.
  • Can easily automate dynamic UI & frequently changing content with ease.
  • For programming lovers, Katalon Studio allows us to code to achieve complex functionality using Script Mode.
  • Katalon Studio eliminates the need for wait statements even for inconsistent page loads and AJAX with its built-in keywords for synchronization.

Katalon Studio is available for testers at no costs. Download Katalon Studio at http://www.katalon.com/

Swipe Gesture – Appium

You already know how to Scroll using Android driver. Now let’s see how to Swipe. Generally while swiping on a device, we move our finger to some X&Y coordinates. We can use TouchAction class to swipe here and there. Also we can use Android Driver function ‘swipe‘ by using screen width and height and we can also use javascript executor to swipe. Here I’m not using any app for demonstration.
Let’s quickly take a look at the code:

Continue reading

Scrolling Gesture – Appium

You already know how to perform longpress gesture using Appium. Now let’s see how to perform a Scroll. I hope you know what is a ‘scrolling‘. We do it often in day to day life. As a quick reference swiping your finger upwards will perform a scroll down and swiping down your finger will perform a scroll up. Just like ‘TouchAction‘ class we also a ‘scrollTo’ function in-built. Lets quickly take a look at the syntax  &  Example ‘driver.scrollTo(“sampleScroll”); ‘ 

Continue reading

Long Press Gesture – Appium

You already know, how to launch a web browser using Appium and launching a Native App using Appium. Now lets talk about user interactions. Just like in Selenium – Actions class, here we have TouchAction class to perform Mobile gestures like long press, drag and drop, swipe, and zoom etc. In Android by pressing an element for much long we will get other information about a feature. Let’s say, to uninstall an app we generally longpress on the app icon till we see a delete icon on the screen. So these kinda operations can be handled by ‘TouchAction‘ class

Continue reading

Launching Native App in your Android device using Appium

You already know what are Desired Capabilities and how to launch a web browser from previous article. Now lets launch a native app. You also know how to create an AVD, if not then take a look at this article. Get the device name using the command ‘adb devices‘. Here, we are going to take an example of the Android calculator app.

Things to do:
Launch emulator
Launch Appium server – type ‘appium
Get the device name – type ‘adb devices
Get the package name and activity name of calculator app – refer article
Set the capabilities (package name and activity name) – refer article

Xpath001 Continue reading

Launching a web browser in your Android device using Appium

From the previous article you know what are Desired capabilities. Now we will quickly launch a browser using in your device. Before diving in, you need to connect your device to the system (Debugging – On). And get the device name using the command ‘adb devices’. By default, Appium will run on port 4723. You can change it as per your need. We will see that later. Just copy and paste the below code, I will explain code after the execution.

Things to do:
Connect your device or launch emulator
Get the device name – type ‘adb devices
Set the capabilities – refer article
Launch Appium server – type ‘appium


Continue reading

Finding Package Name, Activity Name of .apk file

Objective: Finding Package Name, Activity Name, Device Name
As you know, to start a session we need to set Desired Capabilities. Among those, we need to set Package name and Activity name capabilities as well. There are several methods to find package and activity name.
* Using Apk.info app
* By extracting AndroidManifest.xml
* By using commands in Terminal
* By using UIAutomator

Continue reading

Finding elements using locators in Appium

As shown in the previous article, we can identify elements of Native & Hybrid apps using UIAutomatorviewer. There are few locators used to locate elements for native and hybird apps. Okay let’s look into it. Before that launch your emulator or connect real device. If you don’t know how, check my article. We’ll locate elements of Calculator app. Now Launch UIAutomatorviewer and capture the screenshot of calculator app.


Continue reading

Finding elements using UIAutomatorViewer

Just like in Selenium there are few locators to identify elements in mobile apps. Generally, to find the elements we use UIautomator for native and hybrid apps. This article helps you to know about UIautomator and other various locators. As you know how to create a new AVD from my previous article, we will use an Emulator and Calculator app to identify elements in the calculator app. Within no time you’ll learn how to use UIautomator and locating the mobile app elements. Just hold tight and follow the below steps:


Continue reading

Desired Capabilities for Appium

Desired Capabilities got introduced in Selenium to work with lot of browser capabilities like handling browser cookies , SSL security popup blah blah.
But why are we using this in Appium?
Using Desired Capabilities we can communicate with Appium server by sending a POST request, saying that I’d like to start a session with so and so platform and platformversion, browser etc…Now the server understands it and starts a session with the capabilities which we have set. Still confused?
Desired capabilities is a JSON object (keys and values pair). So, there are few capabilities in-built. We need to set the capability name as ‘key’ and capability value as ‘value’. The capabilities keys are case sensitive. You need to follow correct syntax to set key and value. Without setting these capabilities, you can’t even establish a session.

Continue reading