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
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)
| File | Size | Uploaded | |
|---|---|---|---|
| lilacli-0.1.13.tar.gz | 18.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|