본문으로 건너뛰기
cccskills
무료GitHub에 공개

api-contract-testing

API 契约测试时使用。适用于消费者驱动契约测试(Pact)/ OpenAPI 验证(Dredd / Schemathesis)。融合 Pact + Schemathesis + 契约优先。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(2)

  • SKILL.md2.6 KB
  • templates/contract-test-template.md824 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

API 契约测试(API Contract Testing)

适用场景

  • 前后端解耦开发(消费者驱动)
  • OpenAPI 契约验证
  • 微服务间接口验证
  • 防止 API 破坏性变更

核心原则

1. 消费者驱动
   前端定义期望,后端验证能满足

2. 契约是合同
   双方都通过 = 联调安全

3. 不依赖对方在线
   各自独立验证

4. 自动化 + CI
   每次 PR 验证契约

Pact(消费者驱动)

// 消费者侧(前端)
import { PactV3 } from '@pact-foundation/pact';

const provider = new PactV3({ consumer: 'frontend', provider: 'order-service' });

it('GET /orders/:id', () => {
  provider
    .given('order 123 exists')
    .uponReceiving('a request for order 123')
    .withRequest({ method: 'GET', path: '/api/v1/orders/123' })
    .willRespondWith({
      status: 200,
      body: { id: 123, status: 'PAID', total: 9999 },
    });
  
  return provider.executeTest(async (mockServer) => {
    const result = await orderApi.getOrder(123, mockServer.url);
    expect(result.status).toBe('PAID');
  });
});

// 服务方侧(后端)
@Provider('order-service')
@PactBroker(host = 'broker.example.com')
class OrderServiceContractTest {
  @State('order 123 exists')
  void orderExists() {
    orderRepo.save(Order.builder().id(123L).status(PAID).build());
  }
  
  @TestTemplate
  @ExtendWith(PactVerificationInvocationContextProvider.class)
  void verify(PactVerificationContext context) {
    context.verifyInteraction();
  }
}

Schemathesis(OpenAPI 属性测试)

# 从 OpenAPI spec 自动生成测试
schemathesis run http://localhost:8080/openapi.json \
  --checks all \
  --auth "Bearer $TOKEN"

# CI 集成
schemathesis run ./openapi.yaml \
  --base-url http://localhost:8080 \
  --validate-schema true \
  --junit-xml report.xml

配套模板

  • templates/contract-test-template.md — 契约测试模板

质量自检

□ 消费者契约定义
□ 服务方验证通过
□ CI 集成
□ 破坏性变更阻塞
□ Pact Broker 配置
□ OpenAPI 验证

常见坑

  1. 不做契约测试——联调才发现不一致
  2. 契约不进 CI——形同虚设
  3. 消费者不写期望——服务方不知道要满足什么
  4. 不用 Pact Broker——契约无法共享

与其他 skill 的协作

上游:
  api-designer → OpenAPI 契约

下游:
  ci-test-integration → CI 集成

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

A/B 测试设计与分析时使用。适用于产品实验、功能验证、转化率优化。融合假设驱动 + 样本量计算 + 置信度判断。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

zhaoxuya520/AI-Fullstack-Delivery-Workflow542026년 5월 19일 업데이트

上线前业务方/产品方验收时使用。适用于功能交付确认、UAT、发布会签。融合 BDD Given-When-Then、Specification by Example、ATDD。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

zhaoxuya520/AI-Fullstack-Delivery-Workflow542026년 5월 19일 업데이트

设计无障碍可访问的界面时使用。适用于满足 WCAG 标准、键盘导航、屏幕阅读器支持。优先使用 WCAG 2.2 AA 级标准 + 键盘 + 焦点 + 对比度 + ARIA。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

zhaoxuya520/AI-Fullstack-Delivery-Workflow542026년 5월 19일 업데이트

实现可访问性(无障碍)时使用。覆盖 WCAG 2.2 AA / ARIA / 键盘导航 / 屏幕阅读器 / 颜色对比 / 焦点管理。融合 React Aria / Radix UI / Headless UI 实践 + axe-core 自动化测试。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

zhaoxuya520/AI-Fullstack-Delivery-Workflow542026년 5월 19일 업데이트

AI 模型部署时使用。适用于推理服务 / GPU / TensorRT / 监控 / 扩缩容。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

zhaoxuya520/AI-Fullstack-Delivery-Workflow542026년 5월 19일 업데이트

数据分析报告输出时使用。适用于业务分析报告、周报、专项分析、决策支持。融合洞察 + 建议 + 行动项。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

zhaoxuya520/AI-Fullstack-Delivery-Workflow542026년 5월 19일 업데이트

zhaoxuya520의 스킬 모두 보기

이 스킬의 문제 신고