Modern Performance Testing Made Simple

Test web scenarios with Playwright and REST APIs using YAML configs or TypeScript. Generate realistic data, get beautiful reports, and scale with confidence using perfornium CLI.

Everything You Need for Performance Testing

🎭

Playwright Integration

Test real web scenarios with full browser automation. Simulate user interactions and measure performance under realistic conditions.

REST API Testing

Load test your APIs with ease. Define scenarios, set thresholds, and monitor response times across different endpoints.

📝

YAML Configuration

Simple, readable test definitions. No complex code required - just define your scenarios in clean YAML syntax.

💎

TypeScript Support

Need more control? Write advanced test scenarios in TypeScript with full IDE support and type safety.

🎲

Faker Integration

Generate realistic test data automatically. Create authentic user scenarios with dynamic, randomized data.

📊

Beautiful Reports

Get clear, actionable insights with HTML reports and online dashboards. Compare runs and track performance over time.

🌐

Distributed Testing

Scale your tests across multiple machines and geographic locations. Simulate real-world traffic patterns with coordinated load generation.

📁

HAR Import

Import HTTP Archive files to automatically convert recorded browser sessions into performance test scenarios. Perfect for testing real user journeys.

📮

Postman Import

Seamlessly import your existing Postman collections and environments. Convert API tests into load tests with a single command.

🔌

WSDL Import

Auto-generate SOAP service tests from WSDL definitions. Test legacy web services with the same modern tooling and reporting.

📋

OpenAPI Import

Generate comprehensive API test suites from OpenAPI/Swagger specs. Automatically test all endpoints with realistic data patterns.

Simple Configuration, Powerful Results

# perfornium.yml - Simple load test configuration
scenario:
  name: "E-commerce Load Test"
  duration: "5m"
  users: 50

steps:
  - name: "Login"
    action: "api"
    url: "/api/auth/login"
    method: "POST"
    data:
      email: "{{faker.internet.email}}"
      password: "{{faker.internet.password}}"

  - name: "Browse Products"
    action: "playwright"
    script: "browse-products.js"
    threshold:
      response_time: "2s"