Structuur van functionele tests

Aangepaste functionele tests moeten worden verpakt als een afzonderlijk JAR-bestand dat wordt geproduceerd door dezelfde Maven-build als de artefacten die moeten worden ingezet voor AEM. Over het algemeen zou deze build een aparte module Maven zijn. Het resulterende JAR-bestand moet alle vereiste afhankelijkheden bevatten en wordt doorgaans gemaakt met de maven-assembly-plugin met behulp van de jar-with-dependencies -descriptor.

Daarnaast moet voor de JAR de header Cloud-Manager-TestType manifest zijn ingesteld op integration-test .

Hier volgt een voorbeeldconfiguratie voor de maven-assembly-plugin .

<build>
    <plugins>
        <!-- Create self-contained jar with dependencies -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.1.0</version>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifestEntries>
                        <Cloud-Manager-TestType>integration-test</Cloud-Manager-TestType>
                    </manifestEntries>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

In dit JAR-bestand moeten de klassenamen van de tests die daadwerkelijk moeten worden uitgevoerd, eindigen in IT .

Een klasse met de naam com.myco.tests.aem.it.ExampleIT wordt bijvoorbeeld uitgevoerd, maar een klasse met de naam com.myco.tests.aem.it.ExampleTest niet.

Bovendien moet de testcode zich onder een pakket met de naam it bevinden om testcode uit te sluiten van de dekkingscontrole van de codescanfunctie (het filter voor dekkingsuitsluiting is **/it/**/*.java ).

De testklassen moeten normale JUnit-tests zijn. De testinfrastructuur is zodanig ontworpen en geconfigureerd dat deze compatibel is met de conventies die worden gebruikt in de testbibliotheek van aem-testing-clients . Ontwikkelaars worden aangeraden deze bibliotheek te gebruiken en de beste praktijken ervan te volgen.

Zie aem-testing-clients reactie GitHubvoor meer details.

TIP
bekijk deze videoover hoe u douane functionele tests kunt gebruiken om uw vertrouwen in uw pijpleidingen te verbeteren CI/CD.

Vereisten

  1. De tests in Cloud Manager worden uitgevoerd met een technische admin-gebruiker.
NOTE
Voor het uitvoeren van de functionele tests van uw lokale computer, creeer een gebruiker met admin-als toestemmingen om het zelfde gedrag te bereiken.
  1. De containerinfrastructuur die is bestemd voor functionele tests, wordt beperkt door de volgende grenzen:
Type
Waarde
Beschrijving
CPU
0,5
Hoeveelheid CPU-tijd gereserveerd per testuitvoering
Geheugen
0,5 Gi
Hoeveelheid aan de test toegewezen geheugen, waarde in bytes
Time-out
30 m
De termijn waarna de test wordt stopgezet.
Aanbevolen duur
15 m
De Adobe beveelt aan de tests te schrijven zodat deze niet langer duren.
NOTE
Als u meer middelen nodig hebt, maakt u een geval voor de klantenservice en beschrijft u uw gebruiksscenario. Het team van de Adobe evalueert uw verzoek en biedt de gewenste hulp.

Afhankelijkheden

  • aem-cloud-testing-clients:

De aanstaande veranderingen in de containerized infrastructuur voor het uitvoeren van functionele tests vereisen het bijwerken van aem-wolk-test-cliëntenbibliotheek in uw douane functionele tests aan versie 1.2.1 of hoger. Zorg ervoor dat de afhankelijkheid in het it.tests/pom.xml -bestand overeenkomstig wordt bijgewerkt.

<dependency>
   <groupId>com.adobe.cq</groupId>
   <artifactId>aem-cloud-testing-clients</artifactId>
   <version>1.2.1</version>
</dependency>
NOTE
Deze wijziging moet worden uitgevoerd vóór 6 april 2024.
Als u er niet in slaagt de afhankelijkheidsbibliotheek bij te werken, kan dit leiden tot mislukte pijplijnen bij de stap Aangepast functioneel testen.