# Email and SMS testing integrations

Use your existing test runner to drive the application and MailSlurp to create inboxes, receive email or SMS, and extract the code or link needed to finish the flow. Start with [integration testing](/docs/testing/) for the shared workflow or [examples by task](/docs/examples-by-task/) for runnable projects.

## Browser automation

| Framework | Guide |
| --- | --- |
| Playwright | [Email verification, SMS and AI extraction](/docs/playwright/) |
| Cypress | [Cypress MailSlurp integration](/docs/cypress-mailslurp/) |
| Selenium | [WebDriver email and SMS testing](/docs/selenium/) |
| WebdriverIO | [WebdriverIO setup](/docs/webdriverio/) |
| CodeceptJS | [CodeceptJS integration](/docs/codeceptjs/) |
| Robot Framework | [Robot Framework setup](/docs/robot-framework/) |
| TestCafe | [TestCafe integration](/docs/testcafe/) |

## Test runners

| Runner | Guide |
| --- | --- |
| TestNG | [Java email and OTP testing](/docs/testng/) |
| JUnit | [JUnit email tests](/docs/junit/) |
| Pytest | [Python email tests](/docs/pytest/) |
| PHPUnit | [PHP email and OTP tests](/docs/phpunit/) |

For reusable browser flows, follow [Page Object Model for E2E MFA testing](/guides/page-object-model-e2e-mfa-testing/). It separates page actions from email and SMS waits in Selenium, TestNG and Playwright.

## Hosted testing and workflow tools

| Tool | Guide |
| --- | --- |
| BrowserStack | [BrowserStack integration](/docs/browserstack/) |
| ACCELQ | [ACCELQ integration](/docs/accelq/) |
| ReadyAPI | [Email and SMS testing with ReadyAPI](/docs/readyapi/) |
| SmartBear Reflect | [Reflect testing](/docs/reflect-run/) |
| Tricentis Testim | [Testim integration](/docs/testim/) |
| UiPath | [UiPath integration](/docs/uipath/) |
| MuleSoft | [Anypoint Studio integration](/docs/mulesoft/) |

Whichever runner you choose, configure [authentication](/docs/authentication/) in the runner or server, use [bounded waits](/docs/wait-for/), and define [resource cleanup](/docs/test-resource-lifecycle/). For delivery under load, use the [load testing guide](/docs/deliverability-test/).
