qe-contract-testing

Guide the use of v3's contract testing capabilities including consumer-driven contracts, schema validation, backward compatibility checking, and API versioning verification.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "qe-contract-testing" with this command: npx skills add proffesor-for-testing/agentic-qe/proffesor-for-testing-agentic-qe-qe-contract-testing

QE Contract Testing

Purpose

Guide the use of v3's contract testing capabilities including consumer-driven contracts, schema validation, backward compatibility checking, and API versioning verification.

Activation

  • When testing API contracts

  • When validating schema changes

  • When checking backward compatibility

  • When testing GraphQL APIs

  • When verifying event schemas

Quick Start

Generate contract from API

aqe contract generate --api openapi.yaml --output contracts/

Verify provider against contracts

aqe contract verify --provider http://localhost:3000 --contracts contracts/

Check breaking changes

aqe contract breaking --old api-v1.yaml --new api-v2.yaml

Test GraphQL schema

aqe contract graphql --schema schema.graphql --operations queries/

Agent Workflow

// Contract generation Task("Generate API contracts", ` Analyze the REST API and generate consumer contracts:

  • Parse OpenAPI specification
  • Identify critical endpoints
  • Generate Pact contracts
  • Include example requests/responses Output to contracts/ directory. `, "qe-api-contract")

// Breaking change detection Task("Check API compatibility", ` Compare API v2.0 against v1.0:

  • Detect removed endpoints
  • Check parameter changes
  • Verify response schema changes
  • Identify deprecations Report breaking vs non-breaking changes. `, "qe-api-compatibility")

Contract Testing Types

  1. Consumer-Driven Contracts (Pact)

await contractTester.consumerDriven({ consumer: 'web-app', provider: 'user-service', contracts: 'contracts/web-app-user-service.json', verification: { providerBaseUrl: 'http://localhost:3000', providerStates: providerStateHandlers, publishResults: true } });

  1. Schema Validation

await contractTester.validateSchema({ type: 'openapi', schema: 'api/openapi.yaml', requests: actualRequests, validation: { requestBody: true, responseBody: true, headers: true, statusCodes: true } });

  1. GraphQL Contract Testing

await graphqlTester.testContracts({ schema: 'schema.graphql', operations: 'queries/**/*.graphql', validation: { queryValidity: true, responseShapes: true, nullability: true, deprecations: true } });

  1. Event Contract Testing

await contractTester.eventContracts({ schema: 'events/schemas/', events: { 'user.created': { schema: 'UserCreatedEvent.json', examples: ['examples/user-created.json'] }, 'order.completed': { schema: 'OrderCompletedEvent.json', examples: ['examples/order-completed.json'] } }, compatibility: 'backward' });

Breaking Change Detection

breaking_changes: always_breaking: - endpoint_removed - required_param_added - response_field_removed - type_changed

potentially_breaking: - optional_param_removed - response_field_added - enum_value_removed

non_breaking: - endpoint_added - optional_param_added - response_field_made_optional - documentation_changed

Contract Report

interface ContractReport { summary: { contracts: number; passed: number; failed: number; warnings: number; }; consumers: { name: string; contracts: ContractResult[]; compatibility: 'compatible' | 'breaking' | 'unknown'; }[]; breakingChanges: { type: string; location: string; description: string; impact: 'high' | 'medium' | 'low'; migration: string; }[]; deprecations: { item: string; deprecatedIn: string; removeIn: string; replacement: string; }[]; }

CI/CD Integration

contract_verification: consumer_side: - generate_contracts - publish_to_broker - can_i_deploy_check

provider_side: - fetch_contracts_from_broker - verify_against_provider - publish_results

pre_release: - check_breaking_changes - verify_all_consumers - update_compatibility_matrix

Pact Broker Integration

await contractTester.withBroker({ brokerUrl: 'https://pact-broker.example.com', auth: { token: process.env.PACT_TOKEN }, operations: { publish: true, canIDeploy: true, webhooks: true } });

Coordination

Primary Agents: qe-api-contract, qe-api-compatibility, qe-graphql-tester Coordinator: qe-contract-coordinator Related Skills: qe-test-generation, qe-security-compliance

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

api-testing-patterns

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

compatibility-testing

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

regression-testing

No summary provided by upstream source.

Repository SourceNeeds Review