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

✏️ ️1. 需 求 罗 列

盘点了几个现在需要的需求, 如下:自动化测试 API 服务

生成测试数据报告

异常请求捕获

请求响应总览

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

✏️ ️2. 逻 辑 梳 理

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

✏️ ️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 请求方法,需要制定大写,并且支持 GET、POST、DELETE、PUT

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 服务器,进行测试数据浏览。

作者:MedusaSorcerer