This project is implemented purposely for Python Appium Mobile Testing with AWS Device Farm. This CI is designed for AWS Code Development Tools with lambda functions calling AWS Device Farm.
This project consists of 3 folders.
-
cloudFormation AWS CloudFormation code to deploy all resources needed for this CI
-
lambdaScripts AWS Lambda functions zip files for creating and getting a test run on AWS Device Farm
-
testScripts Python Appium test scripts for mobile testing which is run on AWS Device Farm
For AWS solution architect:
- Understand CloudFormation
- Require Full access for many resources (see a list of AWS resources in this project here)
For Python Appium developer:
- Understand Python project and its dependencies AWS document
- Understand Appium client Appium document
- Understand Git Simple Git
For NodeJS developer (for AWS Lambda functions):
- Understand NodeJS streaming
- Understand AWS Device Farm SDK
-
Create new S3 bucket for uploading AWS lambda zip files (Recommend to have a folder)
-
Create new CloudFormation stack and upload
codePipeline_lambda_deviceFarm.ymlfile -
Fill in parameters
-
AWSDeviceFarmProjectArn AWS Device Farm project's arn
-
AWSDeviceFarmDevDevicePoolArn AWS Device pool's arn for small testing set
-
AWSDeviceFarmProdDevicePoolArn AWS Device pool's arn for large testing set
-
AWSS3BucketName AWS S3 bucket name which stores zipped lambda files
-
AWSS3KeyName AWS S3 key name (folder name)
must end with /which stores zipped lambda files -
AWSStepFunctionsIteratorCount A number of iteration for step functions
-
-
Click
createand done
-
git commitandgit pushto CodeCommit repository (which is created from CloudFormation) -
Develop test scripts under
testsfolder -
Once finish, git push to remote repo
-
Browse to CodePipeline
lambda_device_farm_pipelineand clickRelease changes -
Wait to see the result from AWS Device Farm
The test will be automatically generated and push to AWS Device Farm right after git push to the remote repo (CodeCommit)
Please read CloudFormation README for more details.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests.
- Nattavit Kamoltham - Solutions & Integration Architect @ FWD Innovation Center - email him
This project is licensed under the MIT License, AWS - see the LICENSE.md file for details
- Hat tip to anyone whose code was used
- Inspiration
- etc