如果使用 Postman 编写端到端测试用例,甚至实现了自动化测试平台,你是否和我一样正在经历这样的痛楚:
- 每个测试用例都要花费大量的时间去构造请求、编写脚本检查回包数据;
- 开发一段时间后,每个请求的脚本代码变得庞大、杂乱;
- 为了实现自动化测试,还要开发脚本代码使用 newman 去运行 Postman 集合。
Yes,我们需要一个新的测试工具,有请 Automan!
Automan 旨在帮助我们快速完成API测试编写,怎么做到又快又简单?
首先,服务端生成 API Schema
我们以 Spring Boot 框架为例,我们编写了一个 Java 库,通过 Spring Boot 提供的机制扫描服务上下文提供的所有接口,并提取参数、路径信息生成 API Schema:
json
{
"internal": {
"v1": {
"syncDomainModel": {
"syncProduct": {
"paths": [
"/internal/v1/sync/{referenceId}"
],
"methods": [
"POST"
],
"requestParams": {
"referenceId": "string"
},
"requestType": "SyncDomainRequest",
"responseType": "SyncDomainResponse",
"allTypes": {
"SyncDomainResponse": {
"extension": "Map<string,?>",
"mainModelName": "string",
"extensionModelName": "string",
"main": "Map<string,?>"
},
SyncDomainRequest": {
"extensionFields": "TargetField[]",
"mainFields": "TargetField[]",
"modelId": "string",
"extensionModelName": "string",
"modelType": "string"
},
"TargetField": {
"newValue": "?",
"name": "string"
}
}
}
}
}
}
}
API Schema 包含了接口的请求方法、路径、参数以及负载。尤其要指出其中涉及的数据都有类型定义,Automan 将使用这些类型定义生成动态表单,帮助我们快速构建请求负载。
以后我们会为更多的 Web 框架提供 Schema 生成库,当然这也仰仗你我开源社区的力量。如果您对这部分感兴趣可以跟踪这个仓库:Automan-Schema-Providers。
构建请求
有了 API Schema 我们就可以快速构建请求。
1.选择接口
选择好接口,相关的路径、请求方法就被自动带过来了。
2.输入请求负载和期望回包数据
Automan 提供基于类型生成的动态输入框,我们能非常迅速地编写好请求负载和期望回包数据。
3.参数传递
很多场景中,一个测试用例包含多个请求,请求之间也有先后依赖和数据传递关系。在 Postman 里我们通过编写脚本代码来实现,而在 Automan 里,脚本代码不是第一选择。
4.回包数据校验
在 Postman 里也必须编写脚本去检查回包数据,Automan 重复一遍,不想要脚本!
面向自动化测试
Automan 在设计之初就在考虑如何实现自动化测试。目前我们提供了一个 npm package,允许我们通过命令行运行指定脚本,同理也可以很方便地在容器镜像中启动测试。
什么时候可以用到?
Automan 现在已经完成了核心需求开发,计划将在今年年底上线 Vscode 插件市场 ------ BETA 版本。因为是利用闲暇时间开发,还有较多细节、以及文档工作需要完成。如果您对这个项目有什么想法建议,欢迎来聊。
如果您想了解更多,Check Automan in PC.