Skip to main content

identifier-checker

A universal, automated command-line tool for mobile QA and test automation engineers working with any mobile application technology:

  • Native Android (Kotlin / Java / Jetpack Compose)
  • Native iOS (Swift / SwiftUI / UIKit)
  • React Native (Bridged Architecture)
  • React Native Turbo (New Architecture / Fabric)
  • Capacitor & Ionic (HTML5 WebViews)
  • Flutter

It verifies whether accessibility and test identifiers (resource-id, content-desc, name, label, testID, data-testid, id) are present in the runtime UI hierarchy, correctly exposed in page source attributes, and queryable by live Appium element locators across screens.


Key Features

  • Fast Element Lookup: Temporarily sets Appium implicit wait to 1.0 second during element verification so missing/failed identifiers check instantly without multi-second delays.
  • 🎯 Strict Appium Locators: Performs live element lookups using By.ACCESSIBILITY_ID and By.ID (no XPath overhead).
  • 📱 Screen-Wise Identifier Verification: Provide your expected identifiers grouped screen-by-screen in a clean JSON format.
  • ⏸️ Interactive Screen Navigation: Verifies the initial screen on app launch, then prompts you to navigate to the next screen on your device/emulator before pressing ENTER.
  • 📝 Flexible Markdown Report Output: Generates clean terminal console output and saves a Markdown summary report (id_report_<timestamp>.md or custom .md path).
  • ⚙️ CI/CD Ready: Exits with status code 0 when all identifiers across all screens pass, and 1 when any identifier fails or is missing.

Installation Options

Option 1: Install from PyPI

pip install identifier-checker
# OR using pipx (recommended for isolated global CLI tools):
pipx install identifier-checker

Option 2: Direct GitHub Install

pip install git+https://github.com/your-username/identifier-checker.git
# OR using pipx:
pipx install git+https://github.com/your-username/identifier-checker.git

Option 3: Local Installation (For Development)

git clone https://github.com/your-username/identifier-checker.git
cd identifier-checker
pip install -e .

How to Publish to PyPI & GitHub

1. Publish to PyPI

  1. Create an account on pypi.org.
  2. Build distribution wheels:
    pip install build twine
    python -m build
    
  3. Upload to PyPI:
    python -m twine upload dist/*
    

2. Push to GitHub

git init
git add .
git commit -m "Initial release of identifier-checker CLI"
git branch -M main
git remote add origin https://github.com/your-username/identifier-checker.git
git push -u origin main

Expected Input JSON Format (expected_ids.json)

Provide your expected identifiers grouped screen-wise:

{
  "screens": {
    "home_screen": [
      "app_drawer",
      "home_core_card",
      "recent_activity_$index",
      "truvideo_sdk",
      "view_all_recent_activity"
    ],
    "all_video_requests_screen": [
      "back_button",
      "status_$index",
      "toggle_stream",
      "video_request_item_$index",
      "video_request_list_add_fab_button",
      "video_requests_id_$index",
      "video_requests_type_$index"
    ]
  }
}

Usage Examples

Verification via App Package & Activity Name

identifier-checker \
  --ids expected_ids.json \
  --app-package com.example.truvideo_sample \
  --app-activity .MainActivity

Custom Output Report Path

Save report to a specific Markdown file path:

identifier-checker \
  --ids expected_ids.json \
  --app-package com.example.truvideo_sample \
  --app-activity .MainActivity \
  --output ~/Desktop/my_summary_report.md

Verification via APK / IPA Binary File

identifier-checker \
  --ids expected_ids.json \
  --app /path/to/app.apk

Command Line Reference

Argument Description Default
--ids Path to JSON file containing expected identifiers. Required
--app Path to APK or IPA application binary. from config
--app-package Android app package name. from config
--app-activity Android main activity name. from config
--platform Target platform (android or ios). android
--device-name Target device or emulator name. emulator-5554
--appium-url Appium server URL. http://127.0.0.1:4723
--output Output directory OR custom .md report path. reports
--wait Seconds to wait after app launch or screen prompt for UI to settle. 1.0
--implicit-wait Timeout in seconds for element lookups. 5.0
--no-reset Do not reset application state between sessions. True

Exit Codes

Exit Code Meaning
0 Success: All expected identifiers across all screens passed exact match and live find checks.
1 Failure: One or more identifiers were missing, merged, failed live lookup, or a setup error occurred.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

identifier_checker-1.0.0.tar.gz (17.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

identifier_checker-1.0.0-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

Details for the file identifier_checker-1.0.0.tar.gz.

File metadata

  • Download URL: identifier_checker-1.0.0.tar.gz
  • Upload date:
  • Size: 17.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for identifier_checker-1.0.0.tar.gz
Algorithm Hash digest
SHA256 fed3d8343d57d5a1668d992f5dd8e7844cf50c2f4c1fe8c26648c2cb387bd50f
MD5 890be34d81f0cee4de9bc04f4acebc90
BLAKE2b-256 136101718250a76768354758a2c24e93e0990ee897e1a71bd43fdb97a1b6daa8

See more details on using hashes here.

File details

Details for the file identifier_checker-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for identifier_checker-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bbc884b415ba2953f90f0adbd898ca55fa8837188d37492dbacfe7260aaa293c
MD5 528f9f5783ab8084ba881acbadb7a0eb
BLAKE2b-256 e72c8b8716f33c741923d24738baf204b62a9eb9f9e877bd3c671a5a2f45b3cb

See more details on using hashes here.

Release history Release notifications | RSS feed

1.1.1

2 files

1.1.0

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

This release

1.0.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page