lila

Official CLI for Lila: the testing framework for startups

https://github.com/lila-team/lila

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.5%) to scientific vocabulary

Keywords

ai-agents llm qa qa-automation startups testing
Last synced: 6 months ago · JSON representation ·

Repository

Official CLI for Lila: the testing framework for startups

Basic Info
  • Host: GitHub
  • Owner: lila-team
  • Language: Python
  • Default Branch: main
  • Homepage: https://lila.dev
  • Size: 280 KB
Statistics
  • Stars: 17
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
ai-agents llm qa qa-automation startups testing
Created about 1 year ago · Last pushed 9 months ago
Metadata Files
Readme Citation

README.md

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

```yaml 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.

```yaml 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

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

click: perform a click on a described element

```yaml - click: on the checkout cart

or

  • click: on the direction item # or
  • click: on button 'Create' ```

input: type text into an input field

```yaml - 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

```yaml - submit: the login form

or

  • submit: the search ```

wait: just waits N seconds

yaml - wait: 10 # waits 10 seconds

pick: pick an element from a dropdown

yaml - pick: EST from the timezone dropdown

exec: run a bash command

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

or

  • exec: psql -c "INSERT ..." # single line ```

Verifications

Each step can have one or more verify assertions.

```yaml - 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:

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)

yaml 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

Owner

  • Name: Lila
  • Login: lila-team
  • Kind: organization
  • Email: info@lila.dev

Lila: e2e tests anyone can implement

Citation (CITATION.cff)

@software{browser_use2024,
  author = {Müller, Magnus and Žunič, Gregor},
  title = {Browser Use: Enable AI to control your browser},
  year = {2024},
  publisher = {GitHub},
  url = {https://github.com/browser-use/browser-use}
}

GitHub Events

Total
  • Watch event: 17
  • Push event: 23
  • Public event: 1
  • Create event: 1
Last Year
  • Watch event: 17
  • Push event: 23
  • Public event: 1
  • Create event: 1

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 57
  • Total Committers: 2
  • Avg Commits per committer: 28.5
  • Development Distribution Score (DDS): 0.298
Past Year
  • Commits: 57
  • Committers: 2
  • Avg Commits per committer: 28.5
  • Development Distribution Score (DDS): 0.298
Top Committers
Name Email Commits
Surfing Devs s****s@g****m 40
Ivan Itzcovich i****h@g****m 17

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels