Skip to content

frontendonly/api-testing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API-Testing

API-Testing is a simple and effective package designed to help developers configure and run API test cases easily. It streamlines the process of setting up API tests and executing them based on predefined configurations.

Features

  • init
    Creates a sample API-testing configuration file named api-testing.json for the specified application. This file serves as a template to define your API test cases.

    foat init test-app --swagger.url='' --swagger.startsWith='/api'
  • run
    Runs all configured test cases as defined in the specified api-testing.json file. This command executes the tests and helps you validate your API endpoints efficiently.

     foat run [Optional <testFilePath>] [--concurrent.rampup=1] [--concurrent.every=1000] [--concurrent.max=10] [--concurrent.enabled=false]

Installation

To install the API-Testing package, use npm:

npm install -g @frontendonly/api-testing

Sample Configurarion

{
   "name": "My Application",
   "envs": {
      "local": {
         "host": "https://localhost:8080",
         "contextPath": "/api"
      },
      "prod": {
         "host": "https://api.frontendonly.com",
         "contextPath": ""
      }
   },
   "defaultContext": {
      "env": "local",
      "contextName": "CONTEXT_VALUE",
      "dynamicContext": "FO_%$.contextName%"
   },
   "auth": {
      ...
   }
   "specs": [
      {
         "name": "Test Login",
         "request": {
            "path": "/user/authorize",
            "conf": {
               "method": "POST",
               "body": {}
            },
            "beforeRequest": {
               "requestDataMapping": [
                  {
                     "key": "email",
                     "value": "email"
                  },
                  {
                     "key": "password",
                     "value": "pwd"
                  }
               ]
            }
         },
         "store": [
            {
               "key": "accessToken",
               "value": "$.data.accessToken"
            }
         ],
         "test": [
            {
               "title": "User able to login with correct credentials",
               "key": "$.data.accessToken",
               "operator": "def"
            }
         ]
      }
   ]
}

Test case Operators

gt (greater than)
Checks if the first value (a) is greater than the second value (b).
Usage: operators.gt(5, 3) returns true.

lt (less than)
Checks if the first value (a) is less than the second value (b).
Usage: operators.lt(2, 4) returns true.

eq (equal)
Checks if the first value (a) is equal to the second value (b).
Usage: operators.eq(5, 5) returns true.

not (not equal)
Checks if the first value (a) is not equal to the second value (b).
Usage: operators.not(5, 3) returns true.

gte (greater than or equal to)
Checks if the first value (a) is greater than or equal to the second value (b).
Usage: operators.gte(5, 5) returns true.

lte (less than or equal to)
Checks if the first value (a) is less than or equal to the second value (b).
Usage: operators.lte(3, 5) returns true.

def (defined)
Checks if the first value (a) is not undefined.
Usage: operators.def(5) returns true.

notdef (not defined)
Checks if the first value (a) is undefined.
Usage: operators.notdef(undefined) returns true.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published