Skip to main content

Yet Another Testing Language

Project description

YATL — Yet Another Testing Language

Python License GitHub stars

YATL is a declarative, YAML‑based testing language for API testing. If you know HTTP and YAML, you know YATL.

Why YATL?

Writing API tests in code is cumbersome. YATL turns tests into pure data $—$ declarative, readable, and accessible to every team member.

The Problem

  • You have to write code – even for a simple GET request
  • High entry barrier – need to know programming languages well
  • Complex dependencies – chaining requests becomes spaghetti code
  • Hard to maintain – tests become unreadable over time

The Solution

YATL is a domain‑specific language that lets you describe API tests in clean YAML. No imperative code, no hidden magic.

If you know HTTP and YAML, you know YATL.

Quick Start

Your First Test

Create ping.test.yaml:

name: ping
base_url: google.com

steps:
  - name: access_test
    request:
      method: GET
    expect:
      status: 200

Key Features

  • Declarative syntax – describe what to test, not how
  • Data extraction & templating – use Jinja2 to reuse response data
  • Multiple data formats – JSON, XML, form data, multipart files
  • Parallel execution – run tests in parallel with --workers
  • Skip tests & steps – disable tests without deleting them
  • Advanced validation – validate with rules like gt, regex, type

Example

name: User API
base_url: https://api.example.com

steps:
  - name: login
    request:
      method: POST
      url: /auth/login
      body:
        json:
          username: "test"
          password: "secret"
    expect:
      status: 200
    extract:
      token: "response.access_token"

  - name: get_profile
    request:
      method: GET
      url: /profile
      headers:
        Authorization: "Bearer {{ token }}"
    expect:
      status: 200

Installation & Usage

From PyPI (Coming Soon)

pip install yatl

Documentation

Full documentation is available in the docs/ directory:

CI/CD Integration

YATL fits seamlessly into CI pipelines. Example GitHub Actions workflow:

- name: Run YATL tests
  run: yatl tests/ --workers 5

Contributing

We welcome contributions! Check out our Contributing Guidelines to get started.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

yatl_testing-0.1.1-py3-none-any.whl (15.7 kB view details)

Uploaded Python 3

File details

Details for the file yatl_testing-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: yatl_testing-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 15.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for yatl_testing-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e6a334c04aac28a17016bb1324b5da702082ea4e574598a4eff3edd650a8c6e3
MD5 1e9bad1048b006395e1e0cdf84f65fef
BLAKE2b-256 61e9d1243a3aaf87f93073cd1e55e2aaed91a8935c6e292882d3c0ae88444c2d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page