Documentation

Everything you need to know about writing and running BDD tests with Runtrixy.

Overview

Runtrixy is a no-code BDD test automation platform. You write test scenarios in plain English (or 70+ other languages) using Gherkin syntax, and Runtrixy executes them automatically against web applications, REST APIs, and SQL databases.

WEB Testing

Browser automation with Selenium — navigate, click, type, assert elements using Page Objects.

REST Testing

HTTP API testing — send requests, validate status codes, headers, JSON response bodies.

SQL Testing

Database testing — execute queries, validate data, set up test fixtures.

How It Works

  1. Create a Project to organize your tests
  2. Configure your test targets (Web pages, APIs, databases)
  3. Write .feature files using Gherkin syntax in the Editor
  4. Run your tests and view results in real-time

Getting Started

Follow these steps to run your first test in under 5 minutes.

1

Create a Project

Go to Projects and click "New Project". Give it a name and optional description.

2

Configure Your Test Target

Depending on what you're testing:

  • WEB Config — Add Page Objects with element selectors (CSS/XPath)
  • REST Config — Add API environments with base URLs and variables
  • SQL Config — Add database connections
3

Write a Feature File

Open the Editor and create a .feature file:

Feature: Login
  Scenario: Successful login
    Given I navigate to "https://myapp.com/login"
    When I type "admin@test.com" into "emailInput"
    And I type "password123" into "passwordInput"
    And I click "loginButton"
    Then I should see "Dashboard"

The editor provides autocomplete — type after Given/When/Then to see all available steps.

4

Run Your Tests

Go to Runs and click "Run Tests". Watch real-time results with pass/fail status for each scenario and step.

Projects

A Project is your main workspace. Each project contains its own feature files, configurations, step definitions, and test runs.

Project Dashboard

  • Editor — Write .feature files
  • WEB Config — Page objects & selectors
  • REST Config — API environments
  • SQL Config — Database connections
  • Steps — Step definitions catalog
  • Runs — Execute & view results
  • Schedules — Automated scheduling

Plan Limits

  • • Maximum number of projects
  • • Maximum users per organization
  • • Monthly test run limit

Check your current usage in the Dashboard.

Feature Editor

The Editor is where you write your test scenarios using Gherkin syntax. It features a full code editor with syntax highlighting, autocomplete, and validation.

Autocomplete

Start typing after a Gherkin keyword to see suggestions:

  • Step patterns from predefined and custom steps
  • Page Object names and selectors (in quotes)
  • REST environment names and variables
  • Database connection names
  • Gherkin keywords and templates

Key Features

  • Ctrl/Cmd + S to save
  • • File sidebar for multiple .feature files
  • • Local mode or Git mode (commit & push)
  • • Branch switching with Git
  • • Diff view for changes
  • • Test type detection (WEB/REST/SQL badges)

Gherkin Syntax Quick Reference

Feature: Feature name
  Description of the feature

  Background:
    Given a common precondition for all scenarios

  Scenario: Scenario name
    Given a precondition
    When an action is performed
    Then the expected result

  Scenario Outline: Parameterized test
    Given I navigate to "<url>"
    When I type "<user>" into "username"
    Then I should see "<greeting>"

    Examples:
      | url             | user  | greeting     |
      | https://app.com | admin | Welcome back |
      | https://app.com | guest | Hello guest  |

Tags: Use @WEB, @REST, @SQL for test types, or @smoke, @regression for categorization.

WEB Config — Page Objects & Selectors

Page Objects let you give meaningful names to web elements. Instead of writing raw selectors in your feature files, you use names like "loginButton" or "LoginPage.emailInput".

1

Create a Page Object

Give it a name (e.g. "LoginPage") and a base URL (e.g. "https://myapp.com/login").

The base URL is used when you write: Given I navigate to "LoginPage"

2

Add Selectors

For each element, add:

  • Element Name — e.g. "emailInput", "loginButton"
  • Selector Type — CSS or XPath
  • Selector Value — e.g. #email, //button[@type='submit']
3

Use in Feature Files

# Navigate using page name
Given I navigate to "LoginPage"

# Use element names directly
When I type "admin@test.com" into "emailInput"
And I click "loginButton"

# Or use PageName.elementName format
When I type "admin@test.com" into "LoginPage.emailInput"

# Direct selectors also work
When I click "#submit-btn"
And I click "//button[@id='login']"

Tip

In the editor, type inside quotes (") to get autocomplete suggestions for your Page Object names and element selectors.

REST Config — API Environments

Define API environments with base URLs and reusable variables to test the same API against different environments.

1

Create an Environment

Give it a name (e.g. "Staging API") and a base URL (e.g. "https://api.staging.myapp.com").

2

Add Variables

Define reusable variables like API keys or tokens. Reference them with {{apiKey}}.

3

Use in Feature Files

Given I use environment "Staging API"

When I send GET request to "Staging API" "/users"
Then the response status should be 200
And the response body should contain "users"

When I set header "Authorization" to "Bearer {{apiKey}}"
And I send POST request to "Staging API" "/users"
Then the response status should be 201

SQL Config — Database Connections

Connect to databases for data validation, test setup, and cleanup.

1

Add a Connection

Provide the database type (PostgreSQL, MySQL, etc.), host, port, database name, username, and password.

2

Use in Feature Files

Given I connect to database "TestDB"

When I execute query "SELECT count(*) FROM users WHERE active = true"
Then the query result should contain "5"

Given I execute update "DELETE FROM test_orders WHERE test_flag = true"
When I execute insert "INSERT INTO users (name, email) VALUES ('Test', 'test@test.com')"

Step Definitions

Step definitions are the building blocks of your tests. Each line after Given/When/Then is matched to a step definition.

300+ Predefined Steps

  • WEB — Navigation, clicks, typing, assertions, waits, screenshots
  • REST — HTTP methods, headers, auth, response validation
  • SQL — Queries, inserts, updates, transactions

Browse all steps in the Steps page within your project.

Custom Steps (Composites)

Combine multiple steps into one reusable macro. Example: I login as {role} that navigates, types credentials, and clicks login.

Custom steps support parameters ({paramName}) that get replaced at runtime.

How Parameters Work

Step patterns use {paramName} as placeholders. In feature files, provide values in quotes:

# Pattern: I navigate to {url}
Given I navigate to "https://example.com"

# Pattern: I type {text} into {element}
When I type "hello@test.com" into "emailInput"

# Pattern: the response status should be {code}
Then the response status should be 200

Test Runs

Execute all feature files and see real-time results.

Running Tests

  • • Click "Run Tests" to start
  • • All .feature files are executed
  • • WEB tests use headless Chromium
  • • Results update in real-time
  • • Each scenario shows pass/fail with duration
  • • Failed steps include error messages and screenshots

Run Details & Reports

  • • Scenario and step-level results
  • • Screenshots for failed WEB steps
  • • Request/response logs for REST steps
  • • Query results for SQL steps
  • • Export to JUnit XML or HTML report
  • Rerun failed scenarios only
Queued Running Passed Failed Error

Schedules

Automate your tests with cron-based scheduling.

Creating a Schedule

  • • Define a name and cron expression
  • • Common patterns: daily at midnight, hourly, every 30 minutes
  • • Enable/disable without deleting
  • • Manually trigger anytime

Git Integration

Git integration is optional. Without it, feature files are stored locally. With Git, you get version control and CI/CD integration.

Local Mode (No Git)

  • • Feature files saved directly on server
  • • Simple save with Ctrl/Cmd + S
  • • No branching or version history
  • • Perfect for getting started

Git Mode

  • • Connect to GitHub, GitLab, or Bitbucket
  • • Save & commit with messages
  • • Switch between branches
  • • View diffs before committing
  • • Sync to pull latest changes
  • • Webhook triggers for CI/CD
1

Setup Git Connection

Go to Settings → add a Git connection with your provider and access token.

2

Connect to Project

In your project, click "Connect Repository" and provide the repo URL and default branch.

Multi-Language Support (70+ Languages)

Runtrixy supports all official Gherkin languages — write scenarios in your native language with full syntax highlighting, validation, and autocomplete.

🇹🇷 Turkish
Özellik, Senaryo, Diyelim ki, Olduğunda, O zaman
🇩🇪 German
Funktionalität, Szenario, Angenommen, Wenn, Dann
🇫🇷 French
Fonctionnalité, Scénario, Soit, Quand, Alors
🇪🇸 Spanish
Característica, Escenario, Dado, Cuando, Entonces
🇧🇷 Portuguese
Funcionalidade, Cenário, Dado, Quando, Então
🇷🇺 Russian
Функция, Сценарий, Допустим, Когда, Тогда
🇯🇵 Japanese
フィーチャ, シナリオ, 前提, もし, ならば
🇨🇳 Chinese
功能, 场景, 假如, 当, 那么
🇰🇷 Korean
기능, 시나리오, 조건, 만약, 그러면

And many more: Arabic, Hindi, Dutch, Italian, Polish, Ukrainian, Thai, Vietnamese, Indonesian, Czech, Hungarian, Hebrew, Georgian, Armenian...

# Turkish
Özellik: Kullanıcı Girişi
  Senaryo: Başarılı giriş
    Diyelim ki "https://uygulama.com/giris" adresine gidiyorum
    Olduğunda "email" alanına "admin@test.com" yazıyorum
    O zaman "Dashboard" görmeliyim

# German
Funktionalität: Benutzeranmeldung
  Szenario: Erfolgreiche Anmeldung
    Angenommen I navigate to "https://app.com/login"
    Wenn I type "admin@test.com" into "emailInput"
    Dann I should see "Dashboard"

# Japanese
フィーチャ: ユーザーログイン
  シナリオ: 正常ログイン
    前提 I navigate to "https://app.com/login"
    もし I type "admin" into "username"
    ならば I should see "Welcome"

Settings & API Keys

Manage Git connections and API keys from Settings.

Git Connections

Add connections to GitHub, GitLab, or Bitbucket using personal access tokens. Link them to projects for Git-based workflow.

API Keys

Generate API keys for CI/CD pipelines and webhook triggers. Set optional expiration dates for security.