你是否也在使用 Postman 编写端到端测试用例,甚至实现了自动化测试平台,是否和我一样正在经历这样的痛楚:
- 每个测试用例都要花费大量的时间去构造请求、编写脚本检查回包数据;
- 开发一段时间后,每个请求的脚本代码变得庞大、杂乱;
- 为了实现自动化测试,还要开发脚本代码使用 newman 去运行 Postman 集合。
Yes,我们需要一个新的测试工具,有请 Automan!
Automan 旨在帮助我们快速完成API测试编写,怎么做到又快又简单?
首先,服务端生成 API Schema
我们以 Spring Boot 框架为例,我们编写了一个 Java 库,通过 Spring Boot 提供的机制扫描服务上下文提供的所有接口,并提取参数、路径信息生成 API Schema,示例:
{"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(网站还没有移动端兼容🤣大家可以PC端看看)。
版权归原作者 Luncert 所有, 如有侵权,请联系我们删除。