Skip to content

Test Plan for Web App

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

Prerequisites:

  • Install the newest code into local Maven repo - the newest code is in develop branch
  • Prepare a webapp maven project
  • change the maven plugin version to the newest one.
  • Add following to pom.xml, the id will be ready when stage bits ready
<pluginRepositories>
    <pluginRepository>
        <id>{id}</id>
        <name>{id}</name>
        <url>https://oss.sonatype.org/content/repositories/{id}/</url>
    </pluginRepository>
</pluginRepositories>

azure-webapp:deploy

Note: Usage can be found at: https://github.com/Microsoft/azure-maven-plugins/blob/master/docs/web-app-samples.md

Can deploy in the Azure Cloud Shell

  • Generate a Web App project in the Cloud Shell
    • Generate an empty webapp project through archetype mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.4
    • Add PluginRepositories Infos to pom.xml Example
    • Generate configurations by mvn com.microsoft.azure:azure-webapp-maven-plugin:1.6.1-SNAPSHOT:config
    • Test as an normal webapp project

You may use the editor in cloudshell to edit pom file.

Can deploy to Web App on Windows

  • Can create Web App if it does not exist
  • Can update application settings
  • Can deploy through ftp deployment type
  • Can deploy through jar deployment type
  • Can deploy through zip deployment type
  • Can deploy through war deployment type
    • Can deploy to ROOT
    • Can deploy to other context path
    • Can specify the war file location
  • Can access Web App Url

Can Auto detect deployment type

  • Can deploy through jar deployment type when set AUTO and set jar
  • Can deploy through war deployment type when set AUTO and set war
  • Can deploy through jar deployment type when no setting and set jar
  • Can skip deploy when set to NONE
  • Can deploy through jar deployment type when both and are not set

Can deploy to Deployment Slot on Windows

  • Can report error if Web App does not exist
  • Can create Deployment Slot if it does not exist
    • Can create new Deployment Slot without any configuration when configurationSource set to new
    • Can create new Deployment Slot and copy parent web app configuration when configurationSource set to new
    • Can create new Deployment Slot and copy configuration from other slot when configurationSource set to other slot name
    • Can report error if configurationSource set to a non existing slot name
    • Can create new Deployment Slot and copy parent web app configuration when configurationSource is not specified
  • Can update Web App application settings
  • Can deploy through ftp deployment type
  • Can deploy through jar deployment type
  • Can deploy through zip deployment type
  • Can deploy through war deployment type
    • Can deploy to ROOT
    • Can deploy to other context path
    • Can specify the war file location
  • Can access Deployment Slot Url
    • If the dedployment slot is created without any configuration, even java runtime, the url is not accessible if we deploy jar/war file to it

Can deploy to Web App on Linux

  • Can create Web App if it does not exist
  • Can update application settings
  • For tomcat runtime:
    • Can deploy through ftp deployment type
    • Can deploy through zip deployment type
    • Can deploy through war deployment type
      • Can deploy to ROOT
      • Can deploy to other context path
      • Can specify the war file location
  • For jre8 runtime:
    • Can deploy through zip deployment type
    • Can deploy through ftp deployment type. Example
  • Can access Web App Url

Can deploy to Deployment Slot on Linux

  • Can report error if Web App does not exist
  • Can create Deployment Slot if it does not exist
    • Can create new Deployment Slot without any configuration when configurationSource set to new
    • Can create new Deployment Slot and copy parent web app configuration when configurationSource set to new
    • Can create new Deployment Slot and copy configuration from other slot when configurationSource set to other slot name
    • Can report error if configurationSource set to a non existing slot name
    • Can create new Deployment Slot and copy parent web app configuration when configurationSource is not specified
  • Can update Web App application settings
  • For tomcat runtime:
    • Can deploy through ftp deployment type
    • Can deploy through zip deployment type
    • Can deploy through war deployment type
      • Can deploy to ROOT
      • Can deploy to other context path
      • Can specify the war file location
  • For jre8 runtime:
    • Can deploy through zip deployment type
    • Can deploy through ftp deployment type. Example
  • Can access Deployment Slot Url

Can deploy to Web App on Linux with public DockerHub container image

  • Can create Web App if it does not exist
  • Can update application settings
  • Can access Web App Url

Can deploy to Deployment Slot on Linux with public DockerHub container image

  • Can report error if Web App does not exist
  • Can create Deployment Slot if it not exist
    • Can create new Deployment Slot without any configuration when configurationSource set to new
    • Can create new Deployment Slot and copy parent web app configuration when configurationSource set to new
    • Can create new Deployment Slot and copy configuration from other slot when configurationSource set to other slot name
    • Can report error if configurationSource set to a non existing slot name
    • Can create new Deployment Slot and copy parent web app configuration when configurationSource is not specified
  • Can update Web App application settings
  • Can access Deployment Slot Url

Can deploy to Web App on Linux with private DockerHub container image

  • Can create Web App if it does not exist
  • Can update application settings
  • Can access Web App Url

Can deploy to Deployment Slot on Linux with private DockerHub container image

  • Can report error if Web App does not exist
  • Can create Deployment Slot if it does not exist
    • Can create new Deployment Slot without any configuration when configurationSource set to new
    • Can create new Deployment Slot and copy parent web app configuration when configurationSource set to new
    • Can create new Deployment Slot and copy configuration from other slot when configurationSource set to other slot name
    • Can report error if configurationSource set to a non existing slot name
    • Can create new Deployment Slot and copy parent web app configuration when configurationSource is not specified
  • Can update Web App application settings
  • Can access Deployment Slot Url

Note: How to set up docker auth in Maven settings: https://stackoverflow.com/a/39924695/6756246

Can deploy to Web App on Linux with docker container image in private container registry

  • Can create Web App if it does not exist
  • Can update application settings
  • Can access Web App Url

Can deploy to Deployment Slot on Linux with docker container image in private container registry

  • Can create Deployment Slot if it does not exist
  • Can update Web App application settings
  • Can access Deployment Slot url

Can auth with Azure CLI logged with Service Principal

  1. Login Azure CLI with Service Principal
  2. Test whether a project could be deployed to Azure.
  3. Test whether a project could be deployed to deployment slots.

Can deploy Web App to existing App Service Plan. Example

azure-webapp:config

Can generate configuration

  • Can generate configuration with the following command
mvn com.microsoft.azure:azure-webapp-maven-plugin:1.6.1-SNAPSHOT:config
  • Could deploy after generate configuration

Can update configuration

  • Can update Application Setting(appName,resourcegroup,region,pricingTier)
  • Can update Runetime Setting (os,javaVersion,webContainer/runtimeStack)
  • Can update DeploymentSlot Setting (name,ConfigurationSource)
  • Default value will be the old value of same attribute
  • It should not update node which is not modified (Some attribute values ${property}, the attribute should not be modified if the value is not change)
  • Could deploy after update configuration
Clone this wiki locally