Skip to content

Test Plan for Web App

Hanxiao Liu edited this page Jun 28, 2019 · 33 revisions

Prerequisites:

Project:

End Game

  • Add the following to pom.xml and change the id to get the latest azure-webapp-maven plugin
<pluginRepositories>
    <pluginRepository>
        <id>commicrosoftazure-{id}</id>
        <name>commicrosoftazure-{id}</name>
        <url>https://oss.sonatype.org/content/repositories/commicrosoftazure-{id}/</url>
    </pluginRepository>
</pluginRepositories>

Regression Test

  • Clone the repo to local and switch to the develop branch
  • Run mvn clean install to install the SNAPSHOT version into your local machine

Auth with Azure

  • Can auth with Azure CLI logged interactively
  • Can auth with Azure CLI logged with Service Principal
  • Can auth with the Maven settings.xml file

Note: All authentication methods can be found here.

azure-webapp:config

Can generate v2 configuration

  • Can generate configuration by mvn com.microsoft.azure:azure-webapp-maven-plugin:{test-version}:config
  • Can deploy after generating configuration

Can update v2 configuration

  • Can update Application setting
    • appName
    • resourceGroup
    • region
    • pricingTier
  • Can update Runtime setting
    • os
    • javaVersion
    • webContainer
    • image
    • serverId
    • registryUrl
  • Can update DeploymentSlot setting
    • name
    • configurationSource
  • Can show a warning if config v1 configuration
  • Can show warning(s) if there are errors in the configuration
  • Verify default value will be the old value of the same attribute
  • Verify it should not update node which is not modified
    (Some attribute values ${property}, the attribute should not be modified if the value is not changed)
  • Can deploy after updating configuration

azure-webapp:deploy

Note: For v2 sample usages can be found here.

For V2 Web App:

  • Can create both java8 and java11 Web App if it does not exist
  • Can deploy to Web App on Windows
  • Can deploy to Web App on Linux
  • Can deploy to Web App for Containers with public DockerHub container image
  • Can deploy to Web App for Containers with private DockerHub container image
  • Can deploy to Web App for Containers with private container registry
  • Can get a warning message if users mix-deploy the war artifact with other kinds of artifacts
  • Just do the deploy if specify an existing web app and skip the runtime configuration
  • Can deploy Web App to existing App Service Plan
  • Can update app service plan for existing app service
  • After java11 web app creation, Verify the stack belongs to java11 in Azure Portal
  • Can custom JAVA_OPTS to append into web.config in Windows Java SE deployment
  • Can update Web App application settings
  • Can access web app URL

For V2 deployment slot:

  • Can deploy to Deployment Slot on Windows
  • Can deploy to Deployment Slot on Linux
  • Can deploy to Deployment Slot for Containers with public DockerHub container image
  • Can deploy to Deployment Slot for Containers with private DockerHub container image
  • Can deploy to Deployment Slot for Containers with private container registry
  • Can create a new Deployment Slot without any configuration when configurationSource set to new
  • Can create a new Deployment Slot and copy parent web app configuration when configurationSource set to parent
  • Can create a new Deployment Slot and copy the configuration from another slot when configurationSource set to another slot name
  • Can create new Deployment Slot and copy parent web app configuration when configurationSource is not specified
  • Can report error if configurationSource set to a non-existing slot name
  • Can report an error if the web app doesn't exist
  • Can update Web App application settings
  • Can access deployment slot URL

Note:

  • For v1 detailed configuration can be found here
  • For v1 sample usages can be found here

For V1 Web App:

  • Can create both java8 and java11 Web App if it does not exist
  • Can deploy to Web App on Windows
  • Can deploy to Web App on Linux
  • Can deploy to Web App for Containers with public DockerHub container image
  • Can deploy to Web App for Containers with private DockerHub container image
  • Can deploy to Web App for Containers with private container registry
  • Can deploy through zip deployment type
  • Can deploy through auto or empty deployment type
    • use war deployment if the <packaging> is set to war
      • Can deploy to ROOT
      • Can deploy to other context paths
      • Can specify the war file location
    • use jar deployment if the <packaging> is set to jar
    • Otherwise, the plugin will skip the deployment
  • Can deploy Web App to existing App Service Plan
  • Can update app service plan for existing app service
  • After java11 web app creation, Verify the stack belongs to java11 in Azure Portal
  • Can custom JAVA_OPTS to append into web.config in Windows Java SE deployment
  • Can update Web App application settings
  • Can access web app URL

For V1 deployment slot:

  • Can deploy to Deployment Slot on Windows
  • Can deploy to Deployment Slot on Linux
  • Can deploy to Deployment Slot for Containers with public DockerHub container image
  • Can deploy to Deployment Slot for Containers with private DockerHub container image
  • Can deploy to Deployment Slot for Containers with private container registry
  • Can create a new Deployment Slot without any configuration when configurationSource set to new
  • Can create a new Deployment Slot and copy parent web app configuration when configurationSource set to parent
  • Can create a new Deployment Slot and copy the configuration from another slot when configurationSource set to another slot name
  • Can create new Deployment Slot and copy parent web app configuration when configurationSource is not specified
  • Can report error if configurationSource set to a non-existing slot name
  • Can report an error if the web app doesn't exist
  • Can update Web App application settings
  • Can access deployment slot URL

Can deploy in the Azure Cloud Shell

  • Generate an empty webapp project through the following command in the Cloud Shell
    mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.4
  • Add PluginRepositories to pom.xml in Endgame test
  • Generate configurations by mvn com.microsoft.azure:azure-webapp-maven-plugin:{test-version}:config
  • Test as an normal webapp project

You may use the editor in cloudshell to edit pom file

Clone this wiki locally