hyb
2026-01-30 44480e71b27aa9d4cb8441f50c873f1b110e9691
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# -*- coding: utf-8 -*-
"""
@File    : testcase_schema.py
@Time    : 2023/9/11 16:05
@Author  : geekbing
@LastEditTime : 2023/10/09 16:05
@LastEditors : geekbing
@Description : API、Case数据模板
"""
from typing import Dict, List
 
from pydantic import BaseModel, Field
 
 
class HeadersData(BaseModel):
    header: Dict = {}
    desc: Dict = {}
 
 
class RequestFormSchema(BaseModel):
    data: Dict = {}
    desc: Dict = {}
 
 
class RequestParamsSchema(BaseModel):
    params: Dict = {}
    desc: Dict = {}
 
 
class FilesSchema(BaseModel):
    files: Dict = {}
    desc: Dict = {}
 
 
class RequestData(BaseModel):
    form: RequestFormSchema = RequestFormSchema()
    params: RequestParamsSchema = RequestParamsSchema()
    files: FilesSchema = FilesSchema()
    json_data: Dict = Field({}, alias="json")
 
 
class VariablesData(BaseModel):
    variables: List = []
    desc: Dict = {}
 
 
class HooksData(BaseModel):
    setup_hooks: List = []
    teardown_hooks: List = []
 
 
class ValidateData(BaseModel):
    check: List[Dict] = Field(
        [{"equals": ["status_code", 200, "默认断言"]}], alias="validate"
    )
 
 
class ExtractData(BaseModel):
    extract: List = []
    desc: Dict = {}
 
 
class APIBodySchema(BaseModel):
    header: HeadersData = HeadersData()
    request: RequestData = RequestData()
    extract: ExtractData = ExtractData()
    check: ValidateData = Field(ValidateData(), alias="validate")
    variables: VariablesData = VariablesData()
    hooks: HooksData = HooksData()
    name: str = ""
    url: str = ""
    method: str = ""
    times: int = 1
 
 
class RecordCaseSchema(BaseModel):
    length: int
    project_id: int
    relation: int
    name: str
    tag: int
    body: List