aomake 重新定义企业级接口自动化测试的工程范式,文档即代码,定义即测试,让接口测试变得简单、高效、易维护。
github: https://github.com/ae86sen/aomaker
AoMaker,即 Api object Maker,那什么是 API Object 呢?
API Object 是 Page Object 设计模式在接口测试上的一种延伸,顾名思义,这里是将各种基础接口进行了一层抽象封装,将其作为 object,通过不同的 API 对象调用来组装成不同的业务流场景。
Maker 其实就是框架本身提供各种辅助手段帮助快速的去编排 ao
和 case
。
AOmaker 解决了传统接口自动化测试中的核心痛点,提供了全面的工程化解决方案
aomaker 采用声明式编程范式,基于attrs库实现强大的接口建模能力。通过简单的装饰器和类型注解,实现接口与业务逻辑的彻底解耦。
这种方式相比传统的硬编码方式,大幅降低了接口维护成本,提高了代码可读性和可维护性。
# instance_api.py
from attrs import define, field
from aomaker.core.router import router
from aomaker.core.api_object import BaseAPIObject
@define(kw_only=True)
@router.get("/api/{namespace}/instances")
class GetInstancesAPI(BaseAPIObject[InstancesResponse]):
"""获取实例列表"""
@define
class PathParams:
namespace: str = field()
@define
class QueryParams:
status: Optional[str] = field(default=None)
limit: Optional[int] = field(default=10)
offset: Optional[int] = field(default=0)
path_params: PathParams
query_params: QueryParams = field(factory=QueryParams)
# 响应数据结构自动映射到类型
response: Optional[InstancesResponse] = field(default=InstancesResponse)
# 在测试中使用
def test_list_instances():
# 明确的参数类型,IDE自动补全支持
path_params = GetInstancesAPI.PathParams(namespace="default")
query_params = GetInstancesAPI.QueryParams(status="running", limit=20)
# 发送请求并自动映射响应
res = GetInstancesAPI(
path_params=path_params,
query_params=query_params
).send()
# 通过类型提示访问响应数据
assert res.response_model.total >= 0
for instance in res.response_model.data:
assert instance.status == "running"
除了核心功能外,AOmaker 还提供了多种高级特性,满足企业级定制化测试需求
通过简单几步,开始使用 aomaker 彻底改变你的接口测试方式