Our blog

Test Automation for AEM Applications: A Primer

Test Automation for AEM Applications: A Primer

Adobe Experience Manager (AEM) has amassed a loyal following and it is easy to see why. AEM enables web and mobile applications to be built in a way that is quick, easy and repeatable. Using the AEM framework, organizations can build web applications, responsive websites, mobile applications and forms. It contains some really useful features, like templates with predefined layouts, or the ability to embed standard and custom-built components that display content from its DAM (Digital Asset Manager).

For enterprises that use AEM, or are considering using it, this blog will show you what it is and what tools you will need for test automation. Our goal is to not only help organizations get the most out of AEM applications, but also provide insight on how to work hand-in-hand with a Quality Engineering (QE) approach.

Developing in AEM: What’s Involved?

If you are new to developing applications in AEM, you may not be sure of the steps you’ll need to take. Here’s a quick recap:

1. Template creation

2. Web / mobile app creation using pre-defined templates

3. Placement of both custom and standard components on paragraph system (parsys)

4. Addition of digital content

5. Setting attributes for components

6. Publish!

AEM environments all have Authoring and Publisher stages. The deployment of the Author and Publisher environments could be on a same server running on different ports or on different servers. Different versions of an application are maintained in the AEM’s code repository called File Vault.

Image Source: Sample Architecture Diagrams for AEM by Tad Reeves

A QE Approach to Authoring and Publishing

It comes down to an organization’s Quality Engineers to validate the custom-built components to ensure they meet functional requirements, as well as to ensure that the website built using the template meets the layout criteria, and that the components  and content meet their respective criteria. In keeping with a Shift Left approach, testing starts early in the development lifecycle. With AEM development, all of these validations need to be performed in the AEM Authoring environment, and individual components can be tested as they are being developed. By testing from lower level components to high-level website layout and component attributes, in QE we are constantly checking back in these early stages to ensure not only that the components work as intended, but that the application meets the defined business requirements.

While testing in the AEM Authoring environment the emphasis is on layout and digital content. Page navigation testing, integration with external applications and the application’s end-to-end functionality need to be verified in the Publisher environment. It is best to carry out visual page rendering, port sizes and cross-browser testing in Publisher mode too.

Accelerate Automation with the Right Tools

For any enterprise that’s serious about improving speed, quality and delivery, we would certainly recommend automated testing — both while the application is being built and after it is published. UI test automation solutions can be custom-built for the application in both the Authoring and Published environments, using any of the tools and technologies available in the market (e.g. Selenium Webdriver).

The actions performed in the AEM Authoring environment are quite common and repeatable for development/testing and the AEM UI controls for such actions are quite standard. Fortunately, there is a test automation framework out there that has pre-built functions that can perform most of the UI actions that are necessary for testing in AEM Authoring environment. Here’s what we’d recommend:

-Bobcat is an open source test automation framework for the functional testing of web applications. Bobcat has standard libraries that are written as a wrapper around Selenium Webdriver using Java and these libraries act as accelerators for test automation on AEM Authoring environment. Bobcat’s libraries allow very common and repeatable functional steps to be performed on the AEM Authoring environment.

– Bobcat allows teams to write test automation solutions that focus on business requirements and it performs all the necessary UI actions in AEM’s Authoring environment through “accelerators”. The accelerators are libraries that perform pre-defined common steps in the AEM Authoring environment.

– Bobcat’s libraries have been written in Java and they are wrappers around Selenium Webdriver. It supports test scenarios in BDD (Behavior Driven Development) using Cucumber-JVM, POM (Page Object Model) and also supports tests written in Junit. Dependency management is done through Guice.

Using the Bobcat framework, enterprises can quickly build test automation suites to validate web and mobile apps built on AEM. If you have a particular challenge with AEM that we haven’t covered here in this blog, we’d love to hear it and solve it for you. Talk to us today.

Image Source: AEM/CQ Architecture by Yogesh Upadhyay

Interested in our Testing Services?

Contact Apexon +1 408-727-1100

By submitting this form, you agree that you have read and understand Apexon’s Terms and Conditions. You can opt-out of communications at any time. We respect your privacy.

By submitting this form, you agree that you have read and understand Apexon’s Terms and Conditions. You can opt-out of communications at any time. We respect your privacy.

Other stories you may enjoy...

Developing an App for the 2020 General Election?

Here is a thought: With the UK General Election having just finished, could the next one in 2020 be the first to use a mobile app to allow people to vote? The polling...

Can You Simulate Global Conditions in Mobile Testing?

It is no longer enough for an app to solve a particular issue, or perform a useful function, and to assume that users will be satisfied. Apps now offer increasingly complex...

Making Appium Enterprise Grade

Appium is a free, open-source framework for automating native, hybrid and web mobile applications on iOS and Android platforms. The fact that something is open-source does not...