Skip to content

Import Tools

NOIV's import capabilities allow you to migrate existing API tests from other tools, preserving your testing investments while gaining NOIV's advanced features.

Postman Collection Import

Convert Postman collections to NOIV format with full preservation of test logic.

Basic Import

bash
noiv import postman collection.json

This converts your Postman collection and creates a NOIV YAML file.

Import with Custom Output

bash
noiv import postman collection.json -o my_tests.yaml

Specify the output filename instead of using the auto-generated name.

Supported Postman Features

Request Configuration

  • HTTP methods: GET, POST, PUT, DELETE, PATCH, etc.
  • URLs and parameters: Full URL construction
  • Headers: All custom headers including authentication
  • Request bodies: JSON, form data, raw text

Collection Structure

  • Folder organization: Maintains logical grouping
  • Request descriptions: Converted to test descriptions
  • Variable references: Postman variables become NOIV environment variables

Example Postman Collection

json
{
  "info": {
    "name": "E-commerce API",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://api.shop.example.com"
    }
  ],
  "item": [
    {
      "name": "User Management",
      "item": [
        {
          "name": "Create User",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              },
              {
                "key": "Authorization",
                "value": "Bearer {{authToken}}"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"name\": \"John Doe\",\n  \"email\": \"john@example.com\"\n}"
            },
            "url": {
              "raw": "{{baseUrl}}/api/users",
              "host": ["{{baseUrl}}"],
              "path": ["api", "users"]
            }
          }
        }
      ]
    }
  ]
}

Converted NOIV Output

yaml
# imported_e-commerce_api.yaml
metadata:
  imported_from: postman
  original_file: collection.json
  variables:
    baseUrl: https://api.shop.example.com

name: E-commerce API
tests:
  - name: Create User
    description: 'Imported from Postman: User Management/Create User'
    url: ${baseUrl}/api/users
    method: POST
    expected_status: 200
    headers:
      Content-Type: application/json
      Authorization: Bearer ${authToken}
    body: |
      {
        "name": "John Doe",
        "email": "john@example.com"
      }

Migration Workflow

Step 1: Export from Postman

In Postman:

  1. Open your collection
  2. Click the "..." menu
  3. Select "Export"
  4. Choose "Collection v2.1"
  5. Save the JSON file

Step 2: Import to NOIV

bash
noiv import postman my_collection.json

Step 3: Review and Adjust

The imported YAML file may need adjustments:

yaml
# Add response validations
tests:
  - name: Create User
    url: ${baseUrl}/api/users
    method: POST
    expected_status: 201  # Adjust expected status
    headers:
      Content-Type: application/json
      Authorization: Bearer ${authToken}
    body: |
      {
        "name": "John Doe",
        "email": "john@example.com"
      }
    validations:  # Add validations not present in Postman
      - type: json_path
        path: $.user.id
        expected: exists
      - type: header
        name: Location
        expected: contains:/users/

Step 4: Set Environment Variables

bash
export baseUrl="https://api.shop.example.com"
export authToken="your-api-token"

Step 5: Run Imported Tests

bash
noiv test run imported_e-commerce_api.yaml

Advanced Import Scenarios

Large Collections

For collections with many requests:

bash
# Import large collection
noiv import postman large_collection.json -o comprehensive_tests.yaml

# Split into smaller test suites if needed
# Edit the YAML file to create focused test files

Collections with Authentication

Postman collections using authentication:

json
{
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{authToken}}"
      }
    ]
  }
}

Becomes:

yaml
headers:
  Authorization: Bearer ${authToken}

Environment-Specific Collections

bash
# Import different environment collections
noiv import postman dev_collection.json -o dev_tests.yaml
noiv import postman staging_collection.json -o staging_tests.yaml
noiv import postman prod_collection.json -o prod_tests.yaml

Benefits of Migration

Enhanced Capabilities

After importing to NOIV, you gain:

AI-Powered Test Generation

bash
# Extend imported tests with AI
noiv generate natural "add error handling tests for the imported user management API"

Performance Testing

bash
# Benchmark imported endpoints
noiv benchmark ${baseUrl}/api/users -n 500 -c 25

Professional Reporting

bash
# Generate HTML reports
noiv report html

Advanced Validations

Add sophisticated validations not available in Postman:

yaml
validations:
  - type: json_path
    path: $.data[*].id
    expected: all_exist
  - type: response_time
    expected: under_500ms
  - type: contains
    value: "success"
    case_sensitive: false

Improved Workflow

Continuous Integration

bash
# Add to CI/CD pipeline
noiv test run imported_tests.yaml

Version Control

yaml
# YAML files are more git-friendly than JSON
# Better diff viewing
# Easier code reviews

Environment Management

bash
# Simple environment switching
export API_ENV="staging"
export baseUrl="https://staging-api.example.com"
noiv test run imported_tests.yaml

Best Practices for Import

1. Organize Before Import

Structure your Postman collections logically:

  • Group related requests in folders
  • Use consistent naming conventions
  • Set up collection-level variables
  • Document request purposes

2. Review Import Results

Always review the generated YAML:

  • Check URL construction
  • Verify header mappings
  • Validate request bodies
  • Add missing validations

3. Enhance After Import

Take advantage of NOIV features:

yaml
# Original import
- name: Get User
  url: ${baseUrl}/api/users/123
  method: GET
  expected_status: 200

# Enhanced version
- name: Get User - Validate Complete Profile
  url: ${baseUrl}/api/users/123
  method: GET
  expected_status: 200
  validations:
    - type: json_path
      path: $.user.email
      expected: contains:@
    - type: json_path
      path: $.user.created_at
      expected: exists
    - type: response_time
      expected: under_1000ms

4. Test Incrementally

Don't run all imported tests at once:

bash
# Test a few requests first
head -20 imported_tests.yaml > test_sample.yaml
noiv test run test_sample.yaml

# Then run complete suite
noiv test run imported_tests.yaml

Migration Checklist

  • [ ] Export Postman collection as v2.1 JSON
  • [ ] Run NOIV import command
  • [ ] Review generated YAML file
  • [ ] Set up environment variables
  • [ ] Test sample requests manually
  • [ ] Add enhanced validations
  • [ ] Run complete test suite
  • [ ] Set up CI/CD integration
  • [ ] Create HTML reports
  • [ ] Document new workflow for team

Troubleshooting Import Issues

Malformed JSON

bash
# If import fails due to JSON issues:
# 1. Validate JSON format
# 2. Re-export from Postman
# 3. Check for special characters

Missing Variables

bash
# If tests fail due to undefined variables:
export missing_variable="value"
# Or edit YAML to add default values

Authentication Issues

bash
# For auth problems:
# 1. Verify token format in YAML
# 2. Check environment variable names
# 3. Test auth with noiv quick first

Complex Request Bodies

bash
# For complex Postman bodies:
# 1. Review YAML body section
# 2. Validate JSON formatting
# 3. Test with simple requests first

Future Import Features

NOIV is expanding import capabilities:

  • OpenAPI/Swagger import (planned)
  • Insomnia collection import (under consideration)
  • HAR file import (under consideration)
  • cURL command import (planned)

Next Steps

After importing your tests:

  1. Run tests - Execute imported test suites
  2. AI generation - Enhance with AI-generated tests
  3. Performance testing - Add benchmarking
  4. HTML reports - Create professional reports
  5. HTML Reports - Automate testing workflow

Success!

Successfully migrating from Postman to NOIV preserves your existing testing work while unlocking powerful new capabilities like AI generation, performance testing, and advanced reporting.

Released under the MIT License.