# How vREST NG works?

vREST NG application provides the user with the ability to create several projects and test cases. It allows the user to write scriptless automation tests using functionalities like assertions, etc.

Here are some of the things that can make you understand what vREST NG consists of and how is it working:

# Directory Structure

vREST NG stores the data locally, on your machine. This allows you to take control of your test data, and solve common problems like Version Control of your test data, etc.

vREST NG consists of projects and each project has its own directory. The directory structure of your project directory is as follows:

<PROJECT_DIRECTORY>
├─ testcases
│  ├─ <TESTCASE_1>.json
│  └─ <TESTCASE_2>.json
|
├─ authorizations
│  ├─ <AUTH_1_ID>.json
│  └─ <AUTH_2_ID>.json
|
├─ environments
│  ├─ default.json
│  └─ <ENVIRONMENT_NAME>.json
|
├─ response_validators
│  └─ <RESPONSE_VALIDATOR_NAME>.js
|
├─ schemas
│  └─ <SCHEMA_NAME>.json
|
├─ utilities
│  └─ <UTILITY_METHOD_NAME>.js
|
├─ hooks
│  ├─ <HOOK_1>.json
│  └─ <HOOK_2>.json
|
├─ config.json
|
├─ hooks.json
|
└─ testsuites.json

# Workspace

In vREST NG, a workspace is a collection of projects. The first page that you land on, in the vREST NG application, is the workspace page. This is where you add your project directories.

Through workspace, in vREST NG, it becomes really easy to organize your work, in the form of several projects. These projects are laid out in the form of a clean list so that you can browse through each of them without any hassle.

# Projects

vREST NG Projects are a way to organize your work on a contextual basis. Each project allows you to define its own unique,

  • Test Suites
  • Test Cases
  • Response Validators
  • Authorizations
  • Schemas
  • Environments
  • Utility Methods
  • Hooks

Projects are the perfectly addressable collection of your test suites and it's configurations.

# Test Suites

Test Suites are the most fundamental organizational unit in vREST NG. A test suite is nothing but a collection of multiple test cases. Each test suite has the ability to be executed separately.

# Test Cases

Test Cases are the most fundamental execution unit in vREST NG. A test case is a representation of a REST API call with

  • API method (GET, POST, PUT, DELETE,...)
  • Request Body & Headers
  • Assertions, which allows you to validate API response on the basis of certain conditions.
  • Variable Extractor, which allows you to extract a certain value from the response of API and store it in a variable which can be later used to chain test cases, or otherwise.
  • .. and many more things.