The More You Learn The More You Play…!

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.

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.

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.

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.

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.

I downloaded Katalon studio and tried somethings without going much into documentations . Here is my findings (Obviously it is based on my personal views)

1) I liked recording/object spy stuff/webservice stuff . I gave it a quick try by recording and playing simple navigation flow , however it failed when ‘Running’ this recorded flow .
(this shows some flakiness , however I haven’t gone much into details , I am writing this based on my quick hands on)

2) I used object spy(for web) to identify objects , It was able to identify objects using xpath or whatever best identifiers available , however xpath’s were not that much smart or generalized which I can directly use . I had to generalize to make my script more stable (I though it will use some smart way of relative xpath & sort of)

3) Regarding SOAP web service , I see I can load all webservice list directly from WSDL file , however default payloads of those webservice request’s were not being loaded , which is pain if I have to make request (I thought it will be like SoapUI as in case of latter , we get payloads of webservices loaded , which makes request formation much easier)

Thanks for the time & feedback Sameer,
1) May I know the reasons of failure, it could be due to network latency(time delays) or Dynamically changing DOM objects. How does this behave when you run Selenium IDE?
2) Current version does generate customized xpath, but not with all the axes names.
3) I agree with this point. I’ll suggest this feature to them. I am not sure of their road plan of next releases. Allow me to check with them.

The most common thing for a recording to fail it just because it needs some sort of wait, or wait until commands. So for instance if you click a button and then it loads a new page. You can tell it to wait until the page loads until doing further actions. Or in other cases you can wait until you see the thing you will click on before you actually click it.

Using Webdriver waits and fluent waits should solve synchronization issues, not many record and play tools has the feature. Using Katalon Recorder you can add additional commands while recording. Anyway I am not a fan of Record n Play, I’d rather code….