生成自测文档的Python项目

3,617 阅读3分钟

MedusaSorcerer的博客



请支持  原 创  作品, 写作不易, 且珍且惜。

源码地址:github.com/MedusaSorce…

作为一个码农, 有时候开发自己的平台, 总是需要一个测试平台服务的工具, 你可能想到了 postman, 是的, 它可以解决我们开发中单个服务的调试工作, 但是我想要的不局限于单个服务的测试。

✏️ ️1. 需 求 罗 列

盘点了几个现在需要的需求, 如下:

  • 自动化测试 API 服务
  • 生成测试数据报告
  • 异常请求捕获
  • 请求响应总览

在请求中, 我需要执行脚本就可以测试所有的服务 API, 并且生成报告文件供我阅览测试的结果, 结果需要对异常的请求进行异常信息补货, 并对所有请求进行相应状态分类。

✏️ ️2. 逻 辑 梳 理

结合 Pythonmkdocs 服务的想法,利用测试配置的特殊结构进行数据请求,将请求状态以及请求内容或者报错信息进行结合,只管预览每个请求的状态。

✏️ ️3. 使 用 方 法

你可以在项目目录文件 docs/params.yaml 进行你需要的配置:

  • title 项目最大路径的 title 字符串
  • version 显示你的项目版本号,或用于 API 拼接
  • service API访问服务地址:127.0.0.1:8000
  • login 登陆的 URL 后缀地址
  • username 登陆需要的用户名
  • password 登陆需要的密码,若是需要加密,请指定加密后的字符
  • urls 需要测试的 API 配置集合
    • title 请求的 Title 字符,如 获取用户列表Get Users List
    • url: 请求的 URL 后缀字符串
    • method 请求方法,需要制定大写,并且支持 GETPOSTDELETEPUT
    • params 需要传递的参数数据
    • id URL 参数的 id 说明对象

注意: params 你可以使用 JSON 对象来说明你要传递的对象:

params: {"key": "value"}

你也可以使用请求的 JSON 数据来指明你要传递的对象:

# 传递已经请求的 title 为创建用户中的响应数据
params: '创建用户.POST.response'

你也可以使用请求的具体 JSON 对象中某个 KEY 下的数据:

# 传递已经请求的 title 为创建用户的响应数据中的 username 字段
params: 
  username: '创建用户.POST.response.username'

你也可以组建自定义对象

# 传递已经请求的 title 为创建用户的响应数据中的 username 字段 和 自定义 a 字段
params:
    username: '创建用户.POST.response.username'
    a: medusa

id 是一个映射了 URL 参数的对象,如:

url: '/user/{user_id}'

我们预想的是请求 /user/1 这样的数据详情页,那你可以随意指明你的 id 表示字符,如上面的 user_id,你仅仅需要在 id 中对应的指明对象引用的数据即可:

url: '/user/{user_id}'
id:
    user_id: 1

当然,上面的用法并没有什么意义,而我们使用的是这样的:

title: 删除用户
url: '/user/{user_id}'
method: DELETE
id:
    user_id: '创建用户.POST.response.id'

使用创建用户的响应数据用的 id 字段的值来删除该用户,为测试数据不影响系统的数据内容。

如果请求的是个 [] 类型的数据,可能暂时无法获取其中的数据

✏️ ️4. 启 动 和 测 试

使用 python3 medusa.py 即可启动脚本文件进行 API 测试。

使用 mkdocs serve 即可启动 mkdocs 服务器,进行测试数据浏览。




支持一下吧!