> For the complete documentation index, see [llms.txt](https://docs.testfirst.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.testfirst.com/unified-test-automation/end-to-end-testing.md).

# End-to-End Testing

TestFirst allows multiple automation types to be combined within a single test case.

A workflow can span mobile applications, web applications, APIs, and remote systems while using the same editor, test structure, and execution model.

**Example workflow**

```
Mobile Application
        ↓
Web Application
        ↓
API Validation
        ↓
Shell / SSH Verification
```

**Example**

{% hint style="info" icon="dot" %}
The example below starts in a mobile application, continues in a web browser, validates an API, and finally verifies the server state.
{% endhint %}

```gherkin
Scenario: Launch mobile application
  Given application "{Android apps.TestFirst Sample 1}"
  And mobile device "{Devices.Android.Pixel 10}"
  When I run application
  And I tap "Submit"

Scenario: Continue in web application
  Given browser "Chrome"
  When I visit "https://testfirst.com"
  And I click "Sign in"

Scenario: Validate backend service
  Given GET HTTP request
  When I send request to "{Endpoints.Tasks}"
  Then response status should be 200

Scenario: Verify server state
  Given shell session "{Endpoints.Linux Server}"
  When I execute command "tail -100 /var/log/application.log"
  Then output should contain "Task Created"
```

{% hint style="success" icon="dot" %}
End-to-end testing workflows are particularly useful for validating complete business processes that span multiple systems and technologies.
{% endhint %}

**Learn more:**

* [Write Test Cases using Gherkin](/testfirst-editor/writing-test-cases/write-test-cases-using-gherkin.md)
* [Endpoints](/data-repository/data-repository/endpoints.md)
* [Variables](/data-repository/data-repository/variables.md)
* [Fragments](/testfirst-editor/fragments.md)
* [Mobile Automation](/testfirst-editor/android-mobile-automation.md)
