Skip to main content

What is Lila?

Lila is an e2e testing platform where tests are implemented using human text.

Why?

Existing technology that runs e2e tests relies on low level implementation mainly (with tools such as Playwright). This means that even the most minor changes to style, locations or actions can break the tests as they rely on the implementation rather than the behavior.

Lila instead allows developers to define tests using human high level instructions. Then the testing engine uses its AI engine to run the instruction regardless the implementation. This way you test what your users will do, not how it is implemented.

Case example: user login

Lets compare how Lila compares to existing tools to test a user login through a email and password submission process.

playwright-test.js
const { test, expect } = require('@playwright/test');

test('login with email and password', async ({ page }) => {
// Navigate to the login page
await page.goto('https://example.com/login'); // Replace with your actual login URL

// Locate the email input field using a more complex selector
const emailInput = page.locator('form#loginForm input[type="email"][name="email"]');

// Locate the password input field using a more complex selector
const passwordInput = page.locator('form#loginForm input[type="password"][name="password"]');

// Locate the submit button using a complex selector
const submitButton = page.locator('form#loginForm button.btn-primary[type="submit"]');

// Fill out the form fields
await emailInput.fill('test@example.com'); // Replace with a valid email
await passwordInput.fill('password123'); // Replace with a valid password

// Click the submit button to log in
await submitButton.click();

// Wait for navigation to ensure the page loads after login
await page.waitForNavigation();

// Verify login success (e.g., by checking for a user-specific element or text)
const loggedInElement = page.locator('header#mainNav a.user-profile-link');

// Assert that the user profile link (or any other element indicating successful login) is visible
await expect(loggedInElement).toBeVisible();
});

Any change to the tag ids, the button classes or making the password field appear after the email field is completed will break the test.

With Lila, as long as the form can be submitted, this test will run successfully.

login.yaml
steps:
- goto: https://example.com/login
- login: using email 'test@example.com' and password 'password123'
- verify: login is successfull

This test is robust to style changes and to dynamic components. And the best part, anyone in the team can implement it. No coding or Playwright expertise required.

Goal

Let's discover Docusaurus in less than 5 minutes.

Getting Started

Get started by creating a new site.

Or try Docusaurus immediately with docusaurus.new.

What you'll need

  • Node.js version 18.0 or above:
    • When installing Node.js, you are recommended to check all checkboxes related to dependencies.

Generate a new site

Generate a new Docusaurus site using the classic template.

The classic template will automatically be added to your project after you run the command:

npm init docusaurus@latest my-website classic

You can type this command into Command Prompt, Powershell, Terminal, or any other integrated terminal of your code editor.

The command also installs all necessary dependencies you need to run Docusaurus.

Start your site

Run the development server:

cd my-website
npm run start

The cd command changes the directory you're working with. In order to work with your newly created Docusaurus site, you'll need to navigate the terminal there.

The npm run start command builds your website locally and serves it through a development server, ready for you to view at http://localhost:3000/.

Open docs/intro.md (this page) and edit some lines: the site reloads automatically and displays your changes.