Skip to main content

IATest

Describe the goal. Explore the app. Verify the outcome.

AI-driven testing for APIs, browsers, desktop and mobile apps — with performance, security, data and protocol checks in the same workflow.

PyPI Python Tests License

English · 简体中文

Quick start · How it works · What you can test · Examples · FAQ · Documentation

IATest turns a business goal into an observed UI journey, independent replay and a reusable test plan. It also imports API contracts, runs bounded load and security checks, validates data and messages, and connects those tests into larger business workflows.

Use the local Web console or CLI. Keep goals, cases, plans, rules and measurement assets together. Review original assertions and evidence alongside any AI explanation.

Version 2.1.0 stores project assets as readable files grouped by test type, with rebuildable query indexes and compatible migration from previous layouts. See the release and migration notes.

IATest workflow: goal, exploration, independent replay, reusable assets and results

Quick start

Requires Python 3.11+. Extra tools depend on the target you test.

python -m pip install "iatest-framework==2.1.0"
mkdir my-tests
cd my-tests
iatest init --project demo
iatest web --project demo

Open http://127.0.0.1:8765. In Settings, configure your model and environment-variable references. Then open Test workspace → UI & interaction:

  1. Choose a browser, Android, iPhone/iPad or desktop target.
  2. Describe the business goal and a concrete expected outcome.
  3. Start AI goal exploration and review the independent replay results.
  4. Open the saved case and plan in Test assets → UI tests.

For example:

Set the nickname to “Test User”, save it, then reload the page. The test passes only if the nickname still equals “Test User”.

No selectors or complete click script are required for this entry path. You supply the target and trusted expectation; IATest discovers the steps. Starting exploration uses the configured model and acts on the target application.

Browsers need an installed Chromium-family browser or a supported WebDriver backend. Native mobile and desktop tests need the platform tools and permissions in the environment guide.

Run a test without an AI model

Create records.json:

{
  "id": "unique-records",
  "kind": "data",
  "spec": {
    "records": [{"id": 1}, {"id": 2}],
    "checks": [{"id": "unique-id", "rule": "unique", "path": "$.id"}]
  }
}
iatest test import-plan records.json --project demo
iatest test run unique-records --project demo
iatest test reports --project demo

Saved deterministic plans run without model calls. AI is used when you request exploration, generation, visual assistance or evidence analysis.

How it works

Goal → observed actions → independent replay → reusable assets → evidence.

  • Declare the outcome. Checks cite your goal and trusted rules before state-changing actions. Current screen contents do not become the expected answer.
  • Observe and explore. Bounded native or browser tools locate controls and execute authorized actions. Manual step composition is also available.
  • Replay independently. UI exploration performs at least two fresh-session replays. Stable success and stable business failure are recorded separately; incomplete cases remain candidates.
  • Reuse the plan. Saved plans can run again, join workflows, execute on authorized nodes or become part of release verification.
  • Keep the evidence. Assertions, screenshots, measurements, errors and cleanup results remain distinct from model interpretations.

The console separates Test workspace, Devices & environments, Test assets, Runs & reports, Project knowledge and Settings. The asset library treats UI, API, performance and security assets consistently, with filtering and links between goal cases and compiled plans.

Project assets follow projects/<project>/assets/<test-type>/: API, Web, desktop, Android, iOS, performance and security each have readable plan, case and rule files. Results and evidence live under reports/<test-type>/; SQLite provides rebuildable query views and internal state. Existing layouts migrate without deleting the originals. See project storage and migration.

What you can test

Target Capabilities Preparation
APIs Contract import, AI-assisted case design, authentication, fixtures, data-driven cases, Mock and reports Authorized HTTP service; a model for generation
Browser UI Goal exploration, native input, frames, pages, Shadow DOM, screenshots and visual targets Installed browser/driver and explicit network policy
Desktop apps macOS AX, Windows UIAutomation, Linux AT-SPI; controls, keys, drag, scroll and screenshots Running app, app/process identity and accessibility permissions
Android Native input, IME, gestures, WebView, video, app delivery and scoped metrics Android SDK/JDK, authorized ADB and framework components
iOS XCTest input, USB or TLS observation, WKWebView, video and explicit measurements macOS/Xcode, developer mode and trusted signed Runner
Performance HTTP/transaction load, protocol sessions, LAN workers and client metric gates Authorized environment, bounded load and compatible collectors
Security & accessibility Explicit authorization checks, rule-driven scans, automated accessibility checks and human review Declared scope, identities and relevant review evidence
Data & protocols Read-only SQLite/PostgreSQL/MySQL, data quality, WebSocket, MQTT and structured gRPC Authorized sources/services; optional database drivers
Business workflows Typed dependencies, concurrency, cleanup, resource ownership, remote nodes and release suites Saved plans and explicit node/resource configuration
iatest test capabilities
iatest test doctor
iatest mobile doctor

Platform support has specific boundaries. Safari uses an explicit navigation-only mode; some Apple raw collectors remain unreliable; BLE digitizer reports are experimental; physical phones do not provide full OS isolation. See the capability matrix before selecting a backend.

Optional dependencies

# PostgreSQL/MySQL drivers and SQL authorization checks
python -m pip install "iatest-framework[database]==2.1.0"

# Pinyin support for the optional HID Chinese-input channel
python -m pip install "iatest-framework[hid]==2.1.0"

These extras do not install browsers, Android SDKs, Xcode or HID hardware.

Examples

Scenario Start here
Explore a profile-editing UI UI goal lab · Goal exploration guide
Combine UI, HTTP, performance and security Automation lab · Test plans
Import an API contract API service · OpenAPI contract
Configure a phone or emulator Device profiles · Mobile testing
Work with measured data or HID Measurements · HID examples

The UI lab includes a deliberately broken save path for comparison. Demo services bind to loopback; replace their addresses and identities before testing your own environment. Examples are source-repository resources; installed users can start directly from the console or the JSON plan above.

FAQ

Do all tests need an AI model?

No. Saved plans and deterministic checks execute without a model. Exploration, generation and AI analysis require a compatible configured provider.

Is a finished task a passed test?

No. Task lifecycle and verdict are separate. Missing measurements, ambiguous targets, incomplete observation and unknown input delivery cannot pass. AI analysis does not replace the original verdict.

Is everything local?

The console, execution and asset storage run locally. Requested model operations send selected context, and explicitly enabled images, to your configured provider. Its data policy applies. Keep credentials in environment-variable references.

Do mobile tests need Appium or a jailbroken iPhone?

The framework owns its native drivers and does not require Appium. Standard iOS testing uses a signed XCTest Runner. Optional Android-to-iPhone Bluetooth HID and USB HID channels have their own setup and compatibility requirements.

Does installing the package complete device setup?

No. Browser drivers, mobile SDKs, signatures, native components, interactive desktops and hardware permissions are target-specific. Start with the environment and platform guides.

What changed in 2.0?

The Python package is now iatest; update imports and python -m ai_apitest to python -m iatest. The PyPI distribution remains iatest-framework and the command remains iatest. Examples and console filenames now describe the wider testing scope. See release and migration notes.

Documentation

Development

git clone https://github.com/hinayoung23/IATest.git
cd IATest
python -m venv .venv
# Activate .venv using your shell's normal command.
python -m pip install -e ".[test,database,hid]"
python -m pytest -q

Browser and native integration tests require their documented environments; skipped tests are not device acceptance. Generated projects, credentials, recordings and build products are excluded from source control and release packages. See CONTRIBUTING for layout and release checks.

Licensed under Apache-2.0.

Metadata

Release files for iatest-framework 2.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iatest-framework 2.1.0
File Size Uploaded Provenance Actions
iatest_framework-2.1.0.tar.gz 1.6 MB With provenance Details for iatest_framework-2.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for iatest-framework 2.1.0
File Interpreter ABI Platform Actions
iatest_framework-2.1.0-py3-none-any.whl Python 3 none any Details for iatest_framework-2.1.0-py3-none-any.whl

Total release size: 2.8 MB

Release files / iatest_framework-2.1.0.tar.gz

Download URL iatest_framework-2.1.0.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
8433fcbc0a1489cfd9cadda3bf10bd575925df7b2efc365d5fc8050a1d2c59d5
BLAKE2b-256 checksum
How to use checksums
75dce59c618c8d7e17301a61bc3712ecf80419685e237a8003f429124d63f364
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.

Transparency log

Release files / iatest_framework-2.1.0-py3-none-any.whl

Download URL iatest_framework-2.1.0-py3-none-any.whl
Size 1.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
f74b164a58d557d88b9a08b3e85cc049e17d4dc8a4fd512fc7218944d65d4d12
BLAKE2b-256 checksum
How to use checksums
0aaaedd853917e3e7b991574dfb6884eadbe372f6118f0dbda3dc7ef675eee2d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.

Transparency log

Security for iatest-framework 2.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for iatest_framework-2.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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