作为一个码农, 有时候开发自己的平台, 总是需要一个测试平台服务的工具, 你可能想到了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 服务器,进行测试数据浏览。
关于测试的分享就到这里啦,希望同学们在编写脚本之前,可以一帆风顺。
另外,有兴趣的小伙伴可以加一下测试答疑群323432957,关于你遇到的测试问题,都可以帮你找到答案
呀,这么认真都看到这里啦,帮忙在文章左侧点一下点赞和收藏,给我一个支持把,灰常感谢~