极简接口录制工具

极简接口录制工具,之前看很多大佬说的录制回放平台,由于现实也有一些需要录制接口请求,所以想自己造一个.
但是成本不想太高,能用就可以,最后就花了一天时间左右时间完成了一个极简接口录制工具,主要功能包括了:

  1. 录制 API 请求到数据库比如 sqlite/postgresql/mysql
  2. 手工录制 API 的时候会手工设置浏览器代理,使用命令行或者 UI 的方式一键完成

录制的 API 请求主要作用是为了方便生成 API 测试代码,测试和开发都可以使用. 选择需要的 API 保存到数据库, 方便后续继续使用.

这个工具的好处就是:

  1. 成本很低. 就一天时间实现最需要的功能.
  2. 录制数据可以共享,不同的测试都可以分享这些录制数据
  3. 结合这些录制数据和现有工具,可以直接进行接口自动化测试代码转换

命令行工具 Commandline Features

poetry run qacli capture start --name="scenario_name"

mitm = { recorded_url = "https://www.baidu.com,https://www.bing.com" }

上面的例子表示所有 baidu 和 bing 地址的请求都会被抓取保存到数据库.

class ApiMonitorRecord(SQLModel, table=True):
    __tablename__ = "api_monitor_record"

    id: Optional[int] = Field(default=None, primary_key=True)
    app: Optional[str] = None
    service: Optional[str] = None
    api: Optional[str] = None
    path: Optional[str] = None
    request_url: Optional[str] = None
    method: Optional[str] = None
    request_headers: Optional[str] = None
    request_body: Optional[str] = None
    response_headers: Optional[str] = None
    status_code: int
    response_body: Optional[str] = None
    scenario_name: Optional[str] = None

 poetry run qacli mac-proxy --help

 Usage: qacli mac-proxy [OPTIONS] COMMAND [ARGS]...                                                                                                      

╭─ Options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help          Show this message and exit.                                                                                                           │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ off                  disable api capture proxy                                                                                                        │
│ on                   enable api capture proxy 

UI 界面功能 UI Feature

运行 UI:

poetry run qaui

UI 功能操作:

使用到 python 相关

主要包括了:

  1. typer: 命令行构建工具
  2. gradio: ui 构建工具
  3. 数据库操作:原先自己就有的基于 sqlmodel 的访问工具
  4. poetry: python 项目管理,打包/依赖管理

因为代码比较简陋也很少很少,如果想看下的可以前往: https://github.com/fluent-qa/fluentqa-helper

也可以关注: 自制极简接口录制工具
有兴趣的同学或想试试的时候有问题的可以给我留言.


↙↙↙阅读原文可查看相关链接,并与作者交流