Expand my Community achievements bar.

SOLVED

Aem As a Cloud Service - running custom functional tests before AEM automatic update

Avatar

Level 2

Hello,

as Adobe documentation says, AEM stage and prod Cloud environments are updated transparently on a regular basis, even once a day. Also AEM updates are performed independently from custom project code updates (please correct me if I'm wrong).

If that's true - what would happen if some AEM update requires updates in project's code? How can we assure that our project is compatible with each AEM update, and prevent regression on PROD environment?

For example, is there any extension/check point in AEM automatic updates process/pipeline that allows to perform custom functional tests on stage environment updated with NEWEST (updated)  AEM version, to make sure that everything works fine, BEFORE prod environment is updated with this newest AEM version?

Regards.

1 Accepted Solution

Avatar

Correct answer by
Employee

@joannaj49016259 

Each release is validated against customer instances before being classified as safe and pushed out. If you write unit tests and functional tests using https://docs.adobe.com/content/help/en/experience-manager-cloud-service/implementing/developing/unde...

and if a new release breaks any of these tests, they will mark it unsafe and stop the release. 

 

@arunpatidar this is true for ALL Cloud Service releases (major and minor), if you have read differently, please point me to the docs and we will get it fixed. 

View solution in original post

7 Replies

Avatar

Employee Advisor

Hi @joannaj49016259,

 

There is extensive testing involved as part of the update and it will create an image first. If there are some issues then the instance is kept to the previous state. Also as mentioned in the doc, since AEM as a Cloud Service evolves on a daily basis, based on the projects implemented by our customers. Content, code and configurations are constantly reviewed and vetted against best practices. 

 

While deploying your code on AEM instance via pipelines we have strict security scans and tests that are in place to make sure the custom changes do not intervene with product code.

Avatar

Community Advisor

Hi According to Adobe,

 

They have validation at place but not for minor releases but if they releasing anything major then they make sure your code is compatible with the upgrade.

 

There was a webinar and the same thing also discussed over there, you can have a look

PDF: https://documentcloud.adobe.com/link/track?uri=urn%3Aaaid%3Ascds%3AUS%3Aaa362999-1507-4c86-ba2d-1d28... 

Recording : https://seminars.adobeconnect.com/pdmds8fr5kt2/ 



Arun Patidar

Avatar

Correct answer by
Employee

@joannaj49016259 

Each release is validated against customer instances before being classified as safe and pushed out. If you write unit tests and functional tests using https://docs.adobe.com/content/help/en/experience-manager-cloud-service/implementing/developing/unde...

and if a new release breaks any of these tests, they will mark it unsafe and stop the release. 

 

@arunpatidar this is true for ALL Cloud Service releases (major and minor), if you have read differently, please point me to the docs and we will get it fixed. 

Avatar

Community Advisor
Thanks for the confirmation @kaushal_mall , I did not read any docs but based on webinar Q&A, someone ask these kind of questions. May be I misheard. The questionwas asked related to AEMaaCS, where product release is done almost everyday/week.


Arun Patidar

Avatar

Level 2

Hello, 

thank you all for responses.

 

@kaushal_mall 

Still it's not clear for me when functional tests are executed, maybe because of some differences in naming convention. My first thought was Custom Functional Testing phase of production deployment (https://docs.adobe.com/content/help/en/experience-manager-cloud-service/implementing/developing/unde...). This is what I'm interested in, because in my project we have author interface tests, written in robot framework, and these require code to be deployed before run.

 

According to doc https://docs.adobe.com/content/help/en/experience-manager-cloud-service/implementing/developing/unde...running functional tests happens on maven package phase, so it's more like integration-tests (?), performed before code deploy which complies with mentioned by @arunpatidar  webinar presentation, slide 23. 

 

Please correct me if I missed something here.

 

To summarize: if I want to prevent regression while AEM automatic update and when my tests require project code to be deployed before tests execution, what possibilities I have? 

1. can I use webhooks? Will these approach work in case of automatic AEM update?

2. rewrite my tests to produce JAR file that could be run on stage in Custom Functional Testing phase?

3. other?

Avatar

Employee
The doc does state that the functional tests are ran against the Cloud Service stage environment _after_ the stage deployment, this should fix your issue.

Avatar

Level 2

Hi @joannaj49016259  @kaushal_mall @arunpatidar @Akash_Kapoor 

How to set date property to component in it.test functional testing.

TestComponent com = new TestComponent(componentclient, xfPath,"/master/jcr:content/root/componenent", "comp");

com.setProperty("html", "test");

we have option to set string and string[] and int values but not date property. i am extending the 

AbstractComponent. 

import com.adobe.cq.testing.client.ComponentClient;

import com.adobe.cq.testing.client.components.AbstractComponent;

 

Could you please help here. 

 

Thanks in advance.