编写手动功能测试

FastAPI 入门

Matt Eckerle

Software and Data Engineering Leader

什么是功能测试?

系统测试

  • 关注点:隔离的系统操作
  • 目的:验证系统功能
  • 范围:端点
  • 环境:运行应用的 Python 环境
def test_read():
    response = client.get("/items/1")
    assert response.status_code == 200

功能测试

  • 关注点:集成系统
  • 目的:验证整体系统
  • 范围:应用
  • 环境:运行应用的 Python 环境
def test_delete_then_read():
    response = client.delete("/items/1")
    assert response.status_code == 200
    response = client.get("/items/1")
    assert response.status_code == 404
FastAPI 入门

测试流程

展示成功与失败测试流程示例的图示

FastAPI 入门

功能测试流程示例

成功流程

  • 先创建,再读取
  • 先创建,再更新
  • 先创建,再删除
  • ...

失败流程

  • 未创建就读取
  • 删除后再更新
  • 未创建就删除
  • ...
FastAPI 入门

功能测试脚本

  • 脱离测试框架——“手动测试”
  • 使用 requests
import requests
ENDPOINT = "http://localhost:8000/items"
# Create item "rock"
r = requests.post(ENDPOINT, json={"name": "rock"})
assert r.status_code == 200
# Get item rock
r = requests.get(ENDPOINT, json={"name": "rock"})
assert r.status_code == 200
  • 基于已知应用状态编写流程
FastAPI 入门

Passons à la pratique !

FastAPI 入门

Preparing Video For Download...