Skip to content

noiv generate ​

Generate comprehensive API tests using AI-powered natural language descriptions.

Syntax ​

bash
noiv generate <description> [OPTIONS]

Description ​

The generate command uses advanced AI to create complete API test suites from natural language descriptions. Perfect for:

  • Rapid test creation - Generate complex tests in seconds
  • Natural language testing - Describe what you want to test in plain English
  • Comprehensive coverage - AI generates edge cases and validation scenarios
  • Best practice tests - Generated tests follow industry standards

Arguments ​

<description> (required) ​

Natural language description of what you want to test.

bash
noiv generate "Test user registration with email validation"
noiv generate "Test product search with filters and pagination"
noiv generate "Test payment processing with different currencies"

Options ​

--output, -o ​

Output file for the generated test suite (default: generated_tests.yaml).

bash
noiv generate "Test user API" --output user_tests.yaml
noiv generate "Test e-commerce API" -o ecommerce_tests.yaml

--base-url, -u ​

Base URL for the API being tested.

bash
noiv generate "Test user endpoints" --base-url https://api.example.com
noiv generate "Test local API" -u http://localhost:3000

--format, -f ​

Output format: yaml (default), json, or postman.

bash
noiv generate "Test API" --format json
noiv generate "Test API" -f postman

--complexity, -c ​

Test complexity level: basic, standard (default), or comprehensive.

bash
noiv generate "Test user API" --complexity basic
noiv generate "Test user API" -c comprehensive

--include-auth ​

Include authentication scenarios in generated tests.

bash
noiv generate "Test protected endpoints" --include-auth

--include-edge-cases ​

Generate edge case and error scenario tests.

bash
noiv generate "Test user registration" --include-edge-cases

--template, -t ​

Use a specific test template: rest, graphql, crud, or e2e.

bash
noiv generate "Test user management" --template crud
noiv generate "Test GraphQL API" -t graphql

--interactive, -i ​

Enable interactive mode for guided test generation.

bash
noiv generate "Test API" --interactive

Examples ​

Basic Test Generation ​

bash
noiv generate "Test user registration and login"

Generated Output:

yaml
name: User Registration and Login Tests
base_url: https://api.example.com
tests:
  - name: Register New User
    request:
      method: POST
      path: /auth/register
      headers:
        Content-Type: application/json
      body:
        email: "test@example.com"
        password: "SecurePass123"
        username: "testuser"
    expect:
      status: 201
      body:
        id: "{{user_id}}"
        email: "test@example.com"
      headers:
        Content-Type: application/json
    
  - name: Login with Valid Credentials
    request:
      method: POST
      path: /auth/login
      headers:
        Content-Type: application/json
      body:
        email: "test@example.com"
        password: "SecurePass123"
    expect:
      status: 200
      body:
        token: "{{auth_token}}"
      headers:
        Content-Type: application/json

E-commerce API Tests ​

bash
noiv generate "Test e-commerce product management with inventory" \
  --base-url https://shop-api.example.com \
  --complexity comprehensive \
  --include-edge-cases

CRUD Operations ​

bash
noiv generate "Test complete CRUD operations for blog posts" \
  --template crud \
  --output blog_tests.yaml

Authentication Testing ​

bash
noiv generate "Test JWT authentication with refresh tokens" \
  --include-auth \
  --complexity comprehensive

Interactive Generation ​

bash
noiv generate "Test payment system" --interactive

Interactive Flow:

🤖 AI Test Generator

Description: Test payment system

🎯 What type of payment system?
1. Credit card processing
2. Digital wallet (PayPal, Stripe)
3. Cryptocurrency
4. Bank transfers
5. All of the above

Choice: 2

💳 Which payment providers?
1. Stripe
2. PayPal
3. Square
4. Custom implementation

Choice: 1, 2

🔒 Include security testing?
1. Yes - Include fraud detection, validation
2. Basic - Standard payment flows only

Choice: 1

⚡ Test complexity?
1. Basic - Happy path scenarios
2. Standard - Common edge cases
3. Comprehensive - Full coverage including errors

Choice: 3

🚀 Generating comprehensive payment tests...
✅ Generated 23 test scenarios covering Stripe and PayPal integration

Test Templates ​

REST Template ​

bash
noiv generate "Test user API" --template rest

Generates standard REST API tests:

  • GET, POST, PUT, DELETE operations
  • Query parameters and path variables
  • Request/response validation
  • Status code verification

CRUD Template ​

bash
noiv generate "Test product management" --template crud

Generates complete CRUD operation tests:

  • Create - POST with validation
  • Read - GET single and list
  • Update - PUT/PATCH operations
  • Delete - DELETE with confirmation

GraphQL Template ​

bash
noiv generate "Test GraphQL user queries" --template graphql

Generates GraphQL-specific tests:

  • Query operations
  • Mutation testing
  • Subscription handling
  • Schema validation

End-to-End Template ​

bash
noiv generate "Test complete user journey" --template e2e

Generates workflow-based tests:

  • Multi-step scenarios
  • State management
  • Session handling
  • Business logic validation

Complexity Levels ​

Basic Level ​

bash
noiv generate "Test user API" --complexity basic

Features:

  • Happy path scenarios only
  • Basic request/response validation
  • Standard HTTP status codes
  • Minimal test coverage

Standard Level (Default) ​

bash
noiv generate "Test user API" --complexity standard

Features:

  • Happy path + common error scenarios
  • Input validation testing
  • Authentication checks
  • Moderate test coverage

Comprehensive Level ​

bash
noiv generate "Test user API" --complexity comprehensive

