# AWS Gem Automation Tests ## Prerequisites 1. Build the O3DE **Editor** and **AutomatedTesting.GameLauncher** in Profile. 2. Install the latest version of NodeJs. 3. AWS CLI is installed and AWS credentials are configured via [environment variables](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html) or [default profile](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html). 4. [AWS Cloud Development Kit (CDK)](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_install) is installed. > Note: All the AWS Gems CDK applications have been updated to CDK v2. Ensure you set CDK_VERSION to the desired CDK v2 version. See https://docs.aws.amazon.com/cdk/api/versions.html for the latest CDK v2 version information. > Support for the CDKv1 applications has been deprecated. ## Deploy CDK Applications 1. Go to the AWS IAM console and create an IAM role called o3de-automation-tests which adds your own account as a trusted entity and uses the "AdministratorAccess" permissions policy. 2. Copy the following deployment script to your engine root folder and update the `CDK_VERSION` to the desired CDK version: * Windows (Command Prompt) ``` {engine_root}\scripts\build\Platform\Windows\deploy_cdk_applications.cmd ``` * Linux ``` {engine_root}/scripts/build/Platform/Linux/deploy_cdk_applications.sh ``` 3. Open a new CLI window at the engine root and set the following environment variables: * Windows ``` set O3DE_AWS_PROJECT_NAME=AWSAUTO set O3DE_AWS_DEPLOY_REGION=us-east-1 set ASSUME_ROLE_ARN=arn:aws:iam::{your_aws_account_id}:role/o3de-automation-tests set COMMIT_ID=HEAD set CDK_VERSION=2.68.0 set AWS_EC2_METADATA_DISABLED=true ``` * Linux ``` export O3DE_AWS_PROJECT_NAME=AWSAUTO export O3DE_AWS_DEPLOY_REGION=us-east-1 export ASSUME_ROLE_ARN=arn:aws:iam::{your_aws_account_id}:role/o3de-automation-tests export COMMIT_ID=HEAD export CDK_VERSION=2.68.0 export AWS_EC2_METADATA_DISABLED=true ``` 4. In the same CLI window, Deploy the CDK applications for AWS gems by running deploy_cdk_applications.cmd. ## Run Automation Tests ### CLI 1. In the same CLI window, run the following CLI command: * Windows ``` python\python.cmd -m pytest {path_to_the_test_file} --build-directory {directory_to_the_profile_build} ``` * Linux ``` python/python.sh -m pytest {path_to_the_test_file} --build-directory {directory_to_the_profile_build} ``` The main tests files can be found in the ```AutomatedTesting\Gem\PythonTests\AWS``` directory at the following paths: | Gem | Test file | |---------------|------------------------------------------------| | AWSCore | core\test_aws_resource_interaction.py | | AWSMetrics | aws_metrics\aws_metrics_automation_test.py | | AWSClientAuth | client_auth\aws_client_auth_automation_test.py | ### PyCharm You can also run any specific automation test directly from [PyCharm](https://www.jetbrains.com/pycharm) by providing the "--build-directory" argument in the Run Configuration. ## Destroy CDK Applications 1. Copy the following destruction script to your engine root folder: * Windows ``` {engine_root}\scripts\build\Platform\Windows\destroy_cdk_applications.cmd ``` * Linux ``` {engine_root}/scripts/build/Platform/Linux/destroy_cdk_applications.sh ``` 2. In the same CLI window, destroy the CDK applications for AWS gems by running destroy_cdk_applications.cmd.