# -*- 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
|