A CLI for lila.dev
Project description
The best testing framework for startups 🚀
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 thelila.tomlconfig 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lilacli-0.1.12.tar.gz.
File metadata
- Download URL: lilacli-0.1.12.tar.gz
- Upload date:
- Size: 18.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b65b41c7e7c9d4e4fa685f03f0d0979211f229d306ddc4c58814c4dfde5d4cde
|
|
| MD5 |
8ee48bc9e0c44c853435d98250866df2
|
|
| BLAKE2b-256 |
e7bec0678895af3aef959589dfc88a451fbc07055eafe7f638a8b2fadb5fc954
|
File details
Details for the file lilacli-0.1.12-py3-none-any.whl.
File metadata
- Download URL: lilacli-0.1.12-py3-none-any.whl
- Upload date:
- Size: 19.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53bcf5bc334d22308800ce54cd589aaa0ddf680d02c50d8b41465248f1259d00
|
|
| MD5 |
f0bd11802a93d003fca845cf949d278c
|
|
| BLAKE2b-256 |
0fb2577599ea87f7c1061c03e00fdcd0e84f3dfbf2e78c8e3fb38ad63d9df83a
|