Skip to content

ADR 002: Why Selenium Appium?

Simon Sai edited this page Sep 13, 2024 · 11 revisions

ADR 002: Why Selenium Appium?

Date: 13/09/2024

Status: Approved

Context

We need to find way to control Natice App build by Flutter.

Problem

Flutter dont give developers full control of UI Element, so it's not easy to locate elements from E2E testing.

Options

  1. Espresso

Pros:

  • Deep Android * integration: Officially supported by Google, ensuring compatibility and stability for Android apps.
  • Fast performance: Runs tests efficiently as it operates directly in the app’s instrumentation.
  • Simple API: Easy to use and read for writing UI tests.
  • Automatic synchronization: Handles waiting for UI elements automatically.
  • Supports various UI tests: Can test complex interactions, including RecyclerView.
  • Strong community support: Well-documented with a large user base.

Cons:

  • Android-only: Does * not support iOS or other platforms.
  • Challenging for complex apps: May struggle with highly dynamic or complex screens.
  • Limited WebView support: Difficult to test apps that heavily rely on WebView.
  • Setup can be tricky: Initial configuration may be complex for beginners.
  1. Robot

  2. Appium

Decision

Consequences