Skip to main content

The best testing framework for startups 🚀

PyPI - Version Documentation CI Twitter Discord GitHub Repo stars

Lila CLI is a powerful tool for running end-to-end tests written in human-readable plain text using YAML files. It simplifies the testing process by allowing anyone in the team to write tests in a natural, easy-to-understand format.

No coding required.

Quick start

With pip (Python>=3.11)

pip install lilacli

Install Playwright Chromium web drivers

playwright install chromium

Create your first testcase in a demo.yaml file

steps:
  - goto: https://www.google.com/maps

  - input: Empire State on the main search bar
    verify: a dropdown with suggestions appears

  - click: on the first suggestion from the dropdown
    verify: the map shows the Empire State Building in NY

Fetch an API Key from Lila app and add it to an .env file:

LILA_API_KEY=...

Run

lila run demo.yaml

How does it work?

Lila runs your app in a local browser with Playwright and uses an LLM-powered engine to guide the CLI run high level instructions. Lila extracts information from the DOM using the awesome library browser-use

Why Lila?

  • No coding required.
  • Self healing tests, does not rely on low level implementation.
  • Anyone in the team can implement tests.
  • Integrates natively with Playwright storage states.
  • Runs browser locally, making it ideal for localdev or staging environments.

Writing tests

Tests are just YAML files. Here is the same example as the quick start.

steps:
  - goto: https://www.google.com/maps

  - input: Empire State on the main search bar
    verify: a dropdown with suggestions appears

  - click: on the first suggestion from the dropdown
    verify: the map shows the Empire State Building in NY

Step types

goto: navigate to a URL

- goto: https://private.staging.my-app.com

click: perform a click on a described element

- click: on the checkout cart
# or
- click: on the direction item
# or
- click: on button 'Create'

input: type text into an input field

- input: foo@bar.com as email
# or
- input: iPad mini in the main search bar

submit: submits a form by clicking a button or pressing enter

- submit: the login form
# or
- submit: the search

wait: just waits N seconds

- wait: 10  # waits 10 seconds

pick: pick an element from a dropdown

- pick: EST from the timezone dropdown

exec: run a bash command

- exec: |  # multiline
    curl -X POST ...

# or
- exec: psql -c "INSERT ..." # single line

Verifications

Each step can have one or more verify assertions.

- goto: https://my-app.com/login
  verify: there is a login form with username and password  # Single verification

- click: the checkout cart
  verify:  # multi verifications
    - 5 items appear in the purchase summary
    - the total is 500 USD

More on building tests

For more information on how to build tests, checkout the guides

More examples

For test examples, Lila runs daily a suite of tests over public URLs. Check them out here

Creating an account

Lila is free for beta users. Create your free account at https://lila.dev. You will need the account to fetch an API key to run lila CLI.

Reusing state

Lila runs save the browser state in the output folder. To re-use where another test left off, just pass --browser-state parameter.

For example:

login.yaml:

steps:
  - goto: https://my-app.com/login
  - input: foobar as username
  - input: barbaz as password
  - submit: the login form
    verify: login was successful

lila run login.yaml -> This will generate lila-output/login.json

dashboard.yaml (needs a logged in user)

steps:
  - goto: https://my-app.com/dashboard
    verify: there is a panel displaying metrics

lila run dashboard.yaml --browser-state lila-output/login.json

CLI Parameters

  • --browser-state: Initialize the browser with a Playwright JSON storage session
  • --tags: Filter tests by specified comma-separated tags
  • --exclude-tags: Filter out tests by specified comma-separated tags
  • --output-dir: Specify the output directory for the browser states
  • --config: Point to the lila.toml config file if not using the root location
  • --headless: If present, does not open browser
  • --debug: Displays debug logs

CI/CD ready

Checkout an example for a daily run using GHA

Documentation

For comprehensive documentation, visit docs.lila.dev.

Examples

Find a variety of test examples in our examples repository, showcasing different testing scenarios and best practices.

Contact

Reach out at info@lila.dev

Join our Discord server

Follow us at Twitter - X

Metadata

Release files for lilacli 0.1.13

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

Source distribution (sdist)

Source distribution for lilacli 0.1.13
File Size Uploaded
lilacli-0.1.13.tar.gz 18.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lilacli 0.1.13
File Interpreter ABI Platform
lilacli-0.1.13-py3-none-any.whl Python 3 none any Details

Total release size: 37.5 kB

Release files / lilacli-0.1.13.tar.gz

Download URL lilacli-0.1.13.tar.gz
Size 18.7 kB
Tags Source
SHA-256 checksum
How to use checksums
47b7f5477952a62fe3784a837b0c95f0802d6a1eaec165364ee257b72133397a
BLAKE2b-256 checksum
How to use checksums
b4c3b8c0ea3cb62f39cbceced19d374097a015213ac71fb06393583bcbebb5bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.11

Release files / lilacli-0.1.13-py3-none-any.whl

Download URL lilacli-0.1.13-py3-none-any.whl
Size 18.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2372bbddf637e93a063cb8d43a8e35cddf586cb790c5e352d3c18a33bc435acb
BLAKE2b-256 checksum
How to use checksums
4830b07a8e11bc2d5c75b37cee5d3f68fa346b2cdaf972895185df524dc5c4d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.11.11

Release history Release notifications | RSS feed

This release

0.1.13 This release

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release 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