Fluent Automation Testing Framework for Web Applications

Fluent Automation FrameworkIt is important for organizations to clearly identify the merits and demerits of a test automation framework before choosing a framework. When organizations decide to automate web application testing, they prefer a simple but a powerful testing framework. Although, there are a lot of automation testing frameworks available in the market, Fluent Automation Framework categorically stands out. Fluent Automation is clearly becoming a preferred choice for automated web application testing. The primary reason for this framework to gain a wider acceptance is due to its agility and ease of usage.

Software testing professionals can utilize Fluent Automation Testing Framework to automate any web based application. It can be used with Selenium WebDriver C# and WatiN. Given below are a few high level features of the Fluent Automation Testing Framework.

Fluent Automation Testing Framework Features
  • The Fluent API is very easy to learn and implement.
  • It offers the ability to share browser instances with a single line of code.
  • Tests can be run on multiple browsers.
  • Lastly, it has a very nice method chaining.

How to Implement Fluent Automation Testing Framework

In order to implement a Fluent Automation Testing Framework, software testers will require a unit test framework. The unit test framework can either be xUnit, NUnit or MSTest (The default unit test framework in Visual Studio test projects).

Automation Testing FrameworkIt is a fairly easy process to initiate web application testing utilizing Fluent Automation Testing Framework. To start with, download the NuGet into Microsoft Visual Studio. Inherit the test classes from FluentAutomation.FluentTest and call provider’s appropriate Bootstrap method. Most of the automation testing frameworks follow this in the constructor of class. The Bootstrap method takes the browser target as an argument. Subsequently, multiple browsers can be passed as arguments, if same tests are to be performed in each browser.

Fluent Automation Testing Framework – Prerequisites
  • Software testers need to have basic software testing knowledge.
  • Automation testing know-how is essential.
  • Basic understanding of C# programming.

Fluent Automation Testing Framework Workflow

Fluent Automation Testing Framework Advantages

Let’s take a look at some of the prominent advantages of the Fluent Automation Framework.

Readability

Easy to read and comprehend, let’s compare an instance of Selenium Testing Framework with that of a Fluent Automation Framework (as it is also built on Selenium). If an automation tester has to write something into a textbox using Selenium Framework, the syntax is as follows:

'driver.FindElement(By.CssSelector(“locator”)).SendKeys(“data”)'

However, using the Fluent Automation Framework, an automation tester has to simply write the code in the following manner:

“I.Enter(“data”).In(“locator”)”

Even if a layman looks at the script, they can easily comprehend by reading each line of code.

Predefined Methods

There are predefined methods available for each and every action in the Fluent Automation Testing Framework. Just as ‘Enter’ is to enter the data into a textbox or textarea, ‘Select’ is to select the data from the dropdown menu. Similarly, ‘TakeScreenshot’ is to capture a screenshot. That’s fairly simple, right?

Method Chaining

As the name indicates, ‘Method Chaining’ allows to chain the methods without breaking the code i.e. Once ‘I’ has been initialized, methods can be written without initializing ‘I’ on multiple occasions.

Below is an example that will make the concept very clear. Imagine there are three text boxes and data is required to be entered into these textboxes. Utilizing the concept of ‘Method chaining’ the syntax would appear as follows:

I.Enter(“firstTextBoxData”).In(“firstTextBoxLocator”).Enter(“secondTextBoxData”).In(“secondTextBoxLocator”).Enter(“thirdTextBoxData”).In(“thirdTextBoxLocator”);
Cross Browser Testing

Automation testers often struggle with cross browser testing. However, in the Fluent Automation Testing Framework if software testers are required to test the same scripts in multiple browsers, all they have to do is place a comma and mention the browser name.

Selenium Integration

If software testers face any issues with the Fluent Automation Framework or are unable to proceed further due to a feature that is not available within the framework, they can simply integrate this framework with the Selenium Automation Framework to achieve the desired functionality.

Single Line Coding

In the Fluent Automation Framework, each of the functionality is achieved by a single line of code i.e. selecting a value from the dropdown menu or switching to child window or even the drag and drop functionality etc. To achieve similar functionality in the Selenium Framework, software testers will have to write multiple lines of code.

Here’s a programming snippet that would help software testers to understand the way scripts are written in the Fluent Automation Testing Framework:

using FluentAutomation;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClassLibrary1
{
 [TestClass]
 public class HandlingBasicWebElements : FluentTest
 {
 [TestMethod]
 public void basicWebElements()
 {
 //Below line to Launch Firefox Browser
SeleniumWebDriver.Bootstrap(SeleniumWebDriver.Browser.Firefox);
 //Below line to navigate to a specified URL
 I.Open("https://www.elbowspace.com/FRHformexample8.htm");
 //Entering some email address into the text box using the locator
 I.Enter("abcd@xyz.com").In("#dvitm4>input");
 //Entering some data into the text box using the locator
 I.Enter("Fluent Automation Book").In("#tditma9>input");
 //Clicking on the submit button
 I.Click("input[type='submit']");
 }
 }
}

Limitations of Fluent Automation Framework

Similar to other Test Automation Frameworks, even Fluent Automation Framework has its own set of limitations. It is important for software testers to understand the limitations before going ahead with the implementation.

  • It only works with CSS Selectors to identify the elements on a web page.
  • Do not expect any support; as it is an open source framework.
  • This framework cannot recognize flash objects.

Conclusion

The Fluent Automation Testing Framework is being extensively utilized by organizations that are keen to simplify their automation testing processes, especially for web based applications. By now, you might have gained valuable insights on this framework. If you need any further information, you can visit their website.

Krishna Sakinala

View posts by Krishna Sakinala
Krishna Sakinala is a Quality Analyst at Evoke Technologies. He is technically adept on Selenium automation with Java and C# languages. Krishna is keen on exploring different types open source automation tools and frameworks.

1 Comment

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

%d bloggers like this: