目录
[Unit Test](#Unit Test)
[Integration Test](#Integration Test)
[Performance Test](#Performance Test)
[Automation Test](#Automation Test)
[API Automation Test - Cucumber, Karate, REST-Assured](#API Automation Test - Cucumber, Karate, REST-Assured)
[UI Automation Test - Cypress, Playwright, Selenium](#UI Automation Test - Cypress, Playwright, Selenium)
[AI Test](#AI Test)
Unit Test
Java: JUnit + Mockito
JS/TS: Jest
Python: Pytest
Integration Test
Java: REST-Assured
Performance Test
JMeter
Automation Test
自动化测试的关键技术点
一个成熟的测试框架通常需要解决以下几个核心问题:
-
断言库 (Assertion Library): 验证结果是否符合预期(如
expect(result).toBe(200))。 -
Mock/Stub (模拟): 模拟外部依赖(如数据库、第三方支付网关),让测试环境保持纯净。
-
测试运行器 (Test Runner): 负责发现测试文件、执行测试并生成报告。
-
CI/CD 集成: 确保每次代码提交都能自动触发测试。
API Automation Test - Cucumber, Karate, REST-Assured
Karate
Karate Official website: https://karatelabs.github.io/karate/
Karate doc: https://docs.karatelabs.io/getting-started/why-karate
Karate: open-source cucumber-based API test automation framework.
BDD (Behavior-Driven Development), 行为驱动开发 (BDD) 框架
这类框架强调"用业务语言写测试",方便产品经理(PO)和测试人员沟通。
-
Cucumber: * 使用 Gherkin 语法(Given... When... Then...)。
- 例如:
Given 我已登录成功; When 我提交一个批量订单; Then 订单状态应显示为处理中。
- 例如:
Project structure: https://docs.karatelabs.io/core-syntax/project-structure
Test script: .feature file
Feature, Background (Optional), Scenario
Fuzzy matching
REST API: url, request, response, http method, header, http status
Authentication
Keywords: https://docs.karatelabs.io/api-reference/keywords
Report:
- karate-reports karate-summary.html
- cucumber-report overview-features.html
- surefire-reports
Tags
Timeline
Parallel run
Best Practice: karate-config.js, features folder, json folder, Maven pom.xml, logback-test.yml, karate.log
UI Automation Test - Cypress, Playwright, Selenium
-
Playwright (微软出品): * 优势: 支持所有主流浏览器(Chromium, WebKit, Firefox),支持多页面、多标签页交互,极其稳定。
- 地位: 目前是 Cypress 最强劲的竞争对手。
-
Cypress: * 优势: 运行在浏览器内部,调试体验极佳,自动等待机制非常智能。
-
Selenium: * 地位: "元老级"框架,支持多语言(Java, Python, Ruby 等)。虽然在现代 Web 开发中显得笨重,但在老牌金融系统或跨多端的大型企业中依然稳固。
AI Test
如果是 AI/大模型相关项目: 目前很多团队开始使用 Promptfoo 或专门的 LLM 评估框架 来测试 Prompt 的稳定性和输出质量。