2.0.13 • Published 7 months ago

sumo-api-automation v2.0.13

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
7 months ago

sumo-api-automation

A package to automate the integation testing requiring minimal coding and setup.

Installation

Install sumo-api-automation package with npm globally, run with sudo if access denied

  npm install -g sumo-api-automation

After installation, "sumotest" command will be available in your terminal to use.

Usage

sumotest init <some_path>

This will initialize a sample demo app and sample tests in the <some_path> directory.

If no path is passed, then it will be initialized in the current directory.

Running demo-app and sample-tests

  • Inside demo-app, install npm packages and run it
  cd demo_app
  npm install
  npm run start
  • In order to run the test cases run below command from another terminal window.
  sumotest run <path_where_tests_repo_clonned>

e.g.

  sumotest run ~/Documents/sumotestdemo/sample_tests
  • For generating test cases and env variables postman collection files, run below command to get the json files that can be imported in postman
  sumotest export -tr <path_where_tests_repo_clonned> -tdr <target_path>

e.g.

  sumotest export -tr ~/Documents/sumotestdemo/sample_tests -tdr ~/Documents/sumotestdemo/

Documentation

Prereq:- install node version 14 or above

How to use:-
1. make your entries in .env file
2. create directory with proper test name
3.create following files
    config.json (for api , expected status , type (get, post,put), context management)
    headers.json (for your rest api headers)
    request.json (for request body json)
    response.json (expected response)
4. run npm test
5. It will do a deep assert and present the result

Running integration tests in the DEV environment

kubectl port-forward -n dal-msk service/elasticsearch 9200:9200 &
API_BASE_PATH="SET YOUR PATH HERE" npm test
Single Test Execution
1. make sure TEST_NAME= "" in .env
2. run npm test , It will create and persist Context
3. set your test name TEST_NAME= "002_login_super_admin,001_Test" in .env
4. now run npm test , it will use previous context


```Features
1. Local Context

 {{RANDOM_EMAIL}} , {{RANDOM_NAME}},{{RANDOM_GUID}}
  --Use above anywhere , url , headers, request, response
  for multiple you can use like
  {{RANDOM_EMAIL1}} , {{RANDOM_NAME1}},{{RANDOM_GUID1}}
  {{RANDOM_EMAIL2}} , {{RANDOM_NAME2}},{{RANDOM_GUID2}}

2. Global Context (BDD)
   --in cofig-->responseConfig set values in gloabal conext like below

        "context_actions":[{"type":"set","to_key":"userId","from_key":"userId","scope":"global"}

   --in any subsiquent  request use like below in anywhere , url , headers, request, response

        {{__global_context.userId}}

3.How to debug
  For every test execution (pass , failed , errored), there is log file with name output.log
  Check this file for testing data

4.responseConfig
  This is most imporant featuer to understand
  -- Once response is recived it tells what needs to be done with it
  -- if you want to check Id is generated use like below

         "idField":"merchantId",
        "checkIdGeneration":true,

  --There always be some fields in response which you don't want to validate
    for this set following

         "skipFieldsInDeepAssert":["merchantId"],

  --For DeepAssertions set following

          "deepAssert":true,

Added "doNotValidateResponse":true in config. If this is set, no response will be validated, status will also not be validated. This is used to mostly create master data

added skip:true, in config.json. incase we want to skip that test case

2.0.13

7 months ago

2.0.11

9 months ago

2.0.12

8 months ago

2.0.3

1 year ago

2.0.2

1 year ago

2.0.5

12 months ago

2.0.4

12 months ago

2.0.7

12 months ago

2.0.6

12 months ago

2.0.9

12 months ago

2.0.10

12 months ago

2.0.8

12 months ago

2.0.1

1 year ago

2.0.0

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago