AWS Device Farm
Testing Android, iOS, and web apps on real phones and tablets hosted by AWS: automated tests with Appium, Instrumentation, and XCTest, remote access sessions, desktop browser testing with Selenium, private devices, security, and pricing.
4 min read · Last reviewed · SAA-C03
Sign in to bookmark tutorials and track what you have read.
On this page
What it is
AWS Device Farm is an app testing service for Android, iOS, and web apps on real, physical phones and tablets hosted by AWS. Instead of buying and maintaining a lab of devices, you run tests on many device models and OS versions in parallel and get logs, screenshots, videos, and performance data.
Device Farm is available only in the US West (Oregon) AWS RegionA separate geographic area where AWS runs its services, such as us-east-1 in Northern Virginia, made up of several Availability Zones. Most resources live in one Region; you choose Regions for latency, data residency, and the services you need.Glossary entry, but it can test apps used anywhere.
Choose Device Farm when a question asks how to test a mobile or web app across many real devices or browsers without managing the devices yourself.
Ways to use it
- Automated app testing: upload your app and test package. Device Farm runs the tests in parallel on the devices you choose, on service-managed test hosts, and stores the results. It fits well into a CI/CD (Continuous integration and continuous delivery)Practices in which every code change is built and tested automatically (continuous integration) and kept ready to release, often deploying it automatically through a pipeline (continuous delivery or deployment).Glossary entry pipeline. Supported frameworks:
- Android: Appium and Instrumentation (such as Espresso tests).
- iOS: Appium, XCTest, and XCTest UI.
- Web apps on mobile browsers: Appium.
- A built-in fuzz test sends random input with no scripts to write.
- Remote access: swipe, gesture, and interact with a real device from your web browser in real time, to test manually or reproduce a customer's bug on a specific device. You can also run Appium tests from your own computer against a remote device through a managed Appium endpoint. Sessions last up to 150 minutes.
- Desktop browser testing: run Selenium tests on desktop browsers hosted by AWS, in parallel.
Security, resilience, performance, and cost
Security
- IAM controls who can create projects, upload apps, and see results.
- Uploaded apps, test packages, and results are kept for a limited retention period (for example, 30 days for uploaded applications) and then removed.
- For stricter needs, private devices are reserved for your account only.
- VPC-ENI (Elastic network interface)A virtual network card in a VPC subnet, with private IP addresses, security groups, and a MAC address. EC2 instances, Lambda functions connected to a VPC, and interface endpoints all connect through network interfaces.Glossary entry connectivity (private devices) lets devices reach private endpoints in your VPC or On-premisesIn data centers or offices that you run yourself, rather than in the cloud. Hybrid architectures connect on-premises systems to AWS, for example through AWS Direct Connect or a VPN.Glossary entry. The network interface goes in a VPC in us-west-2; to reach a VPC in another Region or on premises, link that us-west-2 VPC with VPC peering, Transit Gateway, or VPN (Virtual private network)An encrypted tunnel over a public network, such as the internet, that joins networks or devices as if they were directly connected. AWS Site-to-Site VPN connects networks; AWS Client VPN connects individual users.Glossary entry.
Resilience and performance
- Tests run in parallel across many devices, which shortens test cycles. Logs, screenshots, and videos help find device-specific problems.
Cost
- Pay as you go per device minute, with a one-time free trial of device minutes.
- Unmetered plans allow unlimited testing for a flat monthly fee per device slot.
- Private devices have their own subscription.
Monitoring
- Results and artifacts appear in the Device Farm console. CloudTrail records Device Farm API (Application programming interface)A defined way for one program to ask another for data or actions, such as a set of HTTPS requests and responses. Every AWS service is controlled through its API, which the console, the CLI, and the SDKs call for you.Glossary entry calls.
Device Farm or another option?
| If the requirement is | Choose |
|---|---|
| Test mobile apps on many real Android and iOS devices | AWS Device Farm |
| Reproduce a bug on a specific phone model interactively | Device Farm remote access |
| Run Selenium tests across desktop browsers | Device Farm desktop browser testing |
| Monitor a live website with scripted checks | Amazon CloudWatch Synthetics |
| Load test a back end with thousands of simulated users | Distributed Load Testing on AWS (load generators on Fargate) |
| Build and host the app | AWS Amplify |
Reverse mindmap: when the question points here
- Yes, when the question says
- Test an app on many real phones and tablets leads to Device Farm
- No device lab to buy or maintain leads to Device Farm
- Run Appium, Espresso, or XCTest tests in parallel leads to Device Farm automated testing
- Reproduce a bug on one device model leads to Remote access session
- Selenium tests on desktop browsers leads to Device Farm desktop browser testing
- Devices only our team can use leads to Private devices
- Private devices reach a VPC in another Region leads to VPC-ENI in us-west-2, plus peering or Transit Gateway
- No, when the question says
- Monitor production endpoints leads to CloudWatch Synthetics
- Load test a back end with many simulated users leads to Distributed Load Testing on AWS
Key takeaways
- Device Farm tests Android, iOS, and web apps on real devices hosted by AWS, in parallel.
- Automated testing supports Appium, Android Instrumentation, XCTest, and a built-in fuzz test; remote access lets you use a device from a browser.
- Desktop browser testing runs Selenium tests on AWS-hosted browsers.
- It runs only in US West (Oregon); pricing is per device minute, or a flat monthly fee per device slot.
Sources
- AWS Device Farm Developer Guide: What is AWS Device Farm?
- AWS Device Farm Developer Guide: AWS Device Farm concepts
- AWS Device Farm Developer Guide: Test frameworks and built-in tests
- AWS Device Farm Developer Guide: Automatically run Appium tests
- AWS Device Farm Developer Guide: Remote access
- AWS Device Farm Developer Guide: VPC-ENI in AWS Device Farm
- AWS Device Farm Developer Guide: Data protection
- Device Farm desktop browser testing: What is Device Farm desktop browser testing?
- AWS Device Farm Developer Guide: Logging AWS Device Farm API calls with AWS CloudTrail
- Distributed Load Testing on AWS: Automate the testing of your software applications at scale
- AWS Device Farm pricing