Features:

  • Full scenario coverage
  • Edge cases and boundary testing
  • Security and performance tests
  • Maximum test coverage

AI Capabilities ​

Natural Language Understanding ​

The AI understands complex descriptions:

bash
# Business logic
noiv generate "Test shopping cart with quantity limits and discount codes"

# Technical requirements  
noiv generate "Test REST API with JWT auth, rate limiting, and pagination"

# User workflows
noiv generate "Test complete user onboarding from signup to first purchase"

Domain-Specific Knowledge ​

bash
# E-commerce
noiv generate "Test inventory management with stock alerts"

# Finance
noiv generate "Test transaction processing with multi-currency support"

# Healthcare
noiv generate "Test patient record management with HIPAA compliance"

# Social media
noiv generate "Test content moderation and user reporting system"

Test Pattern Recognition ​

The AI automatically includes relevant patterns:

  • Validation testing for form inputs
  • Edge case handling for boundary values
  • Error scenarios for failure modes
  • Security testing for authentication
  • Performance checks for load scenarios

Output Formats ​

YAML Format (Default) ​

bash
noiv generate "Test API" --format yaml
yaml
name: Generated API Tests
base_url: https://api.example.com
variables:
  user_id: ""
  auth_token: ""
tests:
  - name: Test Case
    request:
      method: GET
      path: /endpoint
    expect:
      status: 200

JSON Format ​

bash
noiv generate "Test API" --format json
json
{
  "name": "Generated API Tests",
  "base_url": "https://api.example.com",
  "tests": [
    {
      "name": "Test Case",
      "request": {
        "method": "GET",
        "path": "/endpoint"
      },
      "expect": {
        "status": 200
      }
    }
  ]
}

Postman Collection ​

bash
noiv generate "Test API" --format postman

Generates a Postman collection that can be imported directly into Postman.

Advanced Features ​

Variable Extraction ​

Generated tests automatically include variable extraction:

yaml
tests:
  - name: Create User
    request:
      method: POST
      path: /users
      body:
        name: "John Doe"
    expect:
      status: 201
      body:
        id: "{{user_id}}"  # Extracted for use in subsequent tests
    
  - name: Get Created User
    request:
      method: GET
      path: /users/{{user_id}}  # Uses extracted variable

Dependency Management ​

Tests are automatically ordered based on dependencies:

yaml
tests:
  - name: Setup - Create User Account
    # ... user creation
    
  - name: Setup - Login User
    depends_on: "Setup - Create User Account"
    # ... user login
    
  - name: Test - Update User Profile
    depends_on: "Setup - Login User"
    # ... profile update

Environment Configuration ​

yaml
environments:
  development:
    base_url: http://localhost:3000
    variables:
      api_key: "dev-key-123"
  
  staging:
    base_url: https://staging-api.example.com
    variables:
      api_key: "staging-key-456"
      
  production:
    base_url: https://api.example.com
    variables:
      api_key: "{{PROD_API_KEY}}"

Use Cases ​

API Development ​

bash
# Generate tests during development
noiv generate "Test new user profile endpoints with image upload"

# Test API changes
noiv generate "Test updated payment flow with 3D Secure authentication"

Quality Assurance ​

bash
# Comprehensive testing
noiv generate "Test complete e-commerce checkout process" --complexity comprehensive

# Edge case testing
noiv generate "Test user input validation" --include-edge-cases

Documentation ​

bash
# Generate test examples for API documentation
noiv generate "Test all user management endpoints" --complexity basic

CI/CD Integration ​

bash
# Generate tests for automated pipelines
noiv generate "Test critical user flows for regression testing"

Best Practices ​

1. Be Specific in Descriptions ​

Good:

bash
noiv generate "Test user registration with email verification and password strength validation"

Better:

bash
noiv generate "Test user registration API that requires email verification, enforces password complexity (8+ chars, uppercase, number, special char), and prevents duplicate emails"

2. Use Appropriate Complexity ​

bash
# For rapid prototyping
noiv generate "Test basic CRUD operations" --complexity basic

# For production testing
noiv generate "Test payment processing" --complexity comprehensive

3. Include Context ​

bash
# Include business context
noiv generate "Test e-commerce checkout process for subscription products with tax calculation"

# Include technical context  
noiv generate "Test REST API with OAuth2 authentication and rate limiting"

4. Specify Output Organization ​

bash
# Organize by feature
noiv generate "Test user management" --output tests/user_tests.yaml

# Organize by environment
noiv generate "Test production health checks" --output tests/prod_health.yaml

Integration with Other Commands ​

Generate and Test ​

bash
# Generate tests
noiv generate "Test user API" --output user_tests.yaml

# Run generated tests
noiv test user_tests.yaml

Generate and Build Upon ​

bash
# Generate initial tests
noiv generate "Test basic user CRUD" --complexity basic

# Use interactive builder to enhance
noiv build user_tests.yaml

Generate and Benchmark ​

bash
# Generate performance tests
noiv generate "Test API performance under load" --template rest

# Run performance benchmarks
noiv benchmark generated_tests.yaml

Error Handling ​

Description Parsing Errors ​

bash
noiv generate "vague description"
# Output: Description too vague. Please provide more specific details about the API functionality to test.

Missing Context ​

bash
noiv generate "Test the API"
# Output: Please specify which API endpoints or functionality you want to test.

Invalid Parameters ​

bash
noiv generate "Test API" --complexity invalid
# Output: Invalid complexity level. Use: basic, standard, or comprehensive

See Also ​

Released under the MIT License.