---
schema_version: "1"
id: b9f7f6687a416c498fda8e5476e1f675985a9cb37b5a9728494699717c98aed5
title: Get Started
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/lwc/utam/guide/get-started-utam.md
canonical_url: https://developer.salesforce.com/docs/platform/utam/guide/get-started-utam.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 4c99839952af2b0c740c140ad6236e4adc9b30fc4e37b09a7c8f7cc608810c93
products:
  - UI Test Automation Model
  - lwc
---
# Get Started

UI Test Automation Model (UTAM) makes it easier to write end-to-end UI tests by abstracting page object code into JSON. Page objects encapsulate UI components into a scalable interface for your test code. The UTAM framework is a web standard, and can test non-Salesforce apps, too.

Other writing query selectors for end-to-end tests don't scale because when the DOM structure changes, query selectors break.
A large application can have a lot of query selectors, which means a lot of time fixing tests. But page objects encapsulate the capabilities of a UI component into an interface that test code can interact with.
Each application component has a corresponding JSON page object that declares its test interface.
UTAM provides a JSON grammar to write page objects and a compiler to generate runnable code in Java or JavaScript.
The runnable test code UTAM creates expects certain things in the UI (like clearing or setting text).
UTAM abstracts the DOM away from the test, insulating test expectations from implementation details like shadow DOM.

To get started with UTAM, choose the resources that match your learning style.

## Discover

- [UTAM Tutorials](https://utam.dev/tutorial/introduction) for a suite of interactive tutorials.
- [JSON page object grammar](/docs/platform/utam/references/utam-grammar/grammar.html)
- Salesforce Developers' Blog: [Run End-to-End Tests with UTAM](https://developer.salesforce.com/blogs/2022/05/run-end-to-end-tests-with-the-ui-test-automation-model-utam)

## Video Tutorial

::video{src="https://www.youtube.com/embed/rxZfsjIwWeU" title="Run End-to-End Tests With the UI Test Automation Model (UTAM)" type="youtube"}

## Hands-On Learning

The `utam-js-recipes` and `utam-java-recipes` repos contain examples of how to test the Salesforce UI.

### JavaScript

- [utam-js-recipes](https://github.com/salesforce/utam-js-recipes)
- [Guide for JavaScript Developers](https://developer.salesforce.com/docs/platform/utam/guide/js-guide.md)

### Java

- [utam-java-recipes](https://github.com/salesforce/utam-java-recipes)
- [Guide for Java Developers](https://developer.salesforce.com/docs/platform/utam/guide/java-guide.md)

## Develop

- [Browser extension](https://developer.salesforce.com/docs/platform/utam/guide/browser-extension.md) to help you find page objects provided by Salesforce
- [UTAM Generator](https://developer.salesforce.com/docs/platform/utam/guide/generator-get-started.md) to generate UTAM JSON page objects from HTML files
- [Design Page Objects](https://developer.salesforce.com/docs/platform/utam/guide/page-objects.md) if you prefer to manually build JSON page objects from scratch instead of using the UTAM generator
- Compile your JSON page objects to [JavaScript](https://developer.salesforce.com/docs/platform/utam/guide/js-guide.md#compiler-setup) or [Java](https://developer.salesforce.com/docs/platform/utam/guide/java-guide.md#compiler-setup) page objects
- Write tests for [JavaScript](https://developer.salesforce.com/docs/platform/utam/guide/js-guide.md#write-ui-tests) or [Java](https://developer.salesforce.com/docs/platform/utam/guide/java-guide.md#write-ui-tests)
