Another quarter, another Selenified release in the books. Nothing huge in this release, just some small feature updates and enhancements.

Additional Reporting Features

The custom Selenified reports have been updated to include some additional information. Previously, when parameterized tests were executed, the individual results weren’t easily identified in the report. This has been fixed, with each parameter variable name called out in the test name. The full browser name is also specified to provide more information when interoperability tests are run. The specific stack trace of the failure has also been included in the report and can be expanded for more details in the overall report view.

Just click on the error link to get more information

Additionally, all supported log types for the browser and system and now recorded, and included in the report. Links are provided next to the custom HTML report link for each log type: Browser, Client, Driver, Performance, Server, and/or Profiler. To capture these logs, simply ensure your browser and system are setup support them.

Third-Party Tooling Updates

I spent some time working with the awesome people over at LambdaTest these past few months, and we’ve gotten our integration with their software to work a little tighter. Now, upon test completion when using their infrastructure, Lambda shows the actual results from your tests, not just the completed/errored/timed out status on their end.

Passed/Failed responses are populated based on results from Selenified

Finally, we fixed the grouping issues when running on remote tools. Previously, no grouping was defined, so that all tests showed as ad hoc executions. Now, by default, a build with the datetime stamp and list of browsers run is added to the DesiredCapabilities of the test. Alternatively, a custom build can be provided by passing it via the command line.

-DbuildName='Jenkins Run 123'

More Native Selenium Functionality

We had some feature requests to include some additional basic functionality from Selenium into Selenified. While all Selenium capabilities can be accessed directly if desired, the additional logging, screenshots, and asserts would then have to be done custom. To that end, we added functionality for four additional Selenium actions in Selenified.

  • getTagName
  • getLocation
  • getSize
  • getRectangle

These attributes of an element can now be accessed directly from the Element class, using the get() object. Additionally, custom checks (both asserts and verifies) were added in, to provide additional logging and screenshots.

    @Test(groups = {"integration", "action", "get"},
            description = "An integration test to check the get rectangle method")
    public void getElementRectangleTest() {
        // use this object to manipulate the app
        App app = this.apps.get();
        // perform some actions
        assertEquals(app.newElement(Locator.ID, "fixed_element").get().rectangle(), new Rectangle(5, 5, 5, 5));
        // verify no issues
        finish();
    }

    @Test(groups = {"integration", "verify", "equals"},
            description = "An integration test to check the verify tag name method")
    public void compareRectangleTest() {
        // use this object to manipulate the app
        App app = this.apps.get();
        // perform some actions
        app.newElement(Locator.ID, "fixed_element").verifyEquals().rectangle(new Rectangle(5, 5, 5, 5));
        // verify no issues
        finish();
    }

Other Features

Finally, a few other pieces of functionality were added to more fully round out Selenified. Patch method calls are now supported for web service calls, and so all of the additional recording/assertions associated with those calls are available. Additionally, instead of the Selenified properties needing to be in the location src/test/resources it can now be used from the relative resource path.

Get Testing

So, are you ready to upgrade? Simply modify your pom or build files to point to version 3.2.1! No changes or updates to your code need to be made, as everything in this release is 100% backward compatible. You can even just download the jar directly!
Starting fresh? Check out some quick-start instructions.

As always, leave your thoughts below, and happy testing!

Leave a comment

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

X