FluentAutomation


Brandon Stirnaman

FluentAutomation Creator
Simple, fluent automated testing for web applications.



F14N Founder
Fast, easy automation test creation, execution and management.

RELEASED: Fluent Automation 2.0.0

As promised yesterday, v2 is now live and in the wild for all to use. Please refer to the documentation here or hit me up on twitter (@stirno) or our Issue tracker on GitHub">Issue tracker on GitHub.

This a major version increase, which means we've broken a few things. I'll just ramble off a few things off the top of my head here...

Test classes should now inherit from FluentAutomation.FluentTest rather than the specific provider versions we used previously. Instead they must call a Bootstrap function from the chosen provider inside the constructor or a test initialization method:

public class TestClass : FluentAutomation.FluentTest  
{
    public TestClass()
    {
        FluentAutomation.SeleniumWebDriver.Bootstrap();
    }
}

There have been several changes across the API to allow for more predictable access patterns. Configuration is now done via a static Settings object.

We now provide a way for users to grab a value from the page via the I.Find/I.FindMultiple actions. Using these you are able to fetch an entity and work with its properties.

New type of Wait: I.WaitUntil() -- This allows you to specify a condition that must be true for the test to continue. This should eliminate most of the need for explicit timed waits in tests, making them far less fragile.

Utilizing TinyIoC, a user can provide their own Bootstrapper which allows you to override functional and language portions of the framework at their convenience. Don't like the I.Click/I.Expect style of tests? Implement a new INativeSyntaxProvider and replace it, while using our CommandProviders and ExpectProviders. Only replace the parts you need to. If you just need to tack on extra functionality (commonly I.Login/I.Logout), just add extension methods to INativeSyntaxProvider.

The framework is now there to support working with files on remote stores such as Amazon's S3. Custom IFileStoreProvider instances can be implemented to save screenshots to S3 buckets, Dropbox, Box.com, wherever you need it. The same provider is used to load files for I.Upload() calls.

/rambling. Basically there is a lot of new and powerful stuff and I'm excited to see how people use it. Go grab it from NuGet or fork the source on GitHub. I'd love to get some feedback, comments, emails, tweets, whatever works for you